Search code examples
phpmysqllaravellocalhost

How to connect to mysql with laravel?


This is such a simple basic question I don't think many people are asking this but simply how do I connect to MySQL through localhost phpmyadmin with Laravel (I've searched, and there is some stuff, but I need to ask because I am a noob and I'd like to ask, the stuff I saw I don't quite get 100% or I tried and it didn't help)?

I am working with backbone.js and am brand new to laravel, I installed laravel inside C:\wamp\www\laravel-project

I tried

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

And

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

I expect to have to define the database information, I checked C:\wamp\www\laravel-project\app\config\database.php and it looks correct, mySQL is set on the defaults root being the user name, and '' empty being the password.

The error in the command line I get after running php artisan migrate is

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

I am using Windows 8, and Wamp for my localhost server, it of course includes phpmyadmin and mySql. So I am sure there are tons of ways to use MySQL but I don't think I am setting up laravel and phpmyadmin properly.

So any insight would be amazing, easy points.

EDIT:

Thinking this through maybe I need to create a database named database Let me try that. be back soon. Okay, I'll answer my question or someone can, just in case someone searches this topic... it is KEY to make sure the database defined in C:\wamp\www\laravel-project\app\config\database.php matches a database that exists inside your phpmyadmin. No brainer!


Solution

  • Laravel makes it very easy to manage your database connections through app/config/database.php.

    As you noted, it is looking for a database called 'database'. The reason being that this is the default name in the database configuration file.

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

    Change this to the name of the database that you would like to connect to like this:

    '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'    => '',
    ),
    

    Once you have this configured correctly you will easily be able to access your database!

    Happy Coding!