PHP和PDO:使用IPv6地址连接到MySQL

IPV6 SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known


当你确认你的服务器IPV6环境是好用的,并且,在服务器端使用IPV6账号、密码能登录,并且可以正常增、删、改、查操作,那么你可以试试下面的方法。

如果其他人偶然发现了同样的问题,并且通过PHP源代码节省了2个小时,那么如果你在地址周围添加方括号,PDO MySQL
IPv6连接就可以工作.

例如

$pdo = new PDO("mysql:host=[1234:5678::42];port=3306;dbname=foo", ...);

thinkphp3.2.4示例

return array(
	//'配置项'=>'配置值'	
	'DB_TYPE'	=>  'mysql',		// 数据库类型
	'DB_HOST'	=>  '[::1]',	    // 服务器地址 127.0.0.1 | localhost | [::1]
	'DB_NAME'	=>  'dbName',	    // 数据库名
	'DB_USER'	=>  'dbUser',	    // 用户名
	'DB_PWD'	=>  'dbpass',		// 密码
	'DB_PORT'	=>  '3306',			// 端口
	'DB_PREFIX'	=>  'abc_',			// 数据库表前
);
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