Laravel Valet MySQL 错误: 指定的用户定义者不存在。

3
在全新安装的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,无法解决这个问题 - 这是怎么回事?谢谢

3个回答

2

0

如果您正在使用Mac,在终端中输入:

composer global require "laravel/installer"(enter)
nano .bash_profile(enter)

按下 i 按钮,这样你就可以开始编写了。

export PATH="$PATH:$HOME/.composer/vender/bin"

按下alt+commandenter键 按下x按钮退出

接着,打开XAMPP,点击“general”,点击“open terminal”,点击“terminal”并输入:

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

我希望它能够正常工作


-1

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

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

不要忘记在应用程序的根目录中找到的.env文件中更新DB_USERNAMEDB_PASSWORD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接