远程MySQL连接返回系统错误:111或PDO错误[2002]

时间:2014-01-22 19:13:41

标签: php mysql sockets pdo

最近我将我的数据库移动到另一台主机,在设置之后,我无法使用PHP从我的应用程序服务器连接到它,也不能从服务器本身的任何地方连接到它。

PHP将返回以下内容: 错误!:SQLSTATE [HY000] [2002]没有这样的文件或目录

我也在这个网站上测试过:http://www.rainbowspuppiessunshine.com/tools/dbtest/index.php 返回的错误是: 在“读取初始通信数据包”时失去与MySQL服务器的连接,系统错误:111

我已尝试或检查的内容:

  • my.cnf文件没有绑定地址,也没有跳过网络
  • 即使将bind-address设置为服务器的IP地址
  • 也不会有效
  • MySQL上的用户拥有所有权限,包括接受来自任何主机的
  • MySQL服务器正在侦听端口3306
  • 没有设置阻止端口3306的防火墙
  • 套接字文件在那里

因此,基本上每次在互联网上提供的有关这些错误的建议都无法解决问题。

这是my.cnf文件:

[mysql]


port                           = 3306
socket                         = /var/run/mysqld/mysqld.sock

[mysqld]


user                           = mysql
default_storage_engine         = MyISAM
socket = /var/run/mysqld/mysqld.sock
pid_file                       = /var/run/mysqld/mysqld.pid

key_buffer_size                = 2G
myisam_recover                 = FORCE,BACKUP


max_allowed_packet = 16M
max_connect_errors             = 1000000


datadir = /database/database/mysql


log_bin                        = /var/lib/mysql/mysql-bin
expire_logs_days               = 14
sync_binlog                    = 1

tmpdir = /database/database/mysqltmp

tmp_table_size                 = 2G

max_heap_table_size            = 2G

query_cache_type               = 1
query_cache_size = 64M
max_connections = 1500
thread_cache_size              = 50
open_files_limit               = 65535
table_definition_cache         = 1024
table_open_cache               = 5000


max_length_for_sort_data       = 4096

innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 2
innodb_log_file_size           = 32M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_buffer_pool_size        = 8M


log_error                      = /var/lib/mysql/mysql-error.log
log_queries_not_using_indexes  = 1

提前谢谢

1 个答案:

答案 0 :(得分:0)

您的PHP配置错误,正在寻找错误位置的mysql套接字文件。请参阅php.ini中的mysql.default_socket,并确保它与my.cnf文件中指定的路径完全匹配。