Php Codeception-无法运行dump.sql-(数据库中的异常)SQLSTATE[42000]:语法错误或访问冲突
当我运行验收测试时,我得到以下错误。如果dump.sql中没有任何内容,那么测试将运行。在测试中,我能够访问数据库。以下两个文件中的数据库凭据相同。dump.sql加载使用acceptance.suite.yml是正确的,因为我在acceptance.suite.yml中故意将dump.sql命名错误,然后在codeception.yml中使用了acceptance.suite.yml中的设置?我说的测试步骤使用PDO,而PDO使用codeceptan.yml,对吗?如果它们是相同的,那么为什么我会得到访问冲突 acceptance.suite.yml codeception.yml dump.sql 创建表xxx< 错误: [Codeception\Exception\Module] Db SQLSTATE[42000]中出现异常:语法错误或访问冲突:1064 Y 您的SQL语法有错误;检查与y对应的手册 我们的MySQL服务器版本提供了正确的语法∩╗┐创建表'f'Php Codeception-无法运行dump.sql-(数据库中的异常)SQLSTATE[42000]:语法错误或访问冲突,php,mysql,codeception,Php,Mysql,Codeception,当我运行验收测试时,我得到以下错误。如果dump.sql中没有任何内容,那么测试将运行。在测试中,我能够访问数据库。以下两个文件中的数据库凭据相同。dump.sql加载使用acceptance.suite.yml是正确的,因为我在acceptance.suite.yml中故意将dump.sql命名错误,然后在codeception.yml中使用了acceptance.suite.yml中的设置?我说的测试步骤使用PDO,而PDO使用codeceptan.yml,对吗?如果它们是相同的,那么为什么
 CREATE TABLE
看起来这些无关字符是在CREATE TABLE语句的前面。去掉这些,你就可以开始了…我也注意到了,但是当我打开dump.sql文件时,我看不到这一点。当我复制dump.sql中的内容并粘贴到mysql中时,它运行良好。创建是在mysql内部生成的。您是否可以尝试这样做来从dump.sql文件中删除无关字符:alvinalexander.com/blog/post/linux-unix/how-remove-non-printable-ascii-characters-file-unix…并检查这是否有效?我进入了记事本++>编码>从UTF8改为ANSI>保存>重新运行,现在它已经起作用了。
actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
helpers: tests/_support
settings:
bootstrap: _bootstrap.php
colors: true
memory_limit: 1024M
modules:
enabled: [PhpBrowser,Db]
config:
Db:
dsn: 'mysql:host=xxx;dbname=xxx'
user: 'xxx'
password: 'xxx'
dump: 'test/_data/dump.sql'
populate: 'true'
cleanup: 'true'
 CREATE TABLE