Ошибка MySQL Laravel Valet: пользователь, указанный как определитель, не существует

На новой установке Laravel, работает Valet, приложение работает нормально.

Проблема пытается настроить базу данных, используя MySQL. Я могу создать базу данных, сказать MySQL, чтобы использовать ее, но ничего не могу с ней сделать:

mysql> create database foobar;
Query OK, 1 row affected (0.09 sec)

mysql> use foobar;
Database changed

mysql> show tables;
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

Если я попробую php artisan migrate я получаю следующее:

PDOException  : SQLSTATE[HY000] [2006] MySQL server has gone away

at /Users/isaacfennell/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 trace:

1   PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=anything", "root", "", [])
/Users/isaacfennell/Sites/anything/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68

2   Illuminate\Database\Connectors\Connector::createPdoConnection("mysql:host=127.0.0.1;port=3306;dbname=anything", "root", "", [])
/Users/isaacfennell/Sites/anything/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:98

Please use the argument -v to see more details.

Я новичок в Laravel и MySQL и не могу понять, как решить эту проблему — что здесь происходит? Спасибо

2

Решение

Решена первая проблема:

Бежать mysql_upgrade -u root

Нашел здесь: Mysql Ошибка: пользователь, указанный в качестве определителя (‘mysql.infoschema’@’localhost’) не существует «при попытке выгрузить табличное пространство

НО работает php artisan migrate по-прежнему выдает ту же ошибку, что и выше …

1

Другие решения

Я также столкнулся со второй проблемой и решил ее путем создания и использования нового пользователя MySQL вместо использования root,

    mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
mysql> GRANT ALL PRIVILEGES ON anything.* TO 'newuser'@'localhost';

Не забудьте обновить DB_USERNAMEа также DB_PASSWORD в файле .env вашего приложения, которое вы можете найти в корневом каталоге.

-1

По вопросам рекламы [email protected]