MySQL 是中小型網站首選開源數據庫,配合 Linux+Apache+PHP 組成低成本高效棧。本文記錄安裝部署、安全初始化、用戶權限體系構建的核心操作與最佳實踐。
net start mysql 啟動,net stop mysql 停止。/etc/rc.d/init.d/mysqld start|stop|restart,需 root 權限。mysql -u root(初始空密碼)。DELETE FROM mysql.user WHERE User='';UPDATE mysql.user SET Password=PASSWORD('strong_pwd') WHERE User='root';UPDATE mysql.user SET Host='localhost' WHERE User='root';(或具體應用服務器 IP)。FLUSH PRIVILEGES; 生效,重啟服務。常用登入命令:
mysql -u root -p
mysql -u root -p'pwd'
mysql mydb -u root -p
嚴禁應用直接使用 root 連接。按業務模塊創建專用賬號,授予最小必要權限:
GRANT INSERT ON mydb.log_table TO 'logger'@'app_server' IDENTIFIED BY 'pwd';GRANT SELECT ON mydb.* TO 'reporter'@'%' IDENTIFIED BY 'pwd';GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'app_user'@'app_server' IDENTIFIED BY 'pwd';需授權該賬號管理權限時,添加 WITH GRANT OPTION。
INSERT INTO mysql.user ... 並手動設置權限列(Y/N),Password 必須用 PASSWORD() 加密。GRANT ALL ON mydb.* TO 'user'@'host' IDENTIFIED BY 'pwd';GRANT USAGE ON *.* TO 'user'@'host' IDENTIFIED BY 'pwd';(僅創建登入無權限)GRANT SELECT,INSERT,UPDATE ON mydb.* TO 'user'@'host' IDENTIFIED BY 'pwd';GRANT UPDATE,DELETE ON mydb.specific_table TO 'user'@'host' IDENTIFIED BY 'pwd';DROP USER 'old_user'@'host'; 或 DELETE FROM mysql.user ...REVOKE DELETE ON mydb.* FROM 'user'@'host'; 或更新 mysql.user 對應列為 N。SET PASSWORD FOR 'user'@'host' = PASSWORD('new_pwd');MySQL 管理的核心在於「最小權限、專用賬號、密碼加密、定期審計」。善用 GRANT/REVOKE 替代直操系統表,利用 mysql.user 的 Host 列實現來源 IP 級訪問控制,構建安全可控的數據庫訪問體系。