我的机器上运行了两个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');
答案 0 :(得分:2)
看起来MAMP在端口8889上运行,而另一个实例在默认端口(3306)上运行。确保运行netstat -lnp
以查看所有侦听进程正在使用的端口。 (警告:仔细检查netstat的选项,因为我是Linux用户,而不是Mac用户)。
答案 1 :(得分:1)
AJ对。
并在特定端口(3306除外)上连接MySQL服务器
mysql_connect("{$mysqlServerNameOrIp}:{$mysqlSpecificServerPort}", 'username', 'password');