如何通过终端访问 phpMyAdmin

Posted

技术标签:

【中文标题】如何通过终端访问 phpMyAdmin【英文标题】:How can I access phpMyAdmin through terminal 【发布时间】: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内部使用不清楚,但错误信息显示该内部用户已损坏。 【参考方案1】:

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

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

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

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

【讨论】:

以上是关于如何通过终端访问 phpMyAdmin的主要内容,如果未能解决你的问题,请参考以下文章

从终端访问 AWS EC2 服务器时如何查看 phpmyadmin GUI?

无法通过终端访问 OS X 中的 adb,“找不到命令”

如何让内网通过外网IP访问我的WEB服务器(外网IP)呢?

如何使用 xterm.js 创建基于 Web 的终端以通过 ssh 连接到本地网络上的系统

我无法通过终端访问 mac os x 上的 mysql

gotty 一个灵活强大的通过web 访问终端的工具