闲置の腾讯クラウドサーバーがあり、年末に契約が満了し、更新も考えていなかったので、開発用のデータベースとしてMySQLをデプロイすることにした。システムを再構築する際に、手間を省いて、腾讯クラウドから提供されている汎用イメージを選択した。すでにMySQLデータベースがインストールされていた。本来はシステム内にReadmeのようなファイルがあり、パスワードや設定ファイルの場所などを説明してくれるだろうと期待していた。
腾讯クラウドのシステム再構築は非常に速く、約1分で完了通知が来た。ログインしてsystemctl status mysql
コマンドを実行したところ、MySQLサービスが起動していることが確認できた。パスワードを探し回ったがどこにも見つからず、次第に焦り始めた。
そこで、サーバーにアクセスしているのであれば、root権限を使ってパスワードをリセットする方法があるはずだと考えた。資料を調べたり、阿里云フォーラムの投稿を参考にしたりして、さらに試行錯誤を続けた。
パスワードのリセット
構成ファイル vim /etc/my.cnf
を編集し、mysqld
ノードに以下の設定を追加します:skip-grant-tables
、systemctl restart mysql
コマンドを実行してデータベースを再起動します。
その後、mysql
を直接使用してデータベースにログインし、通常の操作が続行できます。 root
ユーザーのパスワードをリセットし、同時にリモートログインを許可します。
USE mysql;
UPDATE user SET authentication_string = password('pass') WHERE User = 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
変更した構成ファイルをロールバックし、データベースを再起動して完了です。