如何用laravel连接到mysql?

时间:2013-11-26 04:52:46

标签: php mysql laravel localhost

这是一个如此简单的基本问题我不认为有很多人问这个问题,但我只是通过localhost phpmyadmin用laravel连接到mySql(我已搜索过,有一些东西,但是我需要问一下,因为我是一个菜鸟,而且我想问一下,我看到的东西我不是100%,或者我尝试了,但它没有帮助)?

我正在使用backbone.js并且是laravel的新用户,我在C:\wamp\www\laravel-project内安装了laravel

我试过

c:\wamp\www\laravel-project> php artisan migrate:make create_tasks_table --table tasks --create

c:\wamp\www\laravel-project> php artisan migrate

我希望必须定义数据库信息,我检查C:\wamp\www\laravel-project\app\config\database.php它看起来是正确的,mySQL设置为默认值root是用户名,''空是密码。

运行php artisan migrate后我得到的命令行错误是

[PDOException]
SQLSTATE[HY000] [1049] Unknown database 'database'    

我正在使用Windows 8,并且使用我的localhost服务器,它当然包括phpmyadmin和mySql。所以我确信有很多方法可以使用mySql,但我不认为我正在设置laravel和phpmyadmin。

所以任何见解都会是惊人的,简单的点。

编辑:

实际上想到这一点,我可能需要创建一个名为database的数据库让我尝试一下。马上回来。好的,我会回答我的问题,或者有人可以,以防有人搜索此主题... KEY ,以确保C:\wamp\www\laravel-project\app\config\database.php中定义的数据库与存在的数据库匹配在你的phpmyadmin里面。没问题!

6 个答案:

答案 0 :(得分:70)

在Laravel 5中,有一个.env文件,

看起来像是

APP_ENV=local
APP_DEBUG=true
APP_KEY=YOUR_API_KEY

DB_HOST=YOUR_HOST
DB_DATABASE=YOUR_DATABASE
DB_USERNAME=YOUR_USERNAME
DB_PASSWORD=YOUR_PASSWORD

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null

编辑.env有.env.sample就在那里,如果没有找到这样的.env文件,请尝试从中创建。

答案 1 :(得分:34)

Laravel通过app/config/database.php轻松管理您的数据库连接。

正如您所指出的,它正在寻找一个名为“数据库”的数据库。原因是这是数据库配置文件中的默认名称。

'mysql' => array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'database', <------ Default name for database
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

将此更改为您要连接的数据库的名称,如下所示:

'mysql' => array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'my_awesome_data', <------ change name for database
    'username'  => 'root',            <------ remember credentials
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

正确配置后,您将可以轻松访问数据库!

快乐的编码!

答案 2 :(得分:6)

也许您忘了先创建表格迁移:

php artisan migrate:install

还有一个非常有用的包发生器,它为你做了很多工作https://github.com/JeffreyWay/Laravel-4-Generators#views

答案 3 :(得分:6)

不修改app/config/database.php文件本身也要好得多......否则修改.env文件并将数据库信息放在那里。 (.env文件在Laravel 5中可用,不确定它是否在以前的版本中存在...)

注意:当然,您应该已将mysql设置为app/config/database.php文件中的默认数据库连接。

答案 4 :(得分:1)

我花了很多时间试图弄清楚这个。最后,我尝试关闭我的开发服务器并再次启动它。令人沮丧的是,这对我有用。 我得出结论,在Laravel 5中编辑.env文件后,您必须退出服务器,然后再次运行php artisan serve

答案 5 :(得分:0)

您可能只是忘了创建数据库。输入您的PHPMyAdmin并从那里开始。

编辑:绝对不要与Maulik的答案一致。不仅使用mysql_ extenstion(这是常见的不良做法),Laravel还会使用PDO来处理你的连接。