Laravel Migration останавливается и ничего не делает
Просто выполните все шаги, перечисленные на сайте Laravel, чтобы установить и запустить MacOS HighSierra. В настоящее время у меня установлены Composer, Homebrew, valet, PHP 7.2.8, MySQL версии 8.0.11 и Laravel 5.6.28. Я могу создать новый проект, выполнив Laravel new blog
командовать и не иметь никаких проблем. Также, когда я захожу в свой браузер, я вижу текущий проект, который я только что создал или работаю над ним. Я могу запустить valet list
команда, и поэтому я знаю, что он работает / работает. Я также могу создать миграцию и показать ее в моем проекте, запустив php artisan make:migration test_test_test
,
мой PATH
также имеет ~/.composer/vendor/bin
в этом тоже.
мой файл.env выглядит так
APP_NAME=Laravel
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
Я бегу php artisan migrate -vvv
команда, и она работает и останавливается / зависает без вывода. Я должен ctl-c, чтобы выбраться из этого. попробовал -v /-vv
а также сделал то же самое.
Я создал базу данных с именем blog
и даже добавить таблицу test
вручную, чтобы убедиться, что база данных работает / работает.
Обновить
Ушли вперед и удалите MySQL и переустановите его. Мне удалось запустить команду php artisan migrate -v, и я получаю эту ошибку.
Теперь я получаю эту ошибку.
MacBook-Pro:anything computername$ php artisan migrate -v
PDOException : SQLSTATE[HY000] [2006] MySQL server has gone away
at /Users/computername/Sites/anything/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68
64| if (class_exists(PDOConnection::class) && ! $this->isPersistentConnection($options)) {
65| return new PDOConnection($dsn, $username, $password, $options);
66| }
67|
> 68| return new PDO($dsn, $username, $password, $options);
69| }
70|
71| /**
72| * Determine if the connection is persistent.
Трассировка исключения:
Создал маршрутизатор и просмотр, который соединяется с таблицей, которую я создаю, чтобы увидеть, смогу ли я получить доступ к переменным базы данных и распечатать их. По возвращении я получил эту ошибку.
Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109
6 ответов
У меня сама была эта проблема и получаю ошибку Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109
Вот как я это исправил:
Я вошел в MySQL как пользователь root, как так mysql –uroot –p
и ввел мой пароль
Вы можете получить список пользователей, которые находятся на сервере, набрав SELECT User, Host FROM mysql.user;
Убедитесь, что вы видите пользователя, которого пытаетесь подключиться к базе данных из файла.env. Вам нужно будет изменить текущего пользователя, чтобы использовать caching_sha2_password, который требуется в продолжительной версии mysql.
Вот эта команда.
ALTER USER `username`@`localhost` IDENTIFIED WITH caching_sha2_password BY 'password';
Пока вы вошли в систему как пользователь root, вам нужно запустить эту команду, чтобы позволить вашему пользователю выполнять необходимые задачи, которые разрешены для php artisan migrate
произойдет. Пример: CREATE, DROP, ALTER, DELETE
и тому подобное.
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
Если это не работает, вы также можете выбрать, какие команды вы хотите разрешить, вместо того, чтобы предоставить им полный доступ.
GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost';
Надеюсь, это поможет ~
Сервер ушел - ошибка MySql, проверьте эту ссылку
Убедитесь, что ваша служба mysql действительно запущена и после этого у вас есть правильные учетные данные .env
файл
Что касается "начальной ошибки" при миграции, нам нужно посмотреть, что находится в коде миграции.
Изменить: Поскольку миграции по умолчанию Laravel, то проблема, вероятно, заключается в связи между Laravel и базой данных.
Чтобы подтвердить это:
- Создать базу данных вручную;
- Создайте таблицу и поместите в нее строку;
- Создать маршрут, который возвращает
DB::statement('select * from tablejustcreated');
Сделайте запрос к этому маршруту, и если он зависнет, бум, это соединение и, скорее всего, .env
учетные данные файла (имя пользователя и пароль, хост, порт).
У меня была такая же проблема, я исправил ее с помощью привилегий сброса.
Большое спасибо @poohhbear и всем остальным за помощь в исправлении.
Что на самом деле работало для меня:
ALTER USER 'myusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';
... предположительно, потому что новый MySQL по умолчанию caching_sha2_password
и PHP не знал, как справиться с этим.
Это известная ошибка в PHP 7.2.8. Переходите к PHP 7.2.7 до тех пор, пока это не будет исправлено.
Я столкнулся с той же проблемой при обновлении с PHP 7.2.7 до PHP 7.2.8.
Попробуй это php artisan migrate --force
[ https://laravel.com/docs/5.6/migrations] эта документация по миграции, я думаю, может быть полезной
Удалить всю таблицу в блоге БД и запустить эту команду ремесленника
php artisan migrate
это построить таблицы в дб