follow us in feedly

MacのMySQLでrootパスワードを再設定する方法

今回はMacのMySQLでもrootパスワードを再設定することになりました。
前回のときにメモしといたから簡単にできるかなと思ったのですが、
あまり関係ないところでちょっとハマりました。

ちなみに、MacのMySQLはHomebrewを使ってインストールしています。
MySQLのバージョンは5.5です。

my.cnfを設定する

my.cnfに「skip-grant-tables」を追加します。
まずは、デフォルトの設定ファイルをコピーします。
自分用の環境だからどれでもいいかな、ということでmy-large.cnfにしています。

$ cp /usr/local/Cellar/mysql/5.5.19/support-files/my-large.cnf /usr/local/var/mysql/my.cnf

設定ファイルについては下記が参考になります。
my.cnfのデフォルト設定ファイル – Liquidfuncの日記

/usr/local/var/mysql/my.cnfに「skip-grant-tables」を追加します。

[mysqld]

skip-grant-tables

MySQLを再起動します。
自動起動がONなっている場合は「mysql.server stop」だけでいけます。
自動起動をOFFにする方法は下記補足を参照してください。

$ mysql.server stop
$ mysql.server start

新しいrootパスワードを設定する

MySQLサーバに接続して、新しいrootパスワードを設定します。

$ mysql -u root mysql
Enter password:

mysql> UPDATE user SET Password=PASSWORD('mynewpassword') WHERE User='root';
mysql> FLUSH PRIVILEGES;

/usr/local/var/mysql/my.cnfに記述した「skip-grant-tables」を削除して、
MySQLを再起動します。

$ mysql.server stop
$ mysql.server start

MySQLに接続できるか確認して完了です。

$ mysql -u root -p
Enter password:

補足: MySQLの自動起動をOFFにする

MySQLの自動起動はデフォルトではONになっているので自動起動をしない設定します。
自動機能の設定は起動スクリプトに記述します。
~/Library/LaunchAgents/homebrew.mxcl.mysql.plistの「KeepAlive」を「false」に変更します。

変更前:
<key>KeepAlive</key>
<true/>

変更後:
<key>KeepAlive</key>
<false/>

launchctlコマンドを実行してスクリプトを再読み込みすれば、自動起動がOFFになります。

$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

tmuxで lanchctl load を実行するとエラーになる

launchctlコマンドを実行しするところでエラーが出ました。
Bugとか言ってる。

$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Bug: launchctl.c:2425 (25957):13: (dbfd = open(g_job_overrides_db_path, O_RDONLY | O_EXLOCK | O_CREAT, S_IRUSR | S_IWUSR)) != -1
launchctl: Error unloading: homebrew.mxcl.mysql

loadでやってみても同じ。

$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Bug: launchctl.c:2425 (25957):13: (dbfd = open(g_job_overrides_db_path, O_RDONLY | O_EXLOCK | O_CREAT, S_IRUSR | S_IWUSR)) != -1
launch_msg(): Socket is not connected

調べてみると下記を見つけました。
Mac OS Xのtmux内でlaunchctl load -w したらBug: launchctl.c:2406 (25182):13:って怒られるよねって話: 麦汁三昧

tmuxを使っていると上手く動かないみたいです。
tmuxの外で実行したらできました。

タグ: ,

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください