如何连接 Mysql 和 phpMyAdmin

Posted

技术标签:

【中文标题】如何连接 Mysql 和 phpMyAdmin【英文标题】:How to connect Mysql with phpMyAdmin 【发布时间】:2021-12-07 00:15:29 【问题描述】:

我正在使用带有 xampp 的 Linux,我遇到了 mysql 的问题。

当我使用此命令sudo /opt/lampp/lampp start 时,它会正确启动一切,而当我在 xampp 的 MySQL 已经运行时使用 sudo service mysql start 时,该命令会给我这个错误:

Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.

反之亦然,如果我在 MySQL 服务已经运行时使用此命令 sudo opt/lampp/lampp start,我会在 phpMyAdmin 页面上收到此错误:

MySQL said:

Cannot connect: invalid settings.

mysqli::real_connect(): (HY000/2002): No such file or directory

Connection for controluser as defined in your configuration failed.

phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.

除此之外:当我尝试命令 sudo mysqlshow databases; 时,我得到的数据库与 PHPMyAdmin 上的不同,所以这些是来自 MySQL 命令的数据库:

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| Products           |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

MySQL> 

但这些是我在 PHPMyAdmin 中的数据库:

艾哈迈德 information_schema mysql performance_schema phpmyadmin 产品 测试

它们完全不同,当我在其中一个上创建数据库时,它不会出现或不存在于另一个上,它们彼此无关。

这对我来说似乎很困惑,我不知道该怎么办,我已经尝试了所有方法,但我坚持了 4 天,不幸的是,我不是那种只会继续下去的人不了解问题出在哪里,尤其是在我学习的时候,所以如果有人对此有解决方案,那将不胜感激。

注意:我已经搜索了很多解决方案,在 youtube 上观看了几个小时,阅读并遵循了很多不起作用的解决方案,我还删除了 apache、Mysql 和 xampp完全从我的系统中重新安装并重新安装它,尽管它对其他人有用,但对我没有任何用处,所以我不是在这里浪费任何人的时间。

【问题讨论】:

请don't upload text as image。编辑您的问题以包含文本形式的所有信息 - 考虑使用编辑器的格式选项。另请参阅 How to Ask 和 help center。这看起来与我无关的编程 @OlafKock,非常感谢您通知我这一点,我已经用文本形式编辑了问题,我只是认为它会提供更多信息并且更容易通过图像阅读,所以再次感谢给我这个建议,我真的很感激。 【参考方案1】:

关于缺少数据库的问题:您确定您运行 MySQL 吗?你不是有两个并排运行的数据库引擎吗?我不确定是否有可能(例如)MariaDB 和 MySQL 并排运行,但如果是这样,这正是我希望发生的那种问题。毕竟,它们可能使用 80% 的相同路径和文件名。

我个人在手动安装 MySQL(或 MariaDB)、Apache 和 PHP 方面有更好的体验。然后改为使用 Docker 管理 PhpMyAdmin。然后,您所要做的就是更改 PhpMyAdmin 的配置文件,它应该会在几分钟内顺利运行。只是一个建议,我当然不知道你的设置和要求:-)

【讨论】:

是的,这正是我的想法,我在终端中使用的 MySQL 命令使用另一个数据库引擎,而 Xampp 有一个不同的数据库,也许是 MariaDB,这会导致一些冲突,这是正确的结论,所以这是尝试解决这个冲突的一个很好的起点,非常感谢你的建议,它突出了我应该关注的重点:) 很高兴我能帮上忙 :-)【参考方案2】:

这是我弄清楚解决方案后对我的问题的答案

说明:

确实它们是不同的Mysql数据库,从phpMyAdmin使用起来也很简单,但是mysql命令不会和xampp的Mysql链接,因为它们是不同的数据库服务器。

从终端使用xampp的Mysql:

使用此命令停止不属于 xampp 堆栈的 Mysql 服务:

sudo service mysql stop

启动 xampp:

sudo /opt/lampp/lampp start

现在您可以打开 phpMyAdmin 并从那里与您的 SQL 表进行交互。

要从终端打开 xampp 的 Mysql (MariaDB),请使用以下命令:

sudo /opt/lampp/bin/mysql -u root -p

如果您有 phpMyAdmin root 的密码,请在询问时输入密码,如果没有,请按 Enter。

这是你应该得到的:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.4.21-MariaDB Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

进入 Mysql 控制台后,使用以下命令:

show databases;

我们开始吧,您拥有与 phpMyAdmin 相同的数据库。

这是xampps的Mysql,但另一个不是,不幸的是,这就是Mysql命令和phpMyAdmin的Mysql之间发生冲突的原因,这就是它们彼此不同的原因。

提示: 你可以给这个命令起一个别名sudo /opt/lampp/bin/mysql -u root -p 把它变成mysql,只是为了使用简单。

【讨论】:

您可能应该删除其中一台服务器以避免将来发生冲突。除此之外,phpMyAdmin 和命令行客户端都可以连接到两者,您只需要确定如何连接(套接字的路径或端口;两个服务不能同时在同一个端口上运行所以其中一个可能在 3306 上,而其中一个可能不在)。 MySQL 的 status; 命令和 phpMyAdmin 的首页/主页可以为您提供该信息。

以上是关于如何连接 Mysql 和 phpMyAdmin的主要内容,如果未能解决你的问题,请参考以下文章

如何修改连接mysql的用户名和密码

mysql中,如何向测试人员介绍连接查询和子查询的优劣势?

如何连接 Java 容器和 MySQL 容器?

请教PHP里使用命名管道连接本机mysql如何写连接串? - 技术问答

如何修改连接mysql的用户名和密码

如何修改连接mysql的用户名和密码