这很奇怪。我有 2 个 centos 盒子,prod(192.168.0.1)和 vm(192.168.0.30)。
Mysql 数据库位于 prod 上。
应用程序位于 vm 上。
从虚拟机,如果我输入
mysql -u user -p -h 192.168.0.1 -D mydb
它连接得很漂亮,所以端口是开放的并且正在监听产品
但在应用程序中,我愿意
$db=new mysqli('192.168.0.1','user','mypass','mydb');
我得到
Warning: mysqli::mysqli() [function.mysqli-mysqli]: (HY000/2003): Can't connect to
MySQL server on '192.168.0.1' (13) in /var/www/vhosts/myapp/httpdocs/dstest.php
on line 123
两个盒子都有完全相同的版本 php, mysql, mysql.so, mysqli.so
有什么建议吗?
附言如果我尝试 $db=new mysqli('127.0.0.1',... 但如果我尝试 $db=new mysqli('localhost',...
如果有帮助,这里是 prod 上的 my.cnf:
[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
max_connections = 500
max_user_connections = 150
key_buffer = 2048M
query_cache_limit=4M
query_cache_size=64M
table_cache=2048
tmp_table_size=64M
max_heap_table_size = 256M
# users buffers
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=1M
max_allowed_packet=16M
thread_cache=16
thread_concurrency=8
thread_cache_size=128
innodb_buffer_pool_size = 128M
myisam_sort_buffer_size = 128M
wait_timeout = 240
interactive_timeout = 240
max_allowed_packet=32M
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
最佳答案
检查 here 。它看起来与您的问题非常相似。
编辑:为后代添加了博客内容:
关于php - mysqli连接问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3407281/