首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel代客MySQL错误:指定为定义者的用户不存在

问Laravel代客MySQL错误:指定为定义者的用户不存在
EN

Stack Overflow用户
提问于 2018-07-27 07:00:35
回答 3查看 1.1K关注 0票数 3

在全新的Laravel安装上,运行Valet,应用程序运行良好。

尝试使用MySQL设置数据库时出现问题。我可以创建一个数据库,告诉MySQL使用它,但不能对它做任何事情:

代码语言:javascript
复制
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,我会得到以下结果:

代码语言:javascript
复制
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的新手,不知道如何解决这个问题--这是怎么回事?谢谢

EN

回答 3

Stack Overflow用户

发布于 2018-07-27 07:05:44

解决了第一个问题:

运行mysql_upgrade -u root

点击此处:Mysql Error:The user specified as a definer ('mysql.infoschema'@'localhost') does not exist' when trying to dump tablespaces

但是运行php artisan migrate仍然会给出与上面的…相同的错误输出

票数 2
EN

Stack Overflow用户

发布于 2020-08-23 04:57:37

如果您使用的是mac,请在终端中写入:

代码语言:javascript
复制
composer global require "laravel/installer"(enter)
nano .bash_profile(enter)

按下i按钮,这样你就可以写

代码语言:javascript
复制
export PATH="$PATH:$HOME/.composer/vender/bin"

按alt+command并按enter按x按钮退出

然后,打开您的XAMPP,单击常规,单击打开终端,单击终端并键入:

代码语言:javascript
复制
pwd (enter)
cd space .. (enter)
cd opt/ 
cd lampp (even if you are using xampp)
cd htdocs
cd ur laravel folder name
php artisan migrate

https://www.youtube.com/watch?v=BUFyKk-GrvI&t=18s

我希望它能起作用。

票数 0
EN

Stack Overflow用户

发布于 2018-07-31 03:15:32

我还遇到了第二个问题,我通过创建和使用一个新的MySQL用户而不是使用root解决了这个问题。

代码语言:javascript
复制
    mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
    mysql> GRANT ALL PRIVILEGES ON anything.* TO 'newuser'@'localhost';

不要忘记更新应用程序的.env文件中的DB_USERNAME和DB_PASSWORD,您可以在根目录中找到该文件。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51548580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档