理由:私のサーバー上のMySQLは長い間使用されておらず、突然必要になりましたが、パスワードを忘れたので、参考のために自分自身と皆さんのためにソリューションを作成します。
解決
1. mysqlサービスが開始されているかどうかを確認します。開始されている場合は、mysqlサービスを閉じます。
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Sun 2020-10-11 07:59:51 EDT; 1s ago
2.mysql構成ファイルmy.confを変更します
[root@localhost ~]# vi /etc/my.cnf
## 在 [mysqld] 下添加最后一行代码
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
skip-grant-tables ## 添加此行代码即可!
== > > wq 保存退出
3.データベースを起動します
[root@localhost ~]# systemctl start mysqld
4.MySQLデータベースに入る
[root@localhost ~]# mysql -u root -p
Enter password: ## 不需要输入密码,直接回车!!!
mysql> use mysql;
mysql> update mysql.user set authentication_string=password('password') where user='root';
## password替换成你想要的密码
mysql> exit;
改完之后退出MySQL即可
5.以前に追加した構成ファイルを削除します
[root@localhost ~]# vi /etc/my.cnf
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
skip-grant-tables ## 现在删掉此行代码即可!
== >> wq 保存退出
[root@localhost ~]# systemctl restart mysqld ## 在重启服务器
この時点で変更は完了しているので、通常どおりMySQLにログインするだけで済みます。
構成ファイルを変更した後、構成ファイルを有効にするには、MySQLを再起動する必要があることに注意してください。