溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下如何修改MySQL/MariaDB的Root密碼

發布時間:2022-01-26 10:50:47 來源:億速云 閱讀:293 作者:小新 欄目:開發技術
# 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測試新密碼

方法二:通過MySQL Shell修改密碼

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
FLUSH PRIVILEGES;

適用場景: - 已登錄MySQL Shell - MySQL 5.7.6+/MariaDB 10.4+版本推薦語法

方法三:安全模式重置密碼(忘記密碼時)

步驟1:停止MySQL服務

sudo systemctl stop mysqld
# 或
sudo systemctl stop mariadb

步驟2:啟動安全模式

sudo mysqld_safe --skip-grant-tables &

步驟3:無密碼連接MySQL

mysql -u root

步驟4:執行密碼更新(不同版本命令不同)

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';

步驟5:刷新權限并重啟服務

FLUSH PRIVILEGES;
exit;
sudo systemctl restart mysqld

方法四:使用mysql_secure_installation腳本

sudo mysql_secure_installation

該交互式腳本會引導完成: 1. 設置root密碼 2. 移除匿名用戶 3. 禁止遠程root登錄 4. 移除測試數據庫 5. 重新加載權限表

密碼策略建議

  1. 復雜度要求

    • 長度至少12字符
    • 包含大小寫字母、數字和特殊符號
    • 避免使用字典單詞
  2. 定期更換

    ALTER USER 'root'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
    
  3. 密碼存儲: 建議使用mysql_config_editor工具安全存儲憑據:

    mysql_config_editor set --login-path=local --host=localhost --user=root --password
    

常見問題解決方案

問題1:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

解決方法:

SHOW VARIABLES LIKE 'validate_password%';
# 臨時降低策略強度
SET GLOBAL validate_password_policy=LOW;

問題2:修改密碼后phpMyAdmin無法登錄

需同步修改配置文件:

// config.inc.php
$cfg['Servers'][$i]['password'] = '新密碼';

問題3:忘記密碼且無法進入安全模式

可嘗試在my.cnf中添加:

[mysqld]
skip-grant-tables

重啟服務后按方法三操作,完成后務必移除該配置。

安全加固建議

  1. 禁用遠程root登錄

    DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');
    
  2. 創建次級管理員

    CREATE USER 'admin'@'localhost' IDENTIFIED BY '強密碼';
    GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
    
  3. 啟用審計日志

    [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版本不同,部分命令可能需要調整,建議操作前查閱對應版本的官方文檔。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女