drush si 故障用户具有访问权限,无法创建数据库:错误 1045 (28000):用户访问被拒绝

drush si failure user has access, Failed to create database: ERROR 1045 (28000): Access denied for user

我是运行以下几组命令自动安装某drupal网站

phpMyAdmin,有一个名为 x_init_testing 的数据库,并且有一个用户测试密码 secret 可以登录它(手动 drupal 安装工作正常,并且可以通过用户访问数据库和密码)

首先,我是运行

mysqladmin -utesting -psecret drop x_init_testing -f
mysqladmin -utesting -psecret create x_init_testing

这两个都工作正常,并清除数据库(应该允许 drush 在其上安装新站点)

那我就是运行

drush si profileName --db-url=mysql://root@127.0.0.1/x_init_testing -y --account-pass=secret

root有密码(即不为空) drush sql connect 确实有效

drush sql-connect
mysql --user=testing --password=secret --database=x_init_testing --host=127.0.0.1 --port=8889

该站点存储在 MAMP 上(即,在我的本地机器上,因此没有网络问题)

我的 settings.php 文件配置了数据库 */

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'x_init_testing',
      'username' => 'testing',
      'password' => 'secret',
      'host' => '127.0.0.1',
      'port' => '8889',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

仍然运行 drush si 结果

You are about to CREATE the 'x_init_testing' database. Do you want to continue? (y/n): y
Failed to create database: ERROR 1045 (28000): Access denied for user[error]
'root'@'localhost' (using password: NO)

如果需要,我正在使用:Drush 版本 8.1.6,似乎我正在使用 si

所需的所有参数

我想我发现了问题,理论上 root 用户启动时没有密码,这就是为什么该命令在没有设置 root 密码的机器上运行的原因

将 si 命令更改为:

drush si profileName --db-url=mysql://root:password@127.0.0.1/x_init_testing -y --account-pass=secret