※ ChatGPTを利用し、要約された質問です(原文:誤って全てのユーザを削除してしまい、MySQLサーバに接続出来なくなってしまいました。)
MySQLサーバに接続できなくなった原因と対策方法
2008/05/09 12:31
このQ&Aのポイント
誤って全てのユーザを削除してしまい、MySQLサーバに接続できなくなってしまった方への対策方法を紹介します。
MySQLサーバに接続できなくなった理由は、root@localhost等のユーザを削除したためです。以下の手順で対策することができます。
対策方法は、/etc/my.cnfの [mysqld] を [mysqld --skip-grant-tables]に変更してMySQLを再起動し、その後新しいユーザを作成することです。詳細な手順を以下に示します。
誤って全てのユーザを削除してしまい、MySQLサーバに接続出来なくなってしまいました。
さくらインターネットの専用サーバを使用している者です。OSはCentOS 5です。
また、LinuxコマンドやMySQLも使い始めて間もない初心者です。
明らかに手順がおかしいのですが、root@localhost等のユーザを全て削除した後、新しいユーザを作成しようとしていたら、うっかりexitしてしまい、MySQLサーバに接続出来なくなってしまいました…。
色々と調べてみて、以下のような手順を踏んで接続を試みても、繋がりませんでした。
・/etc/my.cnfの [mysqld] を [mysqld --skip-grant-tables]に変更して上書きし、MySQLを再起動する
・mysql_install_dbを実行して、MySQLを再起動する
・/etc/php.d/にあるmysql.iniとmysqli.iniのバックアップを取ってから削除し、MySQLを再起動する
再起動は、/etc/rc.d/init.d/mysqld stop を実行してから /etc/rc.d/init.d/mysqld startを実行しておりました。
接続方法はいずれの方法でも以下のようにして行いましたが、結果は同じでした。
# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
どのようにすれば、MySQLサーバに接続出来るようになるのでしょうか?
対策手段が分かる方がおられましたら、ご回答宜しくお願いいたします。
質問の原文を閉じる
質問の原文を表示する
お礼
ご回答、有難うございます。 mysqladmin -u root password 'test' としてみたところ、 mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)' と返ってきてしまい、残念ながら接続が出来ませんでした。
補足
自己解決しました。 /var/lib にあるmysqlディレクトリを削除し、 mysqldをstop → mysql_install_dbを実行 → mysqldをstartすることで、接続出来るようになりました。