問題の説明:MySQLのログのエラーERROR 1698(28000):図に示すように、アクセスは、ユーザのルート '@「localhost」のために拒否されました。
ソリューション:
1、検証をスキップ
(1)は、MySQLサービスをシャットダウン
service mysql stop
(2)オープンmy.cnfファイル
sudo vim /etc/mysql/my.cnf
(3)のmy.cnfファイルの末尾に次のコードを追加します。
[mysqld]
skip-grant-tables
下図のように:
図2に示すように、更新情報へのルートユーザ
(1)MySQLのサービスを開始
sudo service mysql start
MySQLの中へ(2)
mysql
(3)ルートのユーザ情報を更新します
use mysql;
update mysql.user set authentication_string=PASSWORD('12345678'),
plugin='mysql_native_password' where user='root';
flush privileges;
exit
3、スキップ検証をキャンセル
(1)は、MySQLサービスをシャットダウン
service mysql stop
2)my.cnfファイルを開きます。
sudo vim /etc/mysql/my.cnf
コメントコードがスキップ検証my.cnfファイルの末尾に追加される(3)。
# [mysqld]
# skip-grant-tables
下図のように:
4、MySQLの上でログイン
(1)スタートのMySQL
sudo service mysql start
MySQLで(2)ログ
mysql -u root -p