2016-10-10 3 views
0

新しいMySQL 5.7 'root'ユーザーの動作に満足しています。これはlocalhostのlinux rootユーザだけがMySQL rootユーザとしてMySQLにログインできるようにします。MySQL 5.7でデフォルトの 'root'ユーザーの動作をリセットするには

私は最近、私の古いユーザーのテーブルをインポートし、この変更を書きました。だれでもパスワードを使ってlocalhostにrootとしてログインできます。

デフォルトのMySQL 5.7 rootユーザー設定を復元するにはどうしたらいいですか?

この機能の多くが5.5から5.7に変更されており、この質問に後で答えるのは簡単ですので、慎重に質問をお読みください。

+1

おそらく、これは[ 'auth_socket'](httpsを使用するには、rootユーザーの認証を設定することによって行われます://dev.mysql.com/doc/mysql-security-excerpt/5.7/en/socket-authentication-plugin.html)在庫がなくても5.7サーバが便利だと確信して、私は特定の変更を提案するのをためらっています。 –

+0

'' root '@' localhost''ではない '' root '@' someotherhost''ごとに 'mysql.user'テーブルと' drop user'をチェックしてください。 ( 'mysql.proxies_priv'もチェックできますが、' mysql.user'にlocalhost以外のホストを持つrootユーザしかいないと思います)。 – Solarflare

+0

Solarflare - 残念なことに: '' 'mysql> mysql.userからユーザを選択します。ここで、user =" root "; + ------ + ----------- + |ユーザー|ホスト| + ------ + ----------- + |ルート| localhost | + ------ + ----------- + 1行セット(0.00秒) '' ' – robbintt

答えて

0

問題:

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; 

間違った順番(プラグインをインストールする前のrootauth_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';

関連する問題