目次
1.環境
・Windows7 32bit
※前提条件として、利用するユーザーはローカルDBと同一ネットワークにいること。
下記、2と3に関しては、私の別記事「FuelPHPのWeb開発環境をVagrantで構築する No.1」を参考にして、Vagrantのセットアップまで行っていましたらすでにインストール済みであります。
そのため、下記2と3に記載されている内容はMySQLの再インストール
2.MySQLのダウンロード
適当な場所に移動する。
※ここでは/home内にrepoフォルダを作成して、その中にダウンロードする。
$ cd /home
$ mkdir repo
$ cd repo
3.MySQLセットアップ
3-1.MySQLのインストール
MySQLのバージョンが5.7がインストールされていることを確認する
$ mysqld --version
インストールされていれば以下の内容が出力される
3-2.MySQLのアンインストール
MySQLのインストール状況を確認する
おそらく以下のMySQL関連のソフトをアンインストールすればよい
MySQLファイルの削除
3-3.MySQLの自動起動設定
$ sudo systemctl enable mysqld.serivce
3-4.MySQLの起動
$ sudo systemctl start mysqld.service
3-5.MySQLの状態確認
$ sudo systemctl status mysqld.service
3-6.MySQLの停止
$ sudo systemctl stop mysqld.service
3-7.ログイン
MySQLへログインする
$ mysql -u root -p
もしかしたら以下のようなエラーメッセージが表示されることがある。
その場合は以下の手順を実施する。
一旦停止させる
$ systemctl stop mysqld
権限テーブルの使用をスキップする
$ systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
再度起動
$ systemctl start mysqld
上記のエラーが表示されないことを確認する。
ただし、このままではrootパスワードが不明であるため、以下の手順で初期パスワードを確認する
【注意】
MySQL5.7 では、rootパスワードはランダムな文字のものが初期状態で設定される。
パスワードはインストール終了後に /var/log/mysqld.log に出力される。
設定時のパスワード確認
$ sudo grep 'temporary password' /var/log/mysqld.log
上記コマンド実行後以下の内容を出力され初期パスワードが確認できる。
2017-04-26T16:20:03.471444Z 1 [Note] A temporary password is generated for root@localhost: ○○○○○○○○○○○○
初期パスワードを使用して、ログインできることを確認する。
3-8.初期パスワード変更
MySQLログイン後
データベースを選択する
$ use mysql
新しいパスワードを設定する
$ UPDATE user SET authentication_string=password('新規パスワード') WHERE user='root';
再設定したパスワードをMySQLへ反映させる
$ flush privileges;
ログアウトする
$ exit
再度ログインして設定したパスワードでログインできることを確認する
4.ユーザーを登録する
新規作成
$ create mysql.user '[ユーザー名]'@'[ホスト]' identified by 'test';
4-1.パスワードポリシーエラーが発生した場合
ユーザー新規作成時にパスワードが要件を満たしていないよというエラーが発生する
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
開発環境であまりガッチリパスワードを指定したくないので、ポリシーレベルを下げる
ポリシーレベルの確認
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
パスワードポリシーがMIDIUMになっている
下記の表は、MySQLドキュメントから引用している。
ポリシー | 実施されるテスト |
---|---|
0 または LOW |
長さ |
1 または MEDIUM |
長さ。数値、小文字、大文字、および特殊文字 |
2 または STRONG |
長さ。数値、小文字、大文字、および特殊文字。辞書ファイル |
MIDIUMのままでは特殊文字も指定するのは面倒なので変更する。
あと長さも。
変更されているか確認
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 4 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
再度実行!
問題なくできた!
5.ユーザーに権限を与える
権限変更(全権限を与える場合)
$ grant all privileges on *.* to '[ユーザー名]'@'[ホスト]';
権限を確認する
$ show grants for '[ユーザー名]'@'[ホスト]';
6.ファイアーウォールの設定を行う
5.)まで完了して実際に別PCから接続しようとしてもはじかれると思うので、
ファイアーウォールの設定を確認し、必要であれば設定を行う。
設定方法については、ネットでも情報がたくさんあるため、ここでは割愛しておく。
ファイアーウォールの停止方法などは
7.接続確認
別PCからコマンドプロンプトを開き以下のコマンドを叩く
以上