解決策があります!
手順2)でrootパスワードをリセットする場合は、認証プラグインもmysql_native_password
に変更します。 :
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
これにより、正常にログインできました!
完全なコードソリューション
1。 bashコマンドを実行する
1。まず、これらのbashコマンドを実行します
sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
2。次に、mysqlコマンドを実行します=>これをコピーしてcliに手動で貼り付けます
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
3。より多くのbashコマンドを実行する
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p
4。ソケットの問題(コメントから)
ソケットが表示されたとき エラー、コミュニティには2つの可能な解決策がありました:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(@Cerinに感謝)
または
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(@Peter Dvukhrechenskyに感謝します)
ブラインドパスと考えられるエッジエラー
ローカルホストの代わりに127.0.0.1を使用
mysql -uroot # "-hlocalhost" is default
「ファイルの欠落」またはsltエラーにつながる可能性があります。
mysql -uroot -h127.0.0.1
うまく機能します。
ソケットの問題をスキップ
mysqld.sock
を作成する方法はたくさんあります。 ファイル、アクセス権の変更、またはシンボリックリンク。結局のところ、それは問題ではありませんでした。
my.cnf
をスキップします ファイル
問題もありませんでした。よくわからない場合は、これが役立つ場合があります 。