我试图在我的PHP网络应用程序中使用Doctrine 2 ORM,而且我遇到了一个我无法解决的问题。
为了测试我使用Vagrant,安装了Scotchbox(安装基本的LAMP堆栈)。
我试图运行$ vendor / bin / doctrine orm:schema-tool:create并且我不断收到此错误:
[学说\ DBAL \异常\ ConnectionException]
驱动程序中发生异常:没有此类文件或目录
[学说\ DBAL \驱动\ mysqli的\ MysqliException]
没有这样的文件或目录
这是我的连接参数:
$isDevMode = true;
$paths = array("db-entities/");
$dbParams = array(
'driver' => 'mysqli',
'user' => 'root',
'password' => 'root',
'dbname' => 'scotchbox'
);
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$entityManager = EntityManager::create($dbParams, $config);
如果我添加主机' => ' 127.0.0.1'到数组,然后我得到一个不同的错误:
[学说\ DBAL \异常\ ConnectionException]
驱动程序中发生异常:连接被拒绝
[学说\ DBAL \驱动\ mysqli的\ MysqliException]
连接被拒绝
如果我尝试连接标准的mysqli调用,它可以正常工作(DB_HOST =' localhost'):
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$mysqli) {
die("Database connection failed:");
}
我不知道我哪里出错了?
答案 0 :(得分:0)
检查您是否在流浪汉机器上安装了php-mysql
。
答案 1 :(得分:0)
对于那些也可能遇到这个问题的人来说,这是解决方案:
只需更新Vagrantfile即可使用rsync:
config.vm.synced_folder ".", "/var/www", type: "rsync",
rsync__exclude: ".git/"
而不是默认值:
config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=666"]
每次要更新虚拟机时都需要运行vagrant rsync
,但现在可以成功运行并运行以下命令:
$vendor/bin/doctrine orm:schema-tool:create