# Linux下如何修改MySQL/MariaDB的Root密碼
## 前言
MySQL和MariaDB作為最流行的開源關系型數據庫管理系統,root賬戶是其最高權限賬戶。當我們需要進行數據庫維護、遷移或安全加固時,修改root密碼是常見操作。本文將詳細介紹在Linux環境下修改MySQL/MariaDB root密碼的多種方法,并針對不同場景提供解決方案。
## 方法一:使用mysqladmin命令修改密碼(已知原密碼)
```bash
mysqladmin -u root -p'舊密碼' password '新密碼'
注意事項:
1. 單引號包裹密碼可避免特殊字符被shell解釋
2. 生產環境建議使用-p
不帶密碼參數,交互式輸入更安全
3. 執行后無輸出表示成功,可通過mysql -u root -p
測試新密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
FLUSH PRIVILEGES;
適用場景: - 已登錄MySQL Shell - MySQL 5.7.6+/MariaDB 10.4+版本推薦語法
sudo systemctl stop mysqld
# 或
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables &
mysql -u root
MySQL 5.7.6+ / MariaDB 10.4+:
UPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
舊版本MySQL:
UPDATE mysql.user SET Password=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
exit;
sudo systemctl restart mysqld
sudo mysql_secure_installation
該交互式腳本會引導完成: 1. 設置root密碼 2. 移除匿名用戶 3. 禁止遠程root登錄 4. 移除測試數據庫 5. 重新加載權限表
復雜度要求:
定期更換:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
密碼存儲:
建議使用mysql_config_editor
工具安全存儲憑據:
mysql_config_editor set --login-path=local --host=localhost --user=root --password
解決方法:
SHOW VARIABLES LIKE 'validate_password%';
# 臨時降低策略強度
SET GLOBAL validate_password_policy=LOW;
需同步修改配置文件:
// config.inc.php
$cfg['Servers'][$i]['password'] = '新密碼';
可嘗試在my.cnf中添加:
[mysqld]
skip-grant-tables
重啟服務后按方法三操作,完成后務必移除該配置。
禁用遠程root登錄:
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');
創建次級管理員:
CREATE USER 'admin'@'localhost' IDENTIFIED BY '強密碼';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
啟用審計日志:
[mysqld]
plugin-load = audit_log.so
audit_log_format = JSON
audit_log_policy = ALL
本文涵蓋了從常規修改到應急處理的完整密碼管理方案。建議管理員: - 定期審計數據庫賬戶 - 使用SSH隧道替代直接遠程連接 - 考慮使用證書認證替代密碼認證 - 重要操作前做好數據庫備份
備份提醒:執行密碼修改前建議備份數據庫:
> mysqldump -u root -p --all-databases > full_backup.sql > ```
注:實際字符數約1100字(含代碼塊)。根據具體MySQL/MariaDB版本不同,部分命令可能需要調整,建議操作前查閱對應版本的官方文檔。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。