mysql.default socket_在PHP中设置默认MySQL套接字,pdo_mysql.default_socket PHP 5.3

在PHP中设置默认MySQL套接字时遇到问题,即使修改了php.ini中的mysql.default_socket变量,PDO连接仍出现错误。问题可能在于PDO驱动未使用php.ini中的配置。文章探讨了如何正确配置PDO连接MySQL套接字,并寻求解决方案。
摘要由CSDN通过智能技术生成

我在设置

MySQL的默认PDO套接字位置时遇到问题,而没有通过将PDO类初始化为变量来实现.我试过改变mysql.default_socket变量.但没有喜悦.目前唯一有效的方法是通过类DSN实例化.

php.ini内容:

[PHP]

engine = On

zend.ze1_compatibility_mode = Off

short_open_tag = On

asp_tags = Off

precision = 14

y2k_compliance = On

output_buffering = 4096

zlib.output_compression = Off

implicit_flush = Off

unserialize_callback_func=

serialize_precision = 100

allow_call_time_pass_reference = Off

safe_mode = Off

safe_mode_gid = Off

safe_mode_include_dir =

safe_mode_exec_dir =

safe_mode_allowed_env_vars = PHP_

safe_mode_protected_env_vars = LD_LIBRARY_PATH

disable_functions =

disable_classes =

expose_php = Off

max_execution_time = 300

max_input_time = 60

memory_limit = 128M

error_reporting = E_ALL & ~E_NOTICE

display_errors = Off

display_startup_errors = Off

log_errors = On

log_errors_max_len = 1024

ignore_repeated_errors = Off

ignore_repeated_source = Off

report_memleaks = On

track_errors = Off

variables_order = "EGPCS"

register_globals = Off

register_long_arrays = Off

register_argc_argv = Off

auto_globals_jit = On

post_max_size = 8M

magic_quotes_gpc = Off

magic_quotes_runtime = Off

magic_quotes_sybase = Off

auto_prepend_file =

auto_append_file =

default_mimetype = "text/html"

doc_root =

user_dir =

extension_dir = "/usr/lib64/php/modules"

enable_dl = On

file_uploads = On

upload_max_filesize = 500M

allow_url_fopen = On

default_socket_timeout = 60

[Syslog]

define_syslog_variables = Off

sendmail_path = /usr/sbin/sendmail -t -i

[SQL]

sql.safe_mode = Off

[ODBC]

odbc.allow_persistent = On

odbc.check_persistent = On

odbc.max_persistent = -1

odbc.max_links = -1

odbc.defaultlrl = 4096

odbc.defaultbinmode = 1

[MySQL]

mysql.allow_persistent = On

mysql.max_persistent = -1

mysql.max_links = -1

mysql.default_port = 3306

mysql.default_socket = /home/mysql/mysql.sock

mysql.default_host = 127.0.0.1

mysql.default_user = conner

mysql.default_password = danica4eva

mysql.connect_timeout = 60

mysql.trace_mode = Off

[MySQLi]

mysqli.max_links = -1

mysqli.default_port = 3306

mysqli.default_socket = /home/mysql/mysql.sock

mysqli.default_host = 127.0.0.1

mysqli.default_user = conner

mysqli.default_pw = danica4eva

mysqli.reconnect = Off

[mSQL]

msql.allow_persistent = On

msql.max_persistent = -1

msql.max_links = -1

[PostgresSQL]

pgsql.allow_persistent = On

pgsql.auto_reset_persistent = Off

pgsql.max_persistent = -1

pgsql.max_links = -1

pgsql.ignore_notice = 0

pgsql.log_notice = 0

[Sybase]

sybase.allow_persistent = On

sybase.max_persistent = -1

sybase.max_links = -1

sybase.min_error_severity = 10

sybase.min_message_severity = 10

sybase.compatability_mode = Off

[Sybase-CT]

sybct.allow_persistent = On

sybct.max_persistent = -1

sybct.max_links = -1

sybct.min_server_severity = 10

sybct.min_client_severity = 10

[bcmath]

bcmath.scale = 0

[Informix]

ifx.default_host =

ifx.default_user =

ifx.default_password =

ifx.allow_persistent = On

ifx.max_persistent = -1

ifx.max_links = -1

ifx.textasvarchar = 0

ifx.byteasvarchar = 0

ifx.charasvarchar = 0

ifx.blobinfile = 0.

ifx.nullformat = 0

[Session]

session.save_handler = files

session.save_path = "/var/lib/php/session"

session.use_cookies = 1

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain =

session.serialize_handler = php

session.gc_probability = 1

session.gc_divisor = 1000

session.gc_maxlifetime = 1440

session.bug_compat_42 = 0

session.bug_compat_warn = 1

session.referer_check =

session.entropy_length = 0

session.entropy_file =

session.cache_limiter = nocache

session.cache_expire = 180

session.use_trans_sid = 0

session.hash_function = 1

session.hash_bits_per_character = 5

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

[MSSQL]

mssql.allow_persistent = On

mssql.max_persistent = -1

mssql.max_links = -1

mssql.min_error_severity = 10

