设为首页 加入收藏

TOP

php无法连接到mysql
2015-07-24 11:16:57 来源: 作者: 【 】 浏览:2
Tags:php 无法 接到 mysql

背景:

使用lighttpd作为web服务器,php作为服务器脚本,mysql作为数据库。当浏览器客户端访问的时候,服务器php脚本会尝试连接mysql,查询数据并且返回给客户端。但是在调试的过程中发生两次,无法连接mysql的情况。这里作一下记录。

正文:

在php脚本中连接mysql比较简单,先贴一下代码

connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>

(1)上面这段代码是可以运行的

如果在命令行界面中采用"php +脚本名称"这样的方式运行,代码是可以顺利打印出 mysql 中某个table的数据。

(2)但是当我通过web浏览器访问这个脚本的时候,却没有出现我想要的结果,代码死在了 mysql 连接那里。

后来分析了一下原因,应该是mysql配置参数的问题。

$server="192.168.110.2";

这里采用的是远程连接mysql的方式,但是默认mysql安装的时候,只监听127.0.0 .1(也就是本机的IP)。

所以如果要让mysql可以远程访问,需要配置mysql监听的IP。

打开mysql的配置文件 /etc/mysql/my.cnf,把下面这行注释掉。

bind-address = 127.0.0.1


(3)注释完之后,还有一个问题需要注意

就是如果使用root用户去远程访问mysql的时候,会弹出发生权限问题(在mysql本机调试的时候不会出现,但是远程连接的时候会出现)。

解决办法:创建一个普通用户,并且为这个用户添加修改或者查询mysql的权限,然后使用这个普通用户去访问mysql。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mysql自定义存储过程和触发器 下一篇深入浅出MongoDB(一)NoSQL起源

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·你必须要弄懂的多线 (2025-12-25 04:22:35)
·如何在 Java 中实现 (2025-12-25 04:22:32)
·Java【多线程】单例 (2025-12-25 04:22:29)
·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)