MySQLのユーザ登録ができなくなって困った

パソコン・インターネット

WordPressのテスト環境用にユーザのアクセス権を、phpMyAdminで修正しようとしたら、エラーになってできませんでした。次のエラーが出てました。

#1133 - Can't find any matching row in the user table

やろうとしたのは、他のホストからアクセスできるように、アクセス権を設定することでした。仕方がないので、新規にユーザを作ることにしました。でも、やっぱりできません。この#1133のエラーメッセージで検索したのですが、解決に結びつくページは見つけられませんでした。

新規ユーザの登録をしようとした時に、#1133のエラーも出ているのですが、次のエラーも出ていました。

ERROR 1054 (42S22): Unknown column 'plugin' in 'mysql.user'

このキーワードで検索したら、次のウェブページを見つけました。ありがとうございます。

ユーザ登録できなくなった原因は、MySQLのバージョンを、5.1から5.6に上げたためだそうです。このページに記載されている通り、MySQLのデータベースを調べてみたら、確かに5.1でした。

mysql> SELECT COUNT(1) column_count FROM information_schema.columns WHERE table_schema='mysql' AND table_name='user';
+--------------+
| column_count |
+--------------+
|           39 |
+--------------+
1 row in set (0.00 sec)

39の場合は、MySQL5.1だそうです。

phpMyAdmin

解決方法は、次の通りです。

# mysql_upgrade -u root -p
Enter password: 
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/tmp/mysql.sock' 
Warning: Using a password on the command line interface can be insecure.
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/tmp/mysql.sock' 
Warning: Using a password on the command line interface can be insecure.
mysql.columns_priv                                 OK
 :
OK

確認してみました。

mysql> SELECT COUNT(1) column_count FROM information_schema.columns WHERE table_schema='mysql' AND table_name='user';
+--------------+
| column_count |
+--------------+
|           43 |
+--------------+
1 row in set (0.00 sec)

43の場合は、MySQL5.6だそうです。この状態で、新規ユーザ作成ができるようになりました。良かったです。

[amazonjs asin="4883378012" locale="JP"]

Posted by お市のかた