CentOS忘記mariadb/mysql root密碼解決辦法


本文不再更新,可能存在內容過時的情況,實時更新請訪問原地址:CentOS忘記mariadb/mysql root密碼解決辦法

這里有兩種方式實現修改mariadb root密碼。

  • mariadb版本:Server version: 10.3.10-MariaDB MariaDB Server
  • 服務器:CentOS Linux release 7.5.1804 (Core)

方式1

1.查看mysql版本

mysql --version

如果是mysql輸出結果大概為:

mysql  Ver 8.0.13 for Linux on x86_64 (MySQL Community Server - GPL)

如果是MariaDB大概為:

mysql  Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

2.停止數據庫服務

mysql:

sudo systemctl stop mysql

MariaDB:

sudo systemctl stop mariadb

3.使用非權限檢查模式啟動數據庫服務

啟動:

sudo mysqld_safe --skip-grant-tables --skip-networking &

無驗證模式登錄:

mysql -u root

4.修改密碼

現在還無法使用ALTER USER命令修改密碼,因為grant tables還沒有重載。 使用FLUSH PRIVILEGES重載grant tables

mysql > FLUSH PRIVILEGES;

然后修改密碼。

  • MYSQL版本為MySQL 5.7.6或更新的版本,以及MariaDB版本為MariaDB 10.1.20或更新的版本,使用如下命令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  • MYSQL版本為MySQL 5.7.5 或更老的版本,以及MariaDB版本為MariaDB 10.1.20或更老的版本,使用如下命令:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

如果ALTER USER不起作用,可以使用UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';,然后重載grant tables

5.修改密碼

1)關掉進程

關掉進程,mysql對應命令:

$ sudo kill `cat /var/run/mysqld/mysqld.pid`

關掉進程,MariaDB對應命令:

$ sudo kill `/var/run/mariadb/mariadb.pid`

2)重啟服務

MYSQL使用systemctl重啟服務:

$ sudo systemctl start mysql

MariaDB使用systemctl重啟服務:

$ sudo systemctl start mariadb

6.使用新密碼登錄

$ mysql -u root -p

參考:https://www.digitalocean.com/community/tutorials/how-to-reset-your-mysql-or-mariadb-root-password

方式2

參考:https://segmentfault.com/a/1190000006051752


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM