エラー内容
1 2 |
mysql> grant all on *.* to ... ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) |
調査した事
mysql.user テーブルは問題なさそう
userテーブルが何らかの原因で空になってしまい、rootユーザが消えてしまった場合は
rootユーザ追加で対処できますが、今回はこのパターンではなさそうです。
1 2 3 4 5 6 7 8 |
mysql> select user,host, password from mysql.user +---------+-----------+-----------+ | user | host | password | +---------+-----------+-----------+ | root | localhost | *XXX1 | | root | 127.0.0.1 | *XXX2 | | zabbix | localhost | *XXX3 | +---------+-----------+-----------+ |
Superユーザ権限もありました。
1 2 3 4 5 |
mysql> show grants GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*XXXX' WITH GRANT OPTION |
解決策
mysql のversionをよく見てみたところ
5.1を利用していたはずが、いつの間にか5.5になっていました。
開発用途サーバのため他パッケージのVerUpに釣られてUpgradeされてしまっていたようです。
/var/log/yum.log に updateされた事がロギングされていました。
非常に分かりづらいエラーでしたが、テーブル構成が古いバージョンのままでは
ユーザ作成が出来ない事象に当ってしまっていたようでした。
mysql_upgradeの実行
1 2 3 4 5 6 7 8 9 10 11 |
# mysql_upgrade -u root -p Enter password: Looking for 'mysql' as: mysql Looking for 'mysqlcheck' as: mysqlcheck Running 'mysqlcheck with default connection arguments Running 'mysqlcheck with default connection arguments mysql.columns_priv OK mysql.db OK mysql.event OK mysql.func OK ... |
mysql.user テーブルのカラムBefore/After
Before
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
mysql> select * from mysql.user where User='root' \G *************************** 1. row *************************** Host: localhost User: root Password: *XXXX Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: Y References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y Event_priv: Y Trigger_priv: Y ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 |
After
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
mysql> select * from mysql.user where User='root' \G *************************** 1. row *************************** Host: localhost User: root Password: *XXXX Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: Y References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y Event_priv: Y Trigger_priv: Y Create_tablespace_priv: Y ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 plugin: authentication_string: NULL |
結果
正常にユーザ追加できました
1 2 |
mysql> grant all on *.* to ... Query OK, 0 rows affected (0.00 sec) |
投稿者プロフィール
-
Japan AWS Ambassadors 2023, 2024
開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て
2010年よりスカイアーチネットワークスに在籍しております
機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。
最新の投稿
Amazon Q2025年6月11日Amazon Q Developer CLI でMCPサーバ起動に失敗したのでトラブルシュートしてもらった
AWS2025年2月25日WebスクレイピングにAmazon CloudWatch Synthetics CanaryとBedrockを利用する
AWS re:Invent 20242025年1月1日AWS re:Invent 2024から読み解く、次世代クラウドコンピューティングの潮流
AWS re:Invent 20242024年12月7日Bedrock Flows と Amazon Q Developer Agentの新機能で生成AIアプリを短時間で作成する