問題:
auth_socket
モジュールは手動でインストールし、root
で有効にする必要があります 古いMySQL 5.5
をインポートして5.7の変更を上書きする場合は、ユーザー データベースとユーザーテーブル。
解決策:
ユーザーの場合は、引き続き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を起動して実行するには、次のコマンドを使用します。
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
これらの修正は、MySQL 5.5
から完全なデータベースとユーザーテーブルをインポートするときに実行されました。 MySQL 5.7
へ 、Ubuntu 14.04
からの移行 Ubuntu 16.04
へ 。
ツール:
プラグインを参照してください:show plugins \g
rootユーザーにauth_socketを表示します:select auth_socket from mysql.user where user='root';