問題:
auth_socket
モジュールを手動でインストールし、あなたの古いMySQL 5.5
データベースとユーザーテーブルをインポートすることにより、5.7の変更の上に書いた場合root
、ユーザーに有効にする必要があります。
ソリューション:我々はまだmysql_native_password
、デフォルトを使用したいユーザーのために
。 root
については、auth_socket
を使用します。
install plugin auth_socket soname 'auth_socket.so';
use mysql; update user set plugin='mysql_native_password';
update mysql.user set plugin = 'auth_socket' where User='root';
flush privileges;
間違った順番(プラグインをインストールする前のroot
auth_socket
列を追加)でそれを行う場合は、プラグインは認証を実行しないので、あなたは、MySQLをロードすることができません。起動してセーフモードで実行MySQLはこれを使用するには:Ubuntu 14.04
からUbuntu 16.04
への移行、MySQL 5.5
からMySQL 5.7
に完全なデータベースとユーザーテーブルをインポートする場合
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
これらの修正を行いました。
ツール:
を参照してくださいプラグイン:rootユーザーでshow plugins \g
表示auth_socket:select auth_socket from mysql.user where user='root';
おそらく、これは[ 'auth_socket'](httpsを使用するには、rootユーザーの認証を設定することによって行われます://dev.mysql.com/doc/mysql-security-excerpt/5.7/en/socket-authentication-plugin.html)在庫がなくても5.7サーバが便利だと確信して、私は特定の変更を提案するのをためらっています。 –
'' root '@' localhost''ではない '' root '@' someotherhost''ごとに 'mysql.user'テーブルと' drop user'をチェックしてください。 ( 'mysql.proxies_priv'もチェックできますが、' mysql.user'にlocalhost以外のホストを持つrootユーザしかいないと思います)。 – Solarflare
Solarflare - 残念なことに: '' 'mysql> mysql.userからユーザを選択します。ここで、user =" root "; + ------ + ----------- + |ユーザー|ホスト| + ------ + ----------- + |ルート| localhost | + ------ + ----------- + 1行セット(0.00秒) '' ' – robbintt