2024 年 8 月から MySQL 5.7 は Homebrew でインストールできなくなりました。
インストール手順については公式ページ (2.8.4 Installing MySQL Using a Standard Source Distribution) にありますが、これはディレクトリ構成が今と異なっていたり実際に使えるようになるまでの包括的な内容になっていなかったりします。
そこで今回は macOS に MySQL 5.7 をソースコードからビルドしてインストールする方法についてご紹介します。
すでに新しいバージョンの MySQL を Homebrew でインストールしている場合はトラブルを避けるために一度削除してください。
brew uninstall mysql
以下のライブラリが必要なため事前にインストールします。
| Library | Version | Package |
|---|---|---|
bison |
>= 2.1 |
Xcode |
cmake |
n/a |
Homebrew |
gcc |
>= 5.3 |
Xcode |
git |
n/a |
Homebrew |
make |
>= 3.75 |
Xcode |
ncurses |
n/a |
Homebrew |
openssl |
>= 1.0.1 |
Homebrew |
xcode-select --install
brew install cmake git ncurses openssl
MySQL Community Server (Archived Versions) から必要なバージョンをダウンロードします。以下は 5.7.44 をインストールする場合の例です。
| Item | Value |
|---|---|
| Product Version | 5.7.44 |
| Operating System | Source Code |
| OS Version | All Operating Systems (Generic) (Architecture Independent) |
“Compressed TAR Archive, Includes Boost Headers” の項目を選択しダウンロードします。

これ以降の説明で VERSION と記載されている部分はここでダウンロードした MySQL のバージョンに読みかえてください。
先ほどダウンロードしたソースコードのアーカイブを展開します。ダウンロードしたディレクトリまで移動し以下を実行します。
tar zxvf mysql-boost-VERSION.tar.gz
展開が完了すると同ディレクトリに mysql-VERSION というフォルダが生成されるはずです。
インストール時に生成されるファイルやフォルダを格納するためのディレクトリを作成します。ソースコードが展開された場所やアーカイブファイルと同じディレクトリに以下の 2 種類のディレクトリを作成します。
mkdir mysql-home
mkdir boost
MySQL のインストールを行います。まずは mysql-VERSION ディレクトリに移動します。
cd mysql-VERSION
続いて cmake を実行します。/path/to/ の部分は先ほど作成した mysql-home や boost があるディレクトリの絶対パスに読みかえてください。
cmake -DCMAKE_INSTALL_PREFIX=/path/to/mysql-home \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/path/to/boost \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1
次に make を実行します。
make
make install
必要なライブラリが足りていて特に問題なければこれで MySQL がインストールされました。
実際に使用する前にまずはデータを初期化する必要があります。先ほど作成した mysql-home ディレクトリに移動します。
cd mysql-home
そこに新しく mysql-files というディレクトリを作成します。
mkdir mysql-files
作成したディレクトリの所有者と権限を変更します。
sudo chown mysql:mysql mysql-files
sudo chmod 750 mysql-files
以下のコマンドを実行し初期化を行います。
bin/mysqld --initialize --user=mysql
実行して以下のようなメッセージが表示されれば成功です。
2024-09-03T06:30:15.306122Z 1 [Note] A temporary password is generated for root@localhost: AyVCZ+whY9R(
一時的に使用するパスワード (ここでは AyVCZ+whY9R() が表示されるのでこれを控えておきます。
以下のコマンドを実行し MySQL のサーバを起動します。
mysqld
ここで別のタブやウィンドウを開いて新しいセッションを開始します。続いて以下のコマンドを実行します。
mysql -u root -p
パスワード求められるので先ほど表示されたパスワード (この記事では AyVCZ+whY9R( と表記されているもの) を入力して MySQL にログインします。プロンプトが mysql> となればログイン成功です。
先ほど一時的に発行されたパスワードを任意のパスワードに変更します。これを先に行わないと他のデータベースの操作はできませんのでご注意ください。my_new_password の部分は適宜変更してください。
SET PASSWORD = PASSWORD('my_new_password');
今後 mysql -u root -p でログインするときは上記で設定したパスワードを使ってください。
最後に、データベースが正常に動作しているか確認します。以下の SQL を実行します。
SELECT Host, User FROM mysql.user WHERE User = 'root';
以下のようにホストとユーザの情報が表示されれば成功です。
+-----------+------+
| Host | User |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.01 sec)
MySQL からログアウトするには以下を実行します。
exit
これで MySQL のインストールは以上となります。お疲れさまでした。