我是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]没有这样的文件或目录
我遇到过很多其他话题,但无法找到正确的答案。谁能告诉我这里缺少什么?非常感谢任何帮助:)
答案 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连接
启动我的sql的mamp,xamp或其他替代方法
转到http:// localhost:8888 / phpMyAdmin /并获取这些信息, bd_name:可以是root bd_pass:可以是root或不可以 host:可以是本地主机 port:注意URL中的默认端口是8888,但是它不是您应在.env文件中使用的端口,请在admin phpmyAdmin页面的顶部检查Server:localhost:the_port_is_here。所以可能是8889
写出您的服务器版本,可以是5.7.26
返回到交响乐项目中的.env文件,并更改DATABASE_URL = 例如:DATABASE_URL =“ mysql:// root:root@127.0.0.1:8889 / mybddname?serverVersion = 5.7”
打开项目的集成终端,并在第一次写入时写
php bin /控制台学说:数据库:创建
如果您要删除数据库
php bin/console doctrine:database:drop --force
PS:我在Mac OS上使用nmap进行交响乐项目
答案 7 :(得分:0)
有时发生这种情况是因为您的 mySql 由于某种原因停止了。
检查一下:
service mysql status
如果它处于非活动状态,您只需要启动它:
service mysql start