如何在OS X上连接到正确的MySQL数据库? (运行两个mysqld实例)

时间:2011-04-17 18:07:02

标签: php mysql macos mamp

我的机器上运行了两个MySQL服务器实例。一个是与MAMP捆绑在一起的mysql包,另一个是我下载的64位安装,所以我可以使用我的python库。

这完全是为了发展。

两者都在运行:

:~ zachary$ ps -awwx | grep mysql
 1944 ??         0:00.02 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/MyMachine-2.local.pid
 2016 ??         0:10.17 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/MyMachine-2.local.err --pid-file=/usr/local/mysql/data/MyMachine-2.local.pid
 6824 ??         0:00.02 /bin/sh /Applications/MAMP/Library/bin/mysqld_safe --port=8889 --socket=/Applications/MAMP/tmp/mysql/mysql.sock --lower_case_table_names=0 --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --log-error=/Applications/MAMP/logs/mysql_error_log
 6894 ??         0:00.36 /Applications/MAMP/Library/libexec/mysqld --basedir=/Applications/MAMP/Library --datadir=/Applications/MAMP/db/mysql --user=mysql --lower_case_table_names=0 --log-error=/Applications/MAMP/logs/mysql_error_log.err --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --socket=/Applications/MAMP/tmp/mysql/mysql.sock --port=8889

然而我的PHP似乎只想连接到MAMP的MySQL服务器。我相信mysql_connect()允许你指定一个端口,但我不知道如何处理这个。

感谢。

编辑:当你在MAMP安装上使用mysql_connect()时,似乎MAMP偏爱自己的MySQL服务器 - 不知道为什么 - 任何人都可以解释一下吗?但我能够使用以下语法连接到我手动安装的MySQL服务器:

mysql_connect(':/tmp/mysql.sock', 'username', 'pw');

2 个答案:

答案 0 :(得分:2)

看起来MAMP在端口8889上运行,而另一个实例在默认端口(3306)上运行。确保运行netstat -lnp以查看所有侦听进程正在使用的端口。 (警告:仔细检查netstat的选项,因为我是Linux用户,而不是Mac用户)。

答案 1 :(得分:1)

AJ对。
并在特定端口(3306除外)上连接MySQL服务器

mysql_connect("{$mysqlServerNameOrIp}:{$mysqlSpecificServerPort}", 'username', 'password');