Как подключиться к mysql с помощью laravel?
Это такой простой базовый вопрос, я не думаю, что много людей задают этот вопрос, но просто как мне подключиться к MySQL через локальный хост phpmyadmin с laravel (я искал, есть кое-что, но мне нужно спросить, потому что я нуб, и я хотел бы спросить, то, что я видел, я не совсем понимаю на 100% или я пытался, и это не помогло)?
Я работаю с backbone.js и я совершенно новичок в laravel, я установил laravel внутри C:\wamp\www\laravel-project
Я пытался
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 и wamp для своего локального хост-сервера, он, конечно, включает phpmyadmin и MySQL. Поэтому я уверен, что существует множество способов использования MySQL, но я не думайте, что я правильно настраиваю laravel и phpmyadmin.
Так что любое понимание было бы удивительным, легким.
РЕДАКТИРОВАТЬ:
На самом деле, обдумывая это, возможно, мне нужно создать базу данных с именем database
позвольте мне попробовать это. скоро вернусь. Хорошо, я отвечу на свой вопрос или кто-нибудь может, на всякий случай, если кто-то будет искать в этой теме... это КЛЮЧ, чтобы убедиться, что база данных, определенная в C:\wamp\www\laravel-project\app\config\database.php
, соответствует базе данных, которая существует внутри вашего phpmyadmin. Нет умник!
6 answers
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' => '',
),
Как только вы настроите это правильно, вы легко сможете получить доступ к своей базе данных!
Счастливого кодирования!
В 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.образец есть, попробуйте создать из него, если такой файл .env не найден.
Возможно, вы забыли сначала создать таблицу миграций:
php artisan migrate:install
Также есть очень полезные генераторы пакетов, которые делают для вас много работы https://github.com/JeffreyWay/Laravel-4-Generators#views
Также гораздо лучше не изменять сам файл app/config/database.php
... в противном случае измените файл .env
и поместите туда информацию о своей БД. (.env
файл доступен в Laravel 5, не уверен, был ли он там в предыдущих версиях...)
ПРИМЕЧАНИЕ: Конечно, вы уже должны были установить mysql
в качестве подключения к базе данных по умолчанию в файле app/config/database.php
.
Я потратил много времени, пытаясь разобраться в этом. Наконец, я попытался выключить свой сервер разработки и снова загрузить его. К сожалению, это сработало для меня.
Я пришел к выводу, что после редактирования файла .env
в Laravel 5 вам нужно выйти из сервера и снова запустить php artisan serve
.
Вероятно, вы просто забыли создать базу данных. Введите свой phpMyAdmin и сделайте это оттуда.
Редактировать: Определенно не соглашайтесь с ответом Маулика. Мало того, что он использует расширение mysql_ (что является общепризнанной плохой практикой), Laravel также заботится о ваших соединениях с помощью PDO.