gpt4 book ai didi

php - 终端PC如何连接其他MySQL?

转载 作者:行者123 更新时间:2023-11-29 00:07:34 25 4
gpt4 key购买 nike

我的 mac 有一些问题。问题之一是安装了两个 MySQL 实例。第一个 mysql 在本地主机上执行,第二个在 MAMP 上执行。因此,当我尝试使用 php 连接 mysql 时:

...它连接到 MAMP 实例。

当我尝试使用终端连接到 MySQL 时,它连接到本地主机实例。所以我不能做我想做的事...当我创建一个名为“dbname”的数据库并尝试从我的 html 连接到它时,它会生成一个错误:mysqli_connect(): (42000/1049): Unknown database 'dbname '

我应该怎么做才能让它发挥作用?

最佳答案

当您连接到本地主机时,默认情况下它尝试不使用 TCP/IP 来提供连接,而是使用 UNIX 套接字 - 如果您的连接没有严格说明,则必须使用 TCP/IP。这意味着,例如,如果您在本地主机的不同端口上有两个 mysqld 实例,那么仅仅指定端口是不够的,因为那时 mysql 将尝试连接一个 wring 套接字。

示例:您在 localhos:3306 上有一个 mysql 实例,在 localhost:3307 上有第二个实例。然后,命令:

mysql -uUSER -pPASSWORD -P3307

会将您连接到错误 3306 实例,因为它将使用默认套接字而不是使用端口。它可能看起来像是来自 mysql 客户端的疏忽,但在这种情况下套接字具有优先级(即 localhost)。要解决这个问题,您有两个选择:

第一个选项是直接指定套接字。这可以直接使用 -S 参数完成,例如:

mysql -uUSER -pPASSWORD -S/path/to/correct/socket

您可能会在配置文件中看到所需实例的套接字路径。由于您有 Mac,您甚至可能需要创建文件,请参阅 this question了解更多详情。

第二个选项是——强制 mysql 客户端使用 TCP/IP 连接。为此,您可以在连接选项中明确指定主机 IP 地址:

mysql -uUSER -pPASSWORD -h127.0.0.1 -P3307

那将用于 3307 端口。但是,这可能会导致错误,例如:

"Lost connection to MySQL server at 'reading initial communication packet, system error: 0"

那么,这很可能意味着实例配置错误。然后,您可以将 bind-address=127.0.0.1 添加到您的 my.cnf 文件(如果不存在)。同样,有关该问题的更多详细信息可以在 this question 中找到。 .

关于php - 终端PC如何连接其他MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26818066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com