さて、今回はお手軽にMySQL8をインストールしたときの問題点などをご紹介します。MacOS用パッケージマネージャーHomebrewを使ってインストール、そしてphpからアクセスしたときの問題点などをご紹介します。
Vagrantで環境を整えておりましたが面倒になったので簡単にhomebrewからインストールできるということを最近知りました。というよりHomebrewあまり使っていないという。。最近v2.0になりましたのでついでにMySQLを入れてあらかじめ入っているPHPでテストしてみようと思った次第です、
いろいろとうまくいかないことが多々ありましてやめようかと思ったけどなんとか出来たので残しておきます。
インストール
homebrewがインストール済みということで話を進めます。インストールといってもターミナルで以下を実行するだけです。
そしてMySQLは以下を実行すればインストールされます。現在はMySQL8がインストールされます。
MySQL5.6や5.7を入れたい場合は以下を実行すれば良いです。
brew search mysqlで入れたいバージョンを探します。mysql@5.5,mysql@5.6,mysql@5.7と入っていますね。
brew install mysql@5.7として5.7を入れることが出来ます。
今回はMySQL8で進めます。
初期設定
MySQLを入れたらとりあえずこのコマンド(mysql_secure_installation)で初期設定を行います。
初期設定というかセキュリティ設定です。日本語訳と一緒に載せておきます。
設定内容は以下の通りですが内容全部YESにします。
- root パスワードの設定
- root ユーザーのログインを localhost に制限(リモートホストからアクセス禁止)
- anonymous ユーザーの削除
- test データベースの削除
これで設定できました。以下でログインします。
ストップするときは以下です。
MySQL8からユーザー認証の方法がmysql_native_passwordからcaching_sha2_passwordに変更されていますので
MySQLの認証をmysql_native_passwordに戻せばcaching_sha2_passwordに対応してないアプリでも接続できるので設定します。
因みにMySQL8の場合はパスワードの変更方法が変わっています。
以下はMySQL5の時のパスワード変更方法
以下はパスワードポリシーの変更方法です。
あとはmy.cnf設定内容
そして今度はPHPの設定です。/tmp/mysql.sockにパスを設定します。
これで設定完了です。ようやくPHPからのアクセスが可能になります。PHPのビルトインサーバーを使ってアクセス出来ました。入っているPHPのバージョンは7.1.23でした。
因みにMySQLだとkeyという項目が登録できないことに気がつかず1時間ぐらい悩みました。例えば以下のテーブルを作成しようと実行したら
エラーが出てしまったのですが全く意味がわからない状態でしたがどうもkey項目は登録できないようでした。
参考になれば幸いです。
西沢 夢路 SBクリエイティブ 2017年09月25日
∞Tadashi Suyama∞
MySQL8
PHP
localhost
homebrew