web-dev-qa-db-ja.com

Drushを使用したサイトの作成が機能しない

Drupal 8をdrushを使用してインストールしようとしています。

drush dl drupal --drupal-project-rename=example
cd example

ここまでは順調ですね。

ただし、この部分に到達すると、

drush site-install standard --db-url='mysql://root:my+Password@localhost/db_name' --site-name=Example

私も試しました:

drush site-install standard --db-url='mysql://root:[email protected]/db_name' --site-name=Example

しかし、私は次のエラーを受け取ります:

データベースサーバーへの接続に失敗しました。サーバーは次のメッセージを報告します。SQLSTATE [HY000] [1045]ユーザーroot @ localhostのアクセスが拒否されました(パスワードを使用:YES)データベースサーバーは稼働していますか?データベースは存在しますか、それともデータベースユーザーはデータベースを作成するための十分な権限を持っていますか?正しいデータベース名を入力しましたか?正しいユーザー名とパスワードを入力しましたか?正しいデータベースのホスト名を入力しましたか?

答えはすべて「はい」なので、インストールは機能するはずです。構文に問題がありますか?私は他にDrupalこのサーバーに手動でインストールしたサイトがあります。それは、Drushのインストールだけで機能しません。何が悪いのですか?

2
GTS Joe

これはトリッキーでしたが、私は最終的に自分でそれを理解しました。インストールが失敗した理由は、MySQLパスワードに特殊文字が含まれていたためです。 Drushは特殊文字をエスケープできないため、次のコマンドを使用してパスワードを変更する必要がありました。

mysqladmin -uroot -pOldPassword password newPassword

その後、それは魅力のように働きました!

0
GTS Joe

これはおそらく、スーパーユーザー(user/1)の設定がないためです。 Drupalにログインできるように、アカウントのユーザー名とパスワードを設定する必要があります。

drush site-install standard --account-name=admin --account-pass=12345 --db-url=mysql://dbusername:dbpass@localhost/db_name --site-name=Example
1
No Sssweat

コマンドで、mysqlポートについて言及していません。以下のコマンドを参照してください。

drush si --db-url=mysql://db-user:db-pass@localhost:3306/db-name

ユーザー名とパスワードはオプションです。サイトがインストールされると、自動生成されたユーザー名とパスワードがコンソールに表示されます。注意してください。

0
Aniket More