コンテナ運用のMariaDBでrootパスワード初期化

Dockerコンテナで、MariaDBを運用していますが、まさかのrootパスワード失念。。。対応内容を記載しておきます。

systemctl や sudo 自体インストールされていない?

本来であれば

MariaDBを停止させて。。。

sudo systemctl stop mysqld

セーフモードで立ち上げて、root のパスワードなしログインを可能にして。。。

sudo mysqld_safe --skip-grant-tables

と思っていたのですが、

root@:/# systemctl
bash: systemctl: command not found
root@:/# sudo systemctl
bash: sudo: command not found

そりゃそうですよね。コンテナですもの必要無い。

my.cnfに記載して、パスワードなしログイン

my.cnfに起動パラメータ追加

mysqldの下に、一行「skip-grant-tables」パラメータを追加

[mysqld]
skip-grant-tables

そして、コンテナ郡をRestart

パスワードなしログイン

MariaDBのコンテナに入って、

mysql -u root

ログインできましたかね。。

パスワード変更

パスワードを忘れてしまっているので、変更しましょう。

rootパスワードを変更

set password for 'root'@'localhost' = password('new_password');

同様のコマンドで、実際アクセスするユーザのパスワードも必要に応じて変更。

変更後は、そのパスワードで入れるか一応確認。

後処理

my.cnfの記載をちゃんと消しましょう!

そして、コンテナ郡のRestart