場景
mysql 8.0
安裝之後,忘記了 root
密碼,需要重置.
方案
編輯 my.cnf
$ vi /etc/my.cnf
在 [mysqld]
下新增 skip-grant-tables
[mysqld]
skip-grant-tables
重啟 mysql
$ systemctl restart mysqld.service
重新登入 mysql
,無需密碼,直接 enter
進入
$ mysql -uroot -p
進入 mysql
之後,要先 重新整理許可權,否則無法修改密碼
mysql> flush privileges;
修改密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
mysql 8.0 預設是安裝了
validate_password
外掛的
密碼至少包含一個大寫字母,一個小寫字母,一位數字和一個特殊字元,並且密碼總長度至少為8個字元
這裡使用 mysql_native_password 來修改,如果不是 php 連線可能會報 The server requested authentication method unknown to the client 錯誤
設定完成之後,編輯 my.cnf
去除 skip-grant-tables
指令.
之後重啟 mysql
即可
$ systemctl restart mysqld.service
更多
設定 root 遠端登入
登入 mysql
之後,檢視許可權
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
4 rows in set (0.00 sec)
修改許可權,允許遠端訪問
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
yum 安裝 mysql
參考官方的 A Quick Guide to Using the MySQL Yum Repository
日誌檢視
mysql
錯誤日誌 /var/log/mysqld.log
本作品採用《CC 協議》,轉載必須註明作者和本文連結