全新安裝的 MySQL 並非開箱即用的生產就緒狀態。本文梳理六大上線前必做操作,附標準指令與常見坑點排查。
# 啟動 service mysqld start # 常見錯誤:Timeout error occurred trying to start MySQL Daemon # 解決:初始化系統表 /usr/bin/mysql_install_db # 查看狀態 /etc/rc.d/init.d/mysqld status
mysql> UPDATE user SET password=PASSWORD('123456') WHERE User='root';
mysql> FLUSH PRIVILEGES;
5.7+ 版本 password 欄位改為 authentication_string,語法調整為:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-- 建帳號
INSERT INTO mysql.user (Host, User, Password) VALUES ('localhost', 'admin', PASSWORD('admin'));
FLUSH PRIVILEGES;
-- 授權:僅必要權限
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin';
FLUSH PRIVILEGES;
避免直接 GRANT ALL,生產環境嚴禁 % 搭配 Root。
# 單庫備份 mysqldump -u root -p dbname > backup.sql # 多庫/全庫 mysqldump -u root -p --databases db1 db2 > backup.sql mysqldump -u root -p --all-databases > full_backup.sql # 恢復 mysql -u root -p dbname < backup.sql
Linux 預設 lower_case_table_names=0(敏感),導致跨平台遷移報錯。
# 1. 編輯配置 vim /etc/my.cnf # [mysqld] 區段新增 lower_case_table_names=1 # 2. 重啟生效 service mysqld restart
注意: 修改後現有表名會統一轉小寫,遷移前務必先 RENAME TABLE 統一大小寫。