VPSでCakePHP③ MySQL設定
CakePHP導入段階ではDBとの接続が確立されていない。
ということでMySQL設定を進めていく。
MySQLにログイン
まずは起動。
$ sudo systemctl start mysqld
初期パスワードが生成されているので確認。
$ sudo cat /var/log/mysqld.log | grep 'password is generated' 2017-07-29T03:12:19.639837Z 1 [Note] A temporary password is generated for root@localhost: [パスワード]
パスワードを確認できたらログインする。
$ mysql -u root -p
パスワードを求められるので入力。
うまく入れた場合はまずパスワードを変更する(ここでトラブった場合は後述)。
mysql> set password for root@localhost=password('Cake@1234');
ある程度強固なパスワードを設定する必要があり、大文字英字、小文字英字、数字、記号をすべて使わなければ通らないので注意。
databaseを作成する。
mysql> create database cake_db; Query OK, 1 row affected (0.00 sec)
ここまで終えたらMySQLを出る。
mysql> \q Bye
CakePHPに接続
$ cd [自分のプロジェクトディレクトリ] $ sudo vi config/app.php
app.phpの'Datasources'以下を修正。
// config/app.php 'username' => 'root' 'password' => 'Cake@1234' 'database' => 'cake_db'
これでdatabaseが緑になるはず。
なぜかMySQLに入れない時
MySQL初ログイン時、どう考えても正しいパスワードを打ってるのに入れないことがある(筆者はこのトラブルに遭遇した)。
その場合は下記のteratailの質問を参考にセーフモードでパスワードの再設定を行う。
MySQL - CentOS7.2でのMySQLインストールでの問題(53026)|teratail
以下、回答からの引用。
CentOS7ならこのコマンドを順に叩いていけば解決するはず。
systemctl stop mysqld systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" systemctl start mysqld mysql -u root mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword') -> WHERE User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit systemctl stop mysqld systemctl unset-environment MYSQLD_OPTS systemctl start mysqld