全新安裝 MySQL 5.6.20 後,許多使用者會遇到無法以 root 身分登入的問題。本文提供逐步解決方案,並整理使用者建立、授權、密碼修改等實用指令,幫助你快速完成資料庫初始化與權限配置。
cd C:\Program Files\MySQL\MySQL Server 5.6\bin)mysqld -install MySQLnet start MySQLmysql -u root -p(直接按 Enter)SHOW DATABASES;
USE mysql;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
QUIT;
-- 建立可從任意 IP 存取的 user 帳號,密碼 123456 GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES; -- 若遠程無法連線,請檢查防火牆是否開放 3306 埠
-- 帳號 user1 僅能存取 db123 資料庫,密碼 333333 GRANT ALL PRIVILEGES ON db123.* TO 'user1'@'%' IDENTIFIED BY '333333' WITH GRANT OPTION; FLUSH PRIVILEGES; -- 帳號 user2 僅能從 192.168.104.* 網段存取 db123,密碼 666666 GRANT ALL PRIVILEGES ON db123.* TO 'user2'@'192.168.104.%' IDENTIFIED BY '666666' WITH GRANT OPTION; FLUSH PRIVILEGES;
-- 以 root 登入
mysql -u root -p
-- 插入使用者記錄
INSERT INTO mysql.user (Host, User, Password) VALUES ('localhost', 'phplamp', PASSWORD('1234'));
FLUSH PRIVILEGES;
-- 建立專屬資料庫 CREATE DATABASE phplampDB; -- 授予 phplamp 對 phplampDB 的所有權限 GRANT ALL PRIVILEGES ON phplampDB.* TO 'phplamp'@'localhost' IDENTIFIED BY '1234'; FLUSH PRIVILEGES; -- 僅授予特定權限(如 SELECT, UPDATE) GRANT SELECT, UPDATE ON phplampDB.* TO 'phplamp'@'localhost' IDENTIFIED BY '1234'; FLUSH PRIVILEGES;
DELETE FROM mysql.user WHERE User='phplamp' AND Host='localhost'; FLUSH PRIVILEGES; DROP DATABASE phplampDB;
UPDATE mysql.user SET Password=PASSWORD('新密碼') WHERE User='phplamp' AND Host='localhost';
FLUSH PRIVILEGES;
| 方式 | 指令範例 | 特點 |
|---|---|---|
| CREATE USER | CREATE USER 'aa'@'%' IDENTIFIED BY '123456'; | 語法標準,僅建立帳號不授權 |
| GRANT | GRANT SELECT ON *.* TO 'joe'@'10.163.225.87' IDENTIFIED BY '123'; | 建立與授權一次完成 |
| 直接操作 mysql.user | INSERT INTO user (host,user,password) VALUES ('%','jss',PASSWORD('jss')); | 底層操作,需手動 FLUSH PRIVILEGES |
mysqladmin -u root -p123 password 456FLUSH PRIVILEGESSET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');掌握這些指令,你將能輕鬆應對 MySQL 從安裝部署到日常權限維護的各種場景。