tanaka's Programming Memo

プログラミングについてのメモ。

macOS Sierra で MySQLを動かす

MySQL5.7系は、macOS Sierraでは5.7.15以降にしないと動かないようです。

Does macOS sierra support any version of mysql? | Apple Developer Forums

MySQL5.7.11から5.7.16にアップデートした時の手順です。

MySQLを停止

  • あらかじめ、MySQLを停止しておく(動いていないはずだが、念のため)
mysqladmin shutdown

バックアップ

サーバーが動いていないので mysqldump は使えません。とりあえず、データフォルダーをコピーしておきます。

sudo cp -R /usr/local/var/mysql ~/mysql5.7.11.backup

ダウンロード

  • MySQL :: MySQL Community Downloadsを開く
  • MySQL Community Server(GPL)の DOWNLOAD をクリック
  • 下にスクロールして、適切なプラットフォームを選択して、[DMG Archive]を[Download]する
  • ログインするか、[No thanks, just start my download.]をクリック
  • ダウンロードが完了するのを待つ

インストール

  • ダウンロードした .dmg ファイルをダブルクリックする
  • .pkg ファイルをダブルクリックする
  • Installerダイアログが表示されたら[Continue]>[Agree]>[Install]で進める
  • [Install for all users of this computer]を選択して[Continue]>[Install]
  • temporaryパスワードが画面に表示されるので、書き留めておく。インストール後、そのパスワードでログインしたのち、新しいパスワードを設定する
  • インストールが完了したら[Close]を押す

パスを設定

  • 以下で、設定を呼び出す
cd ~
vi .bashrc
  • export PATHに、 /usr/local/mysql/bin が含まれていなかったら追加する

アップグレード

  • mysqld_safeでサーバーを起動
sudo mysqld_safe --user=mysql --datadir=/usr/local/var/mysql
  • サーバーが起動して待機状態になる。新しいターミナルを開く
  • 以下でアップグレードを実行する
sudo mysql_upgrade -u root -p
  • 一時パスワードでアップグレードを実行する
  • 成功したら、以下で一旦シャットダウンしてから、再起動する
mysqladmin -u root -p shutdown
sudo mysqld_safe --user=mysql --datadir=/usr/local/var/mysql
  • 使えるターミナルで、以下を実行
mysql -u root -p
  • パスワードを設定する
SET PASSWORD = PASSWORD('some password')
exit

以上で、mysqld_safeでサーバーを起動すれば完了です。

データをデフォルトの場所に移動

毎回データフォルダーを指定するのが面倒なので、データをバックアップして、デフォルトの場所に読み込み直します。

  • 現在のデータをバックアップ
mysqldump -u root -p
  --add-drop-table --routines --events
  --all-databases --force > data-for-upgrade.sql
  • MySQLをデフォルトのデータフォルダーで再起動
mysqladmin -u root -p
sudo mysqld_safe
  • バックアップしたデータを使ってリストアして、データをアップグレード
mysql -u root -p --force < data-for-upgrade.sql
sudo mysql_upgrade -u root -p

以上で完了です。この後は、以下でMySQLを簡単に起動できます。

sudo mysqld_safe

シャットダウンは以下の通りです。

mysqladmin -u root -p shutdown