Drupal8.55 / データベースの設定でエラーが発生する

Events happening in the community are now at Drupal community events on www.drupal.org.
kuronecozizi's picture

お世話になっております。

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

blauerberg's picture

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's picture

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からのアクセスをアクセスを許可してみてはどうでしょうか?

kuronecozizi's picture

blauerberg 様

解決方法をお示しいただきありがとうございました!

まず、drop user で一旦、ユーザー “ drupal” を削除。

MariaDB [(none)]> SELECT user,host FROM mysql.user;    でホストを表示させ、

localhost(127.0.0.1)を確認。

新しくユーザーを localhost でcreate。

で無事 drupal の Welcomeページを表示することができました。

本当に助かりました!!!

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: