首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在终端PC上连接其他MySQL?

问如何在终端PC上连接其他MySQL?
EN

Stack Overflow用户
提问于 2014-11-08 22:22:58
回答 1查看 129关注 0票数 1

我的mac有一些问题。其中一个问题是安装了两个MySQL实例。第一个mysql在localhost上执行,第二个在MAMP上执行。正因为如此,当我尝试使用php连接mysql时:

..。它连接到MAMP实例。

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

我该怎么做才能让它工作呢?

EN

回答 1

Stack Overflow用户

发布于 2014-11-08 22:44:56

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

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

代码语言:javascript
复制
mysql -uUSER -pPASSWORD -P3307

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

第一个选项是直接指定socket。这可以直接使用-S参数完成,如下所示:

代码语言:javascript
复制
mysql -uUSER -pPASSWORD -S/path/to/correct/socket

其中,您可以在配置文件中看到所需实例的套接字路径。因为你有Mac,也许你甚至需要创建你的文件,关于这方面的更多细节请参阅this question。

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

代码语言:javascript
复制
mysql -uUSER -pPASSWORD -h127.0.0.1 -P3307

这是针对3307端口的。但是,这可能会导致错误,如:

“在‘读取初始通信数据包时失去与MySQL服务器的连接,系统错误: 0”

那么,最有可能的是,这意味着错误地配置了实例。然后,如果my.cnf文件中没有bind-address=127.0.0.1,则只需将其添加到其中。同样,有关该问题的更多详细信息可以在this question中找到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26818066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档