0

我正在尝试从我的 ddev Web 容器创建一个新的 drupal 7 多站点。虽然 drush si 运行良好,但创建另一个数据库和站点失败。我从主机运行 ddev ssh 然后发出

drush site-install --sites-subdir=mysite --db-url=mysql://db:db@db/mysite --db-su=root --db-su-pw=root

这似乎不起作用。虽然只是以 root 身份输入 mysql-dbmysql -uroot -h db

并创建新的数据库工作。

使用 --debug 选项运行 drush 显示,用户 db 无法访问数据库:

sql-query: DROP DATABASE IF EXISTS test8; CREATE DATABASE test8 /*!40100 DEFAULT CHARACTER SET utf8 */; GRANT ALL PRIVILEGES ON test8.* TO 'db'@'%' IDENTIFIED BY 'db'; FLUSH PRIVILEGES; [4.26 sec, 2.03 MB]               [notice]  
Executing: mysql --defaults-extra-file=/tmp/drush_lGzF0v --database=information_schema --host=db --silent  < /tmp/drush_GTSajV  
ERROR 1044 (42000) at line 1: Access denied for user 'db'@'%' to database 'test8'  
Failed to create database: ERROR 1044 (42000) at line 1: Access denied for user &#039;db&#039;@&#039;%&#039; to database &#039;test8&#039; [4.3 sec, 2.03 MB]   

解决方法
添加格兰特,如下面的评论中所述:

grant all on *.* to 'db'@'%';  

如果我现在连续两次运行相同的 drush 命令,它可以工作并安装该站点。

我没有在不同的堆栈上尝试过这个,所以可能是 drush site-install 中的一个错误。我也对 ddev 上的 drupal 8 做了同样的事情,它显示出类似的行为,即使它产生不同的错误。相同的解决方法,运行命令两次修复站点安装。

4

0 回答 0