升级到 ddev v0.19.0 后,我无法执行 ddev import-db: root 访问被拒绝

rfa*_*fay 3 ddev

我保留了一个经常用于构建站点的 sql 导入文件,升级到 ddev v0.19.0 后,当我执行 `ddev import-db --src=.tarballs/d7git.sql.gz 时,我得到了这个:

Failed to import database for d7git: Failed to run docker-compose [-f /Users/rfay/workspace/d7git/.ddev/docker-compose.yaml exec -T db bash -c mysql --database=mysql -e 'DROP DATABASE IF EXISTS db; CREATE DATABASE db;' && cat /db/*.*sql | mysql db], err='exit status 1', stdout='', stderr='ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)'

rfa*_*fay 9

编辑 2024-02-06:在 DDEV 的任何最新版本中遇到此处描述的错误将是非常令人惊讶的。有关数据库管理的更多信息,请参阅文档。

原答案如下:

这是 mariadb 容器中错误修复的结果。不幸的是它给你带来了这个问题。

通过完全删除数据库并重新启动来修复它:

ddev delete --omit-snapshot
ddev start
ddev import-db --file=<yourdb.sql.gz>
Run Code Online (Sandbox Code Playgroud)

发生的情况是,我们现在使用更高的(root)权限导入数据库来解决人们遇到的一些问题。但在v0.18.0中,root用户被破坏了。因此,如果您只是删除整个数据库并从头开始,一切都会正常工作(还有很多以前不起作用的事情)。这是每个项目一次的修复,您将来应该能够导入而无需执行此操作。