Posted by kuronecozizi on July 11, 2018 at 8:34pm
お世話になっております。
Drupal8.5.5を導入しようとしています。
DrupalをComposerでサーバー内に展開し、ブラウザでアクセスしました。
その初期設定画面で困っています。
[データベースの設定]で、次のようなエラーメッセージが表示されました。
・データベースサーバーへの接続に失敗しました。サーバーからの返信: SQLSTATE[HY000] [1130] Host 'My_Site' is not allowed to connect to this MariaDB server
・データベースサーバーが稼働していますか?
・データベースが存在しているか、あるいはデータベースユーザーにデータベースを作成する適切な権限がありますか?
・データベース名を正しく入力していますか?
・ユーザー名とパスワードを正しく入力していますか?
・データベースのホスト名を正しく入力していますか?・データベース(MariaDB)は enable しており、稼働しています。
・show grants でデータベースのユーザーを確認すると以下のようになっており、適切な権限があると思われます。
GRANT USAGE ON . TO 'drupal'@'My_Site.net' IDENTIFIED BY PASSWORD 'パスワード' |
| GRANT ALL PRIVILEGES ON drupaldb. TO 'drupal'@'My_Site.net' |・Drupalの設定画面では、show grants で出力した「' '」内のデータベースユーザー名、パスワード、ホスト名(高度なオプション)を入力するのですが、上記のようにはじかれてしまいます。
・ホスト名を IPアドレス で入力しても通りませんでした。
サーバー内での mysqlディレクトリのパーミッション等を怪しんで確認してみましたが、特におかしくはなさそうです。
# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 846 mysql 21u IPv6 16170 0t0 TCP *:mysql (LISTEN)# cd /var/lib/
# ls -l
drwxr-xr-x 4 mysql mysql 4096 7月 11 22:15 mysql唯一気になるのは、mysqldがIPv6でLISTENしているのに対し、nginxがPort80においてIPv4でLISTENしていることです。
ここら辺は問題になるのでしょうか?
ご指摘・ご教授いただけますと、大変勉強になりますので、どうぞよろしくお願いいたします。
【構成】
さくらのクラウド
CPU:1core
Memory:1GB
SSD:20GB
OS:CentOS 7.5(64bit)
DB:MariaDB 10.2.8
PHP:PHP7.2 / PHP7.2-fpm
Server:Nginx 1.15.0
Composer 1.6.5
Drupal8.5.5はComposerにより配置済み
*Nginx,MariaDB, PHPはyumでインストールしましたので、所有権や権限の設定は自動で行われていると考えております。
Comments
mariadbのdrupalユーザーに許可している接続元ホストの設定かも
grantで "My_Site.net" からのアクセスのみが許可する設定になっています。
webサーバーとMariaDBが同一サーバー上で稼働しているのであれば、
接続元が "My_Site.net" からではなく、 "localhost" または "127.0.0.1" からになっているかもしれません。
GRANT ALL PRIVILEGES ON drupaldb. TO 'drupal'@'localhost' identified by '****'のようにlocalhostからのアクセスをアクセスを許可してみてはどうでしょうか?mariadbのdrupalユーザーに許可している接続元ホストの設定かも
grantで "My_Site.net" からのアクセスのみが許可する設定になっています。
webサーバーとMariaDBが同一サーバー上で稼働しているのであれば、
接続元が "My_Site.net" からではなく、 "localhost" または "127.0.0.1" からになっているかもしれません。
GRANT ALL PRIVILEGES ON drupaldb. TO 'drupal'@'localhost' identified by '****'のようにlocalhostからのアクセスをアクセスを許可してみてはどうでしょうか?解決できました!!!本当にありがとうございます!
blauerberg 様
解決方法をお示しいただきありがとうございました!
まず、drop user で一旦、ユーザー “ drupal” を削除。
MariaDB [(none)]> SELECT user,host FROM mysql.user; でホストを表示させ、
localhost(127.0.0.1)を確認。
新しくユーザーを localhost でcreate。
で無事 drupal の Welcomeページを表示することができました。
本当に助かりました!!!