ป้ายกำกับ: User

MySQL, MariaDB สร้าง user, สิทธิ์, DatabaseMySQL, MariaDB สร้าง user, สิทธิ์, Database

ในการเชื่อมต่อ MySQL และ MariaDB ความแตกต่างหลักในการเชื่อมต่อ อ่านได้จาก เชื่อมต่อ MySQL, MariaDB สิทธิ์ วิธีไหนดี ที่นี้จะทำ script ที่ไว้สำหรับสร้าง user, สิทธิ์, Database
create_database_user_permission.sql

-- =============================================================================
-- MariaDB/MySQL Setup Script (Simplified for GUI Clients) -- ============================================================================= -- 1. CONFIGURATION
SET @MODE = 'BOTH';
SET @DB_NAME = 'prototypes-laravel-Spatie';
SET @DB_USER = 'QQbPM5nzBuXQ';
SET @DB_PASS = 'ggzhUNbNTkcX'; -- -----------------------------------------------------------------------------
-- 2. Create Database
-- -----------------------------------------------------------------------------
SELECT CONCAT ('CREATE DATABASE IF NOT EXISTS `', @DB_NAME, '` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci') INTO @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; -- -----------------------------------------------------------------------------
-- 3. Create Users & Grants
-- ----------------------------------------------------------------------------- -- Create for LOCALHOST (Socket) SET @sql_u = IF (@MODE IN ('BOTH', 'SOCKET') , CONCAT ('CREATE USER IF NOT EXISTS \'', @DB_USER, '\'@\'localhost\' IDENTIFIED BY \'', @DB_PASS, '\'') , 'DO 0') ;
PREPARE stmt FROM @sql_u; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql_g = IF (@MODE IN ('BOTH', 'SOCKET') , CONCAT ('GRANT ALL PRIVILEGES ON `', @DB_NAME, '`.* TO \'', @DB_USER, '\'@\'localhost\'') , 'DO 0') ;
PREPARE stmt FROM @sql_g; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- Create for REMOTE/NETWORK (%) SET @sql_u = IF (@MODE IN ('BOTH', 'TCP') , CONCAT ('CREATE USER IF NOT EXISTS \'', @DB_USER, '\'@\'%\' IDENTIFIED BY \'', @DB_PASS, '\'') , 'DO 0') ;
PREPARE stmt FROM @sql_u; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql_g = IF (@MODE IN ('BOTH', 'TCP') , CONCAT ('GRANT ALL PRIVILEGES ON `', @DB_NAME, '`.* TO \'', @DB_USER, '\'@\'%\'') , 'DO 0') ;
PREPARE stmt FROM @sql_g; EXECUTE stmt; DEALLOCATE PREPARE stmt; FLUSH PRIVILEGES; -- -----------------------------------------------------------------------------
-- 4. Verification
-- -----------------------------------------------------------------------------
SELECT @MODE AS 'Mode', @DB_NAME AS 'DB', @DB_USER AS 'User';
SELECT User, Host FROM mysql.user WHERE User = @DB_USER;

การใช้งานแค่เปลี่ยน ตัวแปร

  • SET @MODE = ‘BOTH’; ว่าจะให้ connect อย่างไร ถ้าใช้จริง ๆ บน linux อย่างลืมตั้งเป็น ‘SOCKET’
  • SET @DB_NAME = ‘prototypes-laravel-Dev’; ชื่อ
  • SET @DB_USER = ‘QQbPM5nzBuXQ’; user name เราไม่ได้ใช้บ่อย ๆ สุ่มเถอะ
  • SET @DB_PASS = ‘ggzhUNbNTkcX’; password เราไม่ได้ใช้บ่อย ๆ สุ่มเถอะ อย่าง 1234 อะไรง่าย ๆ เลย

อ่านเพิ่มเติม