mysql 函数无法访问_为什么mysqli函数可以连接mysql函数无法连接?

你的位置:

问答吧

-> MySQL

-> 问题详情

为什么mysqli函数可以连接mysql函数无法连接?

环境

FREEBSD8+MYSQL5.5+PHP5.2

mysqli_connect函数可以连接数据库

mysql_connect函数无法连接数据库

具体表现

mysql_connect连接的时候,无论是否提供用户密码,都出现

#1045 - Access denied for user 'wwwuser'@'localhost' (using password: NO)

其中wwwuser为php文件属性的owner.

请指教

作者: wayking

发布时间: 2010-08-30

开启了mysql连接了吗?

作者: renxiao2003

发布时间: 2010-08-30

一下是PHPINFO获取的数据

mysql

MySQL Support enabled

Active Persistent Links  0

Active Links  0

Client API version  5.5.5-m3

MYSQL_MODULE_TYPE  no value

MYSQL_SOCKET  /tmp/mysql.sock

MYSQL_INCLUDE  no value

MYSQL_LIBS  no value

Directive Local Value Master Value

mysql.allow_persistent On On

mysql.connect_timeout 60 60

mysql.default_host no value no value

mysql.default_password no value no value

mysql.default_port 3306 3306

mysql.default_socket no value no value

mysql.default_user no value no value

mysql.max_links Unlimited Unlimited

mysql.max_persistent Unlimited Unlimited

mysql.trace_mode Off Off

mysqli

MysqlI Support enabled

Client API library version  5.5.5-m3

Client API header version  5.5.5-m3

MYSQLI_SOCKET  /tmp/mysql.sock

Directive Local Value Master Value

mysqli.default_host no value no value

mysqli.default_port 3306 3306

mysqli.default_pw no value no value

mysqli.default_socket no value no value

mysqli.default_user no value no value

mysqli.max_links Unlimited Unlimited

mysqli.reconnect Off Off

作者: wayking

发布时间: 2010-08-30

在线等待,希望了解的人帮解决

作者: wayking

发布时间: 2010-08-30

自己搞定:

最近部曙一台服务器,CentOS + Apache + Tomcat + MySQL为主,另外装了PHP以提供灵活应用。装完PHP我放了个phpMyAdmin,一切正常,之后又放了个Discuz 7,结果就大跌眼镜了:我明明填写了正确的数据库用户名与密码,它老提示我连接被拒绝,mysql_error报的信息大概是这样子:Access denied for 'root'@'localhost', using password NO。连接被拒就算了,还非说我没有用密码?

想想phpMyAdmin也是PHP写的,都能正常连接,我实在是想不通这个问题,不知何从。后来网上搜一搜,国内没见有人提类似问题,国内的Access Deny基本都是mysql用户权限有问题;还好我在英文网站上找到了答案:原来是sql.safe_mode惹的祸,在php.ini里找到此项,将其置为Off就好了。附PHPDig里关于sql.safe_mode的说明:

http://www.phpdig.net/ref/rn41.html 写道

If sql.safe_mode is enabled, mysql_connect() and mysql_pconnect() ignore any arguments passed to them. Instead, PHP attempts to connect using the following details:

* host: local host

* user: the user PHP runs as

* password: an empty string ("")

我想只所以称之为sql.safe_mode,就是启用它之后,PHP源码里不会出现数据库用户名与密码,这样源码外泄也不会暴露数据库用户信息。但是它有一点局限性,就是只能用无密码的root用户登localhost,如果能指定就好了。当然也可能是我没找到地方,哪位找到的话告诉我啊。

感谢thxg的文章

http://thxg.javaeye.com/blog/429442

作者: wayking

发布时间: 2010-08-30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值