Symfony3 - SQLSTATE [HY000] [2002]没有这样的文件或目录

时间:2016-10-08 17:56:05

标签: php mysql symfony

我是Symfony的新手,并开始做一些教程以完成一些事情。我正在研究Linux Mint 18机器和标准的Symfony3项目。

我想创建一个简单的数据库来玩它,但我遇到了一个错误,我无法找到合适的解决方案。

我的parameters.yml文件如下所示:

parameters:
   database_host: localhost
   database_port: null
   database_name: symfony
   database_user: root
   database_password: null
   mailer_transport: smtp
   mailer_host: 127.0.0.1
   mailer_user: null
   mailer_password: null
   secret: (not relevant)

我的Genus.php文件如下所示:

namespace AppBundle\Genus;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="genus")
 */
class Genus
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    private $id;
    /**
     * @ORM\Column(type="string")
     */
    private $name;

}

当我执行命令 dpkg -l php * mysql 时,我得到以下结果:

dpkg -l php*mysql
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name              Version       Architecture  Description
+++-=================-=============-=============-============================
un  php-pdo-mysql     <none>        <none>        (no description available)
ii  php7.0-mysql      7.0.8-0ubuntu amd64         MySQL module for PHP
un  php7.0-pdo-mysql  <none>        <none>        (no description available)

当我尝试使用

命令提示符创建本地数据库时
XXX@XXX-pc ~/PhpstormProjects/test_symfony $ php bin/console doctrine:database:create

这就是我得到的:

  

[学说\ DBAL \异常\ ConnectionException]
  驱动程序中发生异常:SQLSTATE [HY000] [2002]没有这样的文件或   目录
                                                                                                                                        [Doctrine \ DBAL \ Driver \ PDOException] SQLSTATE [HY000]   [2002]没有这样的文件或目录
                                                    [PDOException] SQLSTATE [HY000] [2002]没有这样的文件或目录

我遇到过很多其他话题,但无法找到正确的答案。谁能告诉我这里缺少什么?非常感谢任何帮助:)

8 个答案:

答案 0 :(得分:18)

在我的情况下,我只更改了localhost-&gt; 127.0.0.1并且它有效!

答案 1 :(得分:2)

可能为时已晚,但我遇到了同样的问题&#34; SQLSTATE [HY000] [2002]没有这样的文件或目录&#34;在我的symfony 3.2.9部署

我通过更改&#34; localhost&#34;中的database_host值来修复它。到我的parameters.yml文件中的服务器IP

但是在尝试通过SSH运行命令行时我收到了另一条错误消息:

unix_socket: /var/lib/mysql/mysql.sock
server_version: '5.5'

我最后通过在Doctrine配置部分的config.yml文件中添加这两行来修复它:

doctrine:
    dbal:
        driver: pdo_mysql
        host: '%database_host%'
        port: '%database_port%'
        dbname: '%database_name%'
        user: '%database_user%'
        password: '%database_password%'
        unix_socket: /var/lib/mysql/mysql.sock
        server_version: '5.5'
        charset: UTF8

我所有的最终学说配置都是这样的:

Object required (Error 424)

希望这有助于某人

答案 2 :(得分:1)

如果您使用mamp测试:

sudo ln -s /Applications/MAMP/tmp/mysql /var/mysql

答案 3 :(得分:0)

  

[PDOException] SQLSTATE [HY000] [2002]没有这样的文件或目录

当您的Web应用程序未连接到数据库时,通常会发生此错误。根据您的 parameter.yml ,它正在搜索mysql服务器&amp;没有连接,因为那时 mysql 没有安装在你的机器上。

答案 4 :(得分:0)

我对MySQL的了解提出了一种可能发生的变体并解释了这一点:

你有(旧的)mysqld正在运行,然后删除了datadir中的所有文件。 然后可能新的服务器无法启动 然后你连接到仍在运行的旧mysqld,但是尝试访问自己的系统文件(已删除)时出现“没有这样的文件或目录”错误。

答案 5 :(得分:0)

您尚未安装MySQL,请先安装MySQL

答案 6 :(得分:0)

Symphony mysql连接

  1. 启动我的sql的mamp,xamp或其他替代方法

  2. 转到http:// localhost:8888 / phpMyAdmin /并获取这些信息, bd_name:可以是root bd_pass:可以是root或不可以 host:可以是本地主机 port:注意URL中的默认端口是8888,但是它不是您应在.env文件中使用的端口,请在admin phpmyAdmin页面的顶部检查Server:localhost:the_port_is_here。所以可能是8889

  3. 写出您的服务器版本,可以是5.7.26

  4. 返回到交响乐项目中的.env文件,并更改DATABASE_URL = 例如:DATABASE_URL =“ mysql:// root:root@127.0.0.1:8889 / mybddname?serverVersion = 5.7”

  5. 打开项目的集成终端,并在第一次写入时写

    php bin /控制台学说:数据库:创建

如果您要删除数据库

php bin/console doctrine:database:drop --force

PS:我在Mac OS上使用nmap进行交响乐项目

答案 7 :(得分:0)

有时发生这种情况是因为您的 mySql 由于某种原因停止了。

检查一下:

service mysql status

如果它处于非活动状态,您只需要启动它:

service mysql start