如何通过终端访问phpMyAdmin

如何通过终端访问phpMyAdmin,php,mysql,laravel,phpmyadmin,xampp,Php,Mysql,Laravel,Phpmyadmin,Xampp,我试图通过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') d

我试图通过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=

不知何故,您的MySQL用户权限被破坏(MySQL.infoschema是MySQL内部使用的系统用户)。为什么它存在但不能被MySQL内部使用还不清楚,但是错误消息显示该内部用户已损坏。从中恢复的最简单方法是重新安装MySQL(通过XAMPP或WAMP或您最终选择的任何软件包)。您需要确保删除整个MySQL数据目录(卸载程序应该自动删除或询问您,我不记得是哪个)。请注意,这将销毁数据库中的任何现有数据,因此,如果您希望保留现有数据,则不应继续

当您重新安装时,MySQL将正确配置这些所需的系统用户,您应该可以备份并运行

您通常不应该同时运行XAMPP和WAMP,因为它们或多或少都服务于相同的通用目的,并且您面临着它们争夺相同端口和(可能)MySQL数据目录的风险。这可能就是这里发生的事情,尽管没有足够的信息可以知道。MySQL使用“数据目录”(datadir)在磁盘上保存所有数据库文件。您的两台服务器(XAMPP和WAMP)最终都使用了相同的路径,这可能会导致数据库、表和用户的损坏,这是合理的(尽管可能不太可能)。除此之外,一些反常的服务器崩溃、磁盘损坏或错误的SQL命令也可能导致问题


可以使用命令恢复现有系统用户,例如
mysqld--initialize--user=mysql
(,请注意,您需要在下次登录时重置根密码),但由于这种不确定性,我认为从头开始重新安装是一个全面的更安全的选择-再次指出,这将破坏数据库中已经存在的任何数据。

在这种情况下,您在哪里使用phpMyAdmin?如果有任何用户不存在,为什么不修复呢?问题是mysql在其他地方创建了这些用户和数据库,而我无法通过Xampp或MAMP访问这些用户和数据库,我只能通过终端访问它,正如您看到的用户:mysql.infoschema存在于users表中,但当我尝试显示数据库时,它告诉我该用户不存在,那么为什么不使用适当的用户创建该数据库呢?我不认为你应该使用
mysql.infoschema
来做任何事情,除非你完全确定你想使用这个用户。我用这个:“mysql-u root”来使用root用户,但它仍然使用“mysql.infoschema”创建数据库。。我不知道它为什么一直这样做这是一个新的安装还是一个已经存在了一段时间的数据库?您是否有任何想要保存的数据?您通常不应该同时运行XAMPP和WAMP,因为它们或多或少都服务于相同的通用目的,并且您面临着它们争夺相同端口和(可能)MySQL数据目录的风险。两者都需要吗?不知何故,您的MySQL用户权限被破坏(MySQL.infoschema是MySQL内部使用的系统用户)。为什么它存在但不能被MySQL内部使用还不清楚,但是错误消息显示该内部用户已损坏。