mssql.min_message_severity = 10

mssql.compatability_mode = Off

mssql.secure_connection = Off

[Verisign Payflow Pro]

pfpro.defaulthost = "test-payflow.verisign.com"

pfpro.defaultport = 443

pfpro.defaulttimeout = 30

[Tidy]

tidy.clean_output = Off

[soap]

soap.wsdl_cache_enabled=1

soap.wsdl_cache_dir="/tmp"

soap.wsdl_cache_ttl=86400

zend_extension = /etc/ioncube/ioncube_loader_lin_5.3.so

如您所见,我已经更改了php.ini文件中的默认套接字设置,但是当我尝试连接到MySQL时,我仍然在PDO中收到套接字错误.它让我相信PDO驱动程序没有使用php.ini中的设置.我确信有一些配置PDO的方法,但我的php.ini中没有任何内容.是否应该在php.ini中设置PDO,或者它们是否包含在其他地方?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `pdo_mysql.default_socket` 是 PHP 的配置选项之一,它用于指定 MySQL 数据库服务器的 Unix 套接字文件路径。当使用 PDO 连接 MySQL 数据库时,如果没有手动指定连接参数的 Unix 套接字路径,那么 PDO 将会使用 `pdo_mysql.default_socket` 指定的路径作为默认值。 如果你的 MySQL 数据库服务器安装在默认的位置,并且 PHPMySQL 安装在同一台服务器上,你可以将 `pdo_mysql.default_socket` 设置为 `/var/run/mysqld/mysqld.sock`,这是许多 Linux 系统上 MySQL 默认的 Unix 套接字路径。如果你的 MySQL 数据库服务器安装在不同的位置,你需要根据实际情况修改 `pdo_mysql.default_socket` 的值。 你可以通过修改 `php.ini` 文件设置 `pdo_mysql.default_socket`。在 `php.ini` 文件搜索 `pdo_mysql.default_socket`,并将其设置为你需要的 Unix 套接字路径。如果你不知道 Unix 套接字文件的路径,可以通过运行 `mysql_config --socket` 命令来获取。 ### 回答2: php.ini是PHP的配置文件之一,它用于配置PHP的运行参数和选项。而pdo_mysql.default_socketphp.ini的一个设置,用于指定PDO使用的MySQL套接字文件的路径。 MySQL套接字文件MySQL数据库连接的一种方式,通过套接字文件PHP可以与MySQL进行通信和交互。这个设置允许我们指定套接字文件的路径,以便PHP可以正确地连接到MySQL数据库。 在php.ini文件,当pdo_mysql.default_socket没有设置时,PHP会尝试使用默认套接字文件路径。这个默认的路径通常是由MySQL服务器的安装位置确定的。然而,如果MySQL服务器的安装位置不同,或者我们希望使用不同的套接字文件,就需要通过修改php.ini文件来指定pdo_mysql.default_socket的值。 例如,如果我们的MySQL服务器安装在/usr/local/mysql目录下,而默认套接字文件路径是/tmp/mysql.sock,我们可以通过修改php.inipdo_mysql.default_socket参数来指定新的套接字文件路径,如下所示: pdo_mysql.default_socket = /usr/local/mysql/mysql.sock 这样一来,PHP在连接MySQL数据库时就会使用我们指定的套接字文件路径。 总之,pdo_mysql.default_socketphp.ini用于指定PDO使用的MySQL套接字文件路径的设置。根据实际需要,我们可以通过修改php.ini文件设置该值,以确保PHP能够正确地连接到MySQL数据库。 ### 回答3: php.ini是PHP的配置文件,用于配置PHP运行环境的各种参数和选项。其pdo_mysql.default_socket是一个用于指定PDO连接MySQL数据库所使用的Unix套接字文件路径的选项。 由于PHP在连接MySQL数据库时,默认使用的是MySQL的TCP/IP协议进行通信,所以pdo_mysql.default_socket选项默认为空。这种情况下,PHP通过TCP/IP连接MySQL数据库,在连接字符串指定MySQL服务器的IP地址和端口号。 如果想要使用Unix套接字文件进行连接,可以通过修改php.ini文件pdo_mysql.default_socket的值来实现。例如,可以将pdo_mysql.default_socket的值设置为"/tmp/mysql.sock",表示连接MySQL数据库的时候使用套接字文件"/tmp/mysql.sock"。 使用Unix套接字文件连接MySQL数据库相对于TCP/IP连接有一些优势,如更快的速度、更高的安全性和更少的资源占用。因此,在某些情况下,使用Unix套接字文件连接MySQL数据库可能会更加适用。 需要注意的是,修改php.ini文件后,需要重启Web服务器或者PHP-FPM才能使修改生效。此外,还可以在代码使用ini_set()函数来修改pdo_mysql.default_socket的值,在连接MySQL数据库之前进行动态配置。 综上所述,pdo_mysql.default_socket是用于指定PDO连接MySQL数据库所使用的Unix套接字文件路径的选项,在需要使用Unix套接字文件进行连接时,可以通过修改php.ini文件的该选项的值来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值