モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

MySQL-5.1からMariaDB-5.5へのアカウント情報の移行

CentOS6系からCentOS7系への移行案件があり、そこでMySQL-5.1からMariaDB-5.5への移行を行う必要がありました。
他にも色々と変わる部分があるため、一旦動作テスト用のサーバを作って確認することになり、データの移行を行いました。
そのとき、アカウント情報の移行ではまったのでメモしときます。


まずアカウント情報は普通にフルダンプしても取れないため、下記のようにmysqlテーブルを指定して取ります
正式移行の際には -x オプション付けてロックしたほうがよいでしょう。

# mysqldump -u root -p --allow-keywords mysql > user_dump.sql


その後、テスト用サーバにコピーしてリストアします。

# mysql -u root -p mysql < user_dump.sql


自分はもうこれだけでいいのかな、と思っていたのですが、これだけだと認証が通りませんでした。

まずバージョンが上がっているため、mysql_upgradeを掛ける必要があるそうです。

# mysql_upgrade -u root -p


また、移行元の環境はフロントのwwwサーバとバックエンドのdbサーバが分かれているのですが、テストサーバでは同一上で動かしているため、アカウントの接続元サーバ名の指定がそのままだと通らないので、クエリでlocalhostに書き換えました。

が、それだけでは動かないで悩んでいたところ、flush privileges掛ける必要があると教えてもらいました。

update mysql.user set Host="localhost" where Host="www";
update mysql.db set Host="localhost" where Host="www";
flush privileges;


これで無事に動くようになりました。

とみたさんありがとうございます!!