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のインストールだけで機能しません。何が悪いのですか?
これはトリッキーでしたが、私は最終的に自分でそれを理解しました。インストールが失敗した理由は、MySQLパスワードに特殊文字が含まれていたためです。 Drushは特殊文字をエスケープできないため、次のコマンドを使用してパスワードを変更する必要がありました。
mysqladmin -uroot -pOldPassword password newPassword
その後、それは魅力のように働きました!
これはおそらく、スーパーユーザー(user/1)の設定がないためです。 Drupalにログインできるように、アカウントのユーザー名とパスワードを設定する必要があります。
drush site-install standard --account-name=admin --account-pass=12345 --db-url=mysql://dbusername:dbpass@localhost/db_name --site-name=Example
コマンドで、mysqlポートについて言及していません。以下のコマンドを参照してください。
drush si --db-url=mysql://db-user:db-pass@localhost:3306/db-name
ユーザー名とパスワードはオプションです。サイトがインストールされると、自動生成されたユーザー名とパスワードがコンソールに表示されます。注意してください。