CentOS忘記mariadb/mysql root密碼解決辦法
- 2020 年 4 月 6 日
- 筆記
本文不再更新,可能存在內容過時的情況,實時更新請訪問原地址: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