🗑️

Homebrew ではインストールできなくなった古い MySQL 5.7 を macOS にインストールする方法

2024/09/04に公開

はじめに

2024 年 8 月から MySQL 5.7 は Homebrew でインストールできなくなりました

インストール手順については公式ページ (2.8.4 Installing MySQL Using a Standard Source Distribution) にありますが、これはディレクトリ構成が今と異なっていたり実際に使えるようになるまでの包括的な内容になっていなかったりします。

そこで今回は macOS に MySQL 5.7 をソースコードからビルドしてインストールする方法についてご紹介します。

既存の MySQL の削除

すでに新しいバージョンの MySQL を Homebrew でインストールしている場合はトラブルを避けるために一度削除してください。

Shell
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
Shell
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" の項目を選択しダウンロードします。

MySQL のソースコードのダウンロード画面

これ以降の説明で VERSION と記載されている部分はここでダウンロードした MySQL のバージョンに読みかえてください。

アーカイブファイルの展開

先ほどダウンロードしたソースコードのアーカイブを展開します。ダウンロードしたディレクトリまで移動し以下を実行します。

Shell
tar zxvf mysql-boost-VERSION.tar.gz

展開が完了すると同ディレクトリに mysql-VERSION というフォルダが生成されるはずです。

ディレクトリの作成

インストール時に生成されるファイルやフォルダを格納するためのディレクトリを作成します。ソースコードが展開された場所やアーカイブファイルと同じディレクトリに以下の 2 種類のディレクトリを作成します。

Shell
mkdir mysql-home
mkdir boost

インストール

MySQL のインストールを行います。まずは mysql-VERSION ディレクトリに移動します。

Shell
cd mysql-VERSION

続いて cmake を実行します。/path/to/ の部分は先ほど作成した mysql-homeboost があるディレクトリの絶対パスに読みかえてください。

Shell
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 を実行します。

Shell
make
make install

必要なライブラリが足りていて特に問題なければこれで MySQL がインストールされました。

データの初期化

実際に使用する前にまずはデータを初期化する必要があります。先ほど作成した mysql-home ディレクトリに移動します。

Shell
cd mysql-home

そこに新しく mysql-files というディレクトリを作成します。

Shell
mkdir mysql-files

作成したディレクトリの所有者と権限を変更します。

Shell
sudo chown mysql:mysql mysql-files
sudo chmod 750 mysql-files

以下のコマンドを実行し初期化を行います。

Shell
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 デーモンの起動

以下のコマンドを実行し MySQL のサーバを起動します。

Shell
mysqld

MySQL へログイン

ここで別のタブやウィンドウを開いて新しいセッションを開始します。続いて以下のコマンドを実行します。

Shell
mysql -u root -p

パスワード求められるので先ほど表示されたパスワード (この記事では AyVCZ+whY9R( と表記されているもの) を入力して MySQL にログインします。プロンプトが mysql> となればログイン成功です。

パスワードの変更

先ほど一時的に発行されたパスワードを任意のパスワードに変更します。これを先に行わないと他のデータベースの操作はできませんのでご注意ください。my_new_password の部分は適宜変更してください。

MySQL
SET PASSWORD = PASSWORD('my_new_password');

今後 mysql -u root -p でログインするときは上記で設定したパスワードを使ってください。

データベースの確認

最後に、データベースが正常に動作しているか確認します。以下の SQL を実行します。

MySQL
SELECT Host, User FROM mysql.user WHERE User = 'root';

以下のようにホストとユーザの情報が表示されれば成功です。

+-----------+------+
| Host      | User |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.01 sec)

MySQL からログアウトするには以下を実行します。

MySQL
exit

これで MySQL のインストールは以上となります。お疲れさまでした。

参考

GitHubで編集を提案

Discussion