LBr*_*dge 40 php mysql symfony doctrine-orm
我是Symfony2(beta4)和Doctrine的新手,当我尝试通过命令行创建数据库模式时遇到问题.
这是错误:
$ php app/console doctrine:schema:create
Creating database schema...
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
[ErrorException]
Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)
in /Applications/MAMP/htdocs/sf-test-2/vendor/doctrine-dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php line 36
Run Code Online (Sandbox Code Playgroud)
mysql数据库设置已正确插入config/parameters.ini文件中.
这是config.yml中的Doctrine配置
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
dbname: %database_name%
user: %database_user%
password: %database_password%
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
Run Code Online (Sandbox Code Playgroud)
和实体(我只做一个测试)
<?php
// src/Acme/NewsBundle/Entity/Article.php
namespace Acme\NewsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="articles")
*/
class Article
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length="255")
*/
protected $title;
/**
* @ORM\Column(type="text")
*/
protected $body;
/**
* @ORM\Column(type="string", length="255")
*/
protected $author;
/**
* @ORM\Column(type="date")
*/
protected $date;
}
?>
Run Code Online (Sandbox Code Playgroud)
Eri*_*ron 164
太晚了,但我希望它可以帮助别人.
就在今天,我陷入了类似的情况(但在其他情况下,我试图从db创建实体).
我解决了它只是在parameters.ini文件中将de database_host从"localhost"修改为"127.0.0.1".
我认为我的Mysql实例只能通过TCP而不是套接字运行,因为当使用database_host ="localhost"时它会失败.
Sap*_*tte 19
尝试添加此行
unix_socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
在密码行之后的config.yml文件> doctrine> dbal中.
我按照这个小教程修复了它:http://andreys.info/blog/2007-11-07/configuring-terminal-to-work-with-mamp-mysql-on-leopard
[编辑]:我修改了正确的php.ini,现在一切正常.
现在我收到以下错误:
[Exception]
DateTime::__construct(): It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead
Run Code Online (Sandbox Code Playgroud)
这是php.ini中的date.timezone配置
date.timezone = "Europe/Paris"
Run Code Online (Sandbox Code Playgroud)
我会试着弄清楚自己,但如果你们中的任何人知道如何解决它,请毫不犹豫地对此发表评论.谢谢!
归档时间: |
|
查看次数: |
67969 次 |
最近记录: |