環境
CentOS: 7.6.1810
Apache: 2.4.6
PHP: 7.2.13
Laravel: 5.7
mysql: 5.7.24
WebサーバとDBサーバに分かれている(同一ネットワークに存在する)
You must reset your password using ALTER USER statement before executing this statement.
初期パスワードから変えていない。あるいはポリシーが満たない。
パスワードを変更する。あるいはポリシーを変更する。
http://swiftfe0.hatenablog.com/entry/2016/11/22/010631
is not allowed connect to this mysql server
mysqlだとデフォルトで外部からアクセスできないようになっている。
sshコネクションを張るか特定のアドレスを許可する(基本後者?)
GRANT ALL PRIVILEGES ON *.* TO root@"xxx.xxx165.17" IDENTIFIED BY 'password' WITH GRANT OPTION; mysql> select user , host from mysql.user; +---------------+---------------+ | user | host | +---------------+---------------+ | root | xxx.xxx.1x5.x7 | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost |
select user , host from mysql.user; でどのホストがどのユーザで接続できるのか確認できる。
passwordはポリシーに準拠する必要がある
https://qiita.com/m-shin/items/770c1c54a889bf060751
PHPプログラム実行時MySQLに接続できない is not allowed to connect to this MySQL server
[root@app-web app]# php artisan migrate
Illuminate\Database\QueryException : SQLSTATE[HY000] [1130] Host 'xx.2xx.xx5.xxx' is not allowed to connect to this MySQL server (SQL: select * from information_schema.tables where table_schema = webedi and table_name = migrations)
Illuminate\Database\QueryException : SQLSTATE[HY000] [1130] Host 'xx.2xx.xx5.xxx' is not allowed to connect to this MySQL server (SQL: select * from information_schema.tables where table_schema = webedi and table_name = migrations)
phpinfo()を出力するとPDOにMySQLがない。
CentOSで最新のPHPをインストールした時などに漏れる。
NG
yum install --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-xml php-zip1
OK
yum install --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-xml php-zip1 php-mysqlnd
php-mysqlnd を追加インストールする場合以下
yum install --enablerepo=remi,remi-php72 php-mysqlnd
phpのバージョンは合わせること。
特に再起動などは必要ない模様。
PDO driversにmysqlが追加されていればOK.
参考
https://mintaku-blog.net/mysql-pdoexception/
http://yosugi.hatenablog.jp/entry/2013/06/23/185240
https://gist.github.com/koudaiii/340527ca1e9042758aa5