php - 远程 MySQL 连接返回系统错误 : 111 or PDO error [2002]

标签 php mysql sockets pdo

最近,我将数据库移至另一台主机,设置后,我无法使用 PHP 从我的应用程序服务器或除服务器本身以外的任何地方连接到它。

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

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

我已经尝试或检查过的内容:

  • my.cnf 文件没有绑定(bind)地址,也没有跳过网络
  • 即使将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

提前谢谢

最佳答案

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

关于php - 远程 MySQL 连接返回系统错误 : 111 or PDO error [2002],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21291866/

相关文章:

php - 检查mysql字段是否包含mysql查询中的某个数字

java - 数据库和 Web 应用程序之间的日期不一致

c - 我的 uvlib 默认循环意外退出 - 为什么?

java - 空指针异常什么时候不应该出现?

mysql - 如何在 MySQL 中正确索引嵌套集?

python - 在一个脚本中更新列表并从另一个脚本访问更新的列表

c# - socket c Sharp 上的大文件

php - 在另一个表中添加行(列名 = 行 ID)时,如何同时更改表(添加列)?

php - PSR2 - 键和值之间的多行数组缩进

php - 使用输入逗号分隔字符串搜索逗号分隔字符串中的 ID