GNU/Linux >> Linux の 問題 >  >> Linux

MySQL が失敗する:mysql エラー 1524 (HY000):プラグイン 'auth_socket' がロードされていません

解決策を見つけました!

ステップ 2) で root パスワードを再設定する場合、auth プラグインも 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 コマンドを実行します

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 に感謝)

ブラインド パスとエッジ エラーの可能性

localhost の代わりに 127.0.0.1 を使用

mysql -uroot # "-hlocalhost" is default

「missing file」または slt エラーにつながる可能性があります。

mysql -uroot -h127.0.0.1

よりよく機能します。

ソケットの問題をスキップ

mysqld.sock を作成する多くの方法を見つけました ファイルを変更するか、アクセス権を変更するか、シンボリック リンクを作成します。結局、それは問題ではありませんでした.

my.cnf をスキップ ファイル

問題もありませんでした。よくわからない場合は、これが役立つかもしれません。


Ubuntu 18.04 および mysql 5.7 の場合

  • ステップ 1:sudo mkdir /var/run/mysqld;

    ステップ 2:sudo chown mysql /var/run/mysqld

    ステップ 3:sudo mysqld_safe --skip-grant-tables &quit (行き詰まった場合は quit を使用)

パスワードなしで mysql にログイン

  • ステップ 4:sudo mysql --user=root mysql

    ステップ 5:SELECT user,authentication_string,plugin,host FROM mysql.user;

    ステップ 6:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'

今すぐ

でログイン
  • mysql -u root -p <root>

次のように試すことができます。

サーバーを起動:

sudo service mysql start

次に、sock フォルダに移動します:

cd /var/run

靴下をバックアップします:

sudo cp -rp ./mysqld ./mysqld.bak

サーバーを停止:

sudo service mysql stop

靴下を元に戻す:

sudo mv ./mysqld.bak ./mysqld

mysqld_safe を開始します:

 sudo mysqld_safe --skip-grant-tables --skip-networking &

mysql シェルを初期化します:

 mysql -u root

パスワードの変更:

したがって、まずデータベースを選択してください

mysql> use mysql;

次の 2 つのクエリを入力してください:

mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root'; 

これで、すべてがうまくいきます。

mysql> flush privileges;
mysql> quit;

確認用:

mysql -u root -p

N.B, After login please change the password again from phpmyadmin

hostname/phpmyadmin を確認してください

Username: root

Password: 123456

詳細については、Ubuntu で忘れたパスワード phpmyadmin をリセットする方法を確認してください


mysql コマンドはデフォルトで UNIX ソケットを使用して MySQL に接続します。

MariaDB を使用している場合は、サーバー側で Unix ソケット認証プラグインをロードする必要があります。

[mysqld] を編集することでそれを行うことができます このような構成:

[mysqld]
plugin-load-add = auth_socket.so

ディストリビューションにもよりますが、設定ファイルは通常 /etc/mysql/ にあります。 または /usr/local/etc/mysql/

unix_socket=OFF の場合 が同じセクションに設定されている場合は、unix_socket=ON に変更して有効にします または、この修正は適用されません。


Linux
  1. Arista Transcoderのエラーメッセージ、Ffdeinterlaceプラグインをインストールするにはどうすればよいですか?

  2. MySQL プラガブル認証について

  3. sudo:add-apt-repository:command not found エラーを修正

  1. MySQL サーバー エラー 111 に接続できません

  2. sudo:python:コマンドが見つかりません

  3. mysql データベースの回復 - mysql/mysqldump がテーブル <database>.<tablename> を指定します (1146)

  1. [修正済み]ユーザー名がsudoersファイルにない

  2. yum-config-managerコマンドが見つかりません[修正]

  3. sudo -i はエラーを返します