Php 使用Doctrine 2 CLI连接到vagrant(scotchbox)数据库时出现问题

Php 使用Doctrine 2 CLI连接到vagrant(scotchbox)数据库时出现问题,php,doctrine-orm,vagrant,Php,Doctrine Orm,Vagrant,我试图在我的PHP web应用程序中使用Doctrine 2 ORM,但遇到了一个我无法解决的问题 为了进行测试,我使用了Vagrant,安装了Scotchbox(安装了一个基本的灯组) 我正在尝试运行$vendor/bin/doctor-orm:schema-tool:create,但一直出现以下错误: [条令\DBAL\Exception\ConnectionException] 驱动程序中发生异常:没有此类文件或目录 [条令\DBAL\Driver\Mysqli\MysqliExcepti

我试图在我的PHP web应用程序中使用Doctrine 2 ORM,但遇到了一个我无法解决的问题

为了进行测试,我使用了Vagrant,安装了Scotchbox(安装了一个基本的灯组)

我正在尝试运行$vendor/bin/doctor-orm:schema-tool:create,但一直出现以下错误:

[条令\DBAL\Exception\ConnectionException]
驱动程序中发生异常:没有此类文件或目录

[条令\DBAL\Driver\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\Exception\ConnectionException]
驱动程序中发生异常:连接被拒绝

[条令\DBAL\Driver\Mysqli\MysqliException]
拒绝连接

如果我尝试使用标准的mysqli调用进行连接,它会工作(DB_HOST='localhost'):


我不确定哪里出了问题???

检查您是否已在vagrant机器上安装了
php mysql

对于那些可能也会遇到此问题的人,以下是解决方案:

只需更新Vagrant文件以使用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
,但现在您可以通过ssh登录并成功运行以下命令:

$vendor/bin/doctrine orm:schema-tool:create

如果在数组中添加
“主机”=>“本地主机”
?我在OSX上安装了两个mysql实例,也遇到了类似的问题。。。也许也可以检查你的进程。如果我加上它会给我和没有它时一样的错误。a
ps-waux | grep-mysql
会说什么?你可能只需要删除装载选项(或更新它们),但我还没有测试过。
$vendor/bin/doctrine orm:schema-tool:create