【发布时间】:2020-08-26 20:14:58
【问题描述】:
我尝试在 laravel 项目中通过终端创建数据库,它告诉我数据库已创建,但是当我转到 phpMyAdmin 时找不到它。
mysql> create database house
-> ;
Query OK, 1 row affected (0.06 sec)
mysql> SHOW DATABASES;
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does
not exist
我使用的是 MAMP,但它不起作用,所以我使用了 Xamp,它也不起作用,当我运行时:
mysql> select user from mysql.user
-> ;
+------------------+
| user |
+------------------+
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| root |
| user |
+------------------+
5 rows in set (0.01 sec)
它给了我另一个在 MAMP phpMyAdmin 或 Xamp phpMyAdmin 中不存在的用户。
有没有办法成功连接到 MAMP 或 XAMP phpMyAdmin。
注意:
Laravel 项目的 IP 地址:127.0.0.1 与 MAMP 相同 但 Xamp 的 IP 地址是:192.168.64.2
这是我的 .env 文件:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=pizzahouse
DB_USERNAME=root
DB_PASSWORD=
【问题讨论】:
-
你在哪里使用phpMyAdmin?如果任何用户不正确存在,为什么不修复它?
-
问题是mysql在我无法通过Xampp或MAMP访问的其他地方创建这些用户和数据库,我只能通过终端访问它,正如你看到的用户:mysql.infoschema存在于users 表,但是当我尝试 SHOW DATABSES 它告诉我用户不存在
-
那么为什么不使用正确的用户创建这个数据库呢?我认为你不应该使用
mysql.infoschema做任何事情,除非你完全确定你想使用这个用户 -
我使用这个:'mysql -u root' 来使用 root 用户,但它仍然使用 'mysql.infoschema' 创建数据库。我不知道为什么它一直这样做
-
这是一个新安装还是一个已经存在一段时间的数据库?您是否有任何想要保留的数据?您通常不应该同时运行 XAMPP 和 WAMP,因为它们或多或少地服务于相同的通用目的,并且您面临它们竞争相同端口和(可能)MySQL 的数据目录的风险。你两个都需要吗?不知何故,您的 MySQL 用户权限已损坏(mysql.infoschema 是 MySQL 内部使用的系统用户)。为什么它存在但不能被MySQL内部使用不清楚,但错误信息显示该内部用户已损坏。
标签: php mysql laravel phpmyadmin xampp