php的mysql_connect()函数如何指定端口呢?试了很多种方法还是连接不成功。

我不明白 发布于 2014/07/30 11:15
阅读 12K+
收藏 0

说一下具体情况

web服务器与mysql服务器是分开的

mysql服务器设置mysql的端口是10100 

web服务器安装的apache+php5,php.ini文件中默认的mysql端口是3306。

在web服务器中建立一个php文件,其中连接数据库的语句如下:

$mysql = array(

	"host" => "192.168.1.101:10100",
	"username" => "root",
	"password" => "123456",
	"realmd" => "testdb",

);

$mysql_connect = mysqli_connect($mysql["host"], $mysql["username"], $mysql["password"]) or die("Unable to connect to the database.");



以上代码执行以后显示“Unable to connect to the database.”

我重新看了一下函数的原型的解释

resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int$client_flags ]]]]] )

请问这是什么情况呢?

加载中
0
霸气千秋
霸气千秋

http://cn2.php.net/manual/zh/mysqli.construct.php

官方文档不谢

0
剑啸枫
剑啸枫
mysqli_connect(host:prot, user, pass);
0
我不明白
我不明白

mysqli_connect()和mysql_connect() 函数原型 不同。

mysql_connect() 的端口可以加在IP地址后面 

mysqli_connect()的端口是在数据库名后面的。

0
我不叫大脸猫
我不叫大脸猫
目测楼主的web服务器跟mysql服务器不是同一台,看看iptables,把10100端口开放即可
我不明白
我不明白
mysql服务器的IPtables没有设置什么规则 只是做了一个NAT而已, 我用其他别的mysql工具软件连接是正常的,只有这个web php程序存在问题。
0
fxhover
fxhover

你写错了,host只是地址,不带端口号的,端口在mysqli_connect的第5个参数中指定,多看手册吧。

mysqli_connect ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )

fxhover
fxhover
回复 @我不明白 : 你的host是:"host" => "192.168.1.101:10100",去掉端口号。。。
我不明白
我不明白
$mysql_connect = mysqli_connect($mysql["host"], $mysql["username"], $mysql["password"],10100) or die("Unable to connect to the database.");
0
我不叫大脸猫
我不叫大脸猫
这个or die不知道是谁教你的,试试or mysql_error(),联不上数据库好歹也要知道为什么联不上,报错信息都不看,胡搞瞎搞
返回顶部
顶部