web-dev-qa-db-ja.com

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

私の地元の環境は:

  • フレッシュUbuntu 16.04
  • PHP 7付き
  • mySQL 5.7がインストールされている場合

    Sudo apt-get install mysql-common mysql-server
    

(CLI経由で)MySQLにログインしようとしたとき:

mysql -u root -p

私は3つのステップで周期的な問題に出会いました。

1)最初にソケットの問題がありました

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

解決策:PCを再起動してください。

これは別のエラーにつながりました:

2)アクセスが拒否された

ERROR 1698 (28000): Access denied for user 'root'@'localhost'.

考えられる問題"root"ユーザーのパスワードが間違っています。

解決策:このチュートリアルで rootパスワードをリセットしてください

正しいパスワードと正常なソケットでは、最後のエラーが発生します。

3)間違った認証プラグイン

mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"

ここで私は止まったか、どういうわけか再び1)になった。

84
Tomáš Votruba

私は解決策を得ました!

手順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に感謝します)


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

Localhostの代わりに127.0.0.1を使う

mysql -uroot # "-hlocalhost" is default

"ファイルが見つかりません"またはsltエラーが発生する可能性があります。

mysql -uroot -h127.0.0.1

うまくいきます。

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

mysqld.sockファイルを作成したり、アクセス権を変更したり、シンボリックリンクしたりする方法はたくさんあります。結局問題ではなかった。

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

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

255
Tomáš Votruba

あなたはそれが私のために働くように次のように試すことができます。

サーバーを起動します。

Sudo service mysql start

今、靴下のフォルダに移動します。

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 &

Init 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をリセットする方法

20
Bablu Ahmed

あなたはこれらのいくつかのステップを試すことができます:

Mysqlサービスの最初の停止Sudo /etc/init.d/mysql stop

パスワードなしでrootとしてログインSudo mysqld_safe --skip-grant-tables &

ログインmysql端末の後には、さらにコマンドを実行する必要があります。

use mysql;

UPDATE mysql.user SET authentication_string=PASSWORD('[email protected]*^G'), plugin='mysql_native_password' WHERE User='root';

flush privileges;

Sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown

Mysqlサーバーを再起動した後まだエラーが発生する場合は、次のサイトにアクセスしてください。 MySQL 5.7 rootパスワードのリセットUbuntu 16.04

8
Inderpal Singh

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

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

[mysqld]設定をこのように編集することによってそれをすることができます:

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

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

6
rustyx

Ubuntu 18.04とmysql 5.7の場合

  • ステップ1:mkdir/var/run/mysqldをSudoします。

    ステップ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:mysql_native_passwordで 'root'で識別されたユーザー 'root' @ 'localhost'の変更

今でログイン

  • mysql -u root -p
4
arunava maiti

試してみてください。Sudo mysql_secure_installation

仕事はUbuntuで18.04

0
Gorcer