全新安裝 MySQL 後,預設存在無密碼 root 與匿名用戶,安全風險極高。本文提供標準化初始化操作流程。
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'new_password'; GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost' WITH GRANT OPTION;
DROP USER ''@'localhost';
若報錯 ERROR 1396 (HY000): Operation DROP USER failed for ''@'localhost',表示 *nix 系統下 hostname 不為 localhost,需精確匹配:
SELECT user, host FROM mysql.user; -- 找出 user 為空的 host 值,假設為 'host_name' DROP USER ''@'host_name';