PHP无法访问远程mysql的问题分析及解决

首先说明,远程服务器是可远程访问的。

我遇到的问题是这样的:有A,B,C三台服务器,C为服务器,B可以用PHP成功连接上C机器的mysql,而A机器则不能连接!
可以说,肯定不是代码有什么问题,服务器上的mysql设置也是没什么问题的,因为B机器都是可以的。
肯定是A机器的设置有问题!

在网上一顿搜,各种说mysql授权问题的,以及修改php.ini的,修改防火墙的,事实上都不是这些问题导致的。
和这个页面上讨论的问题类似,但是没人给出结果,链接:http://bbs.csdn.net/topics/90284141
最后想到了SELINUX的问题,对比了下AB两台机器,果然设置不一样!估计就是它的问题,有戏!

进行了如下设置:

root下,用vim打开文件文件/etc/selinux/config
修改SELINUX的值:
#SELINUX=enforcing
SELINUX=disabled
保存并退出。
重启生效,如果不想重启,命令行输入
setenforce 0
回车,OK
此处修改参考:http://www.xiaojb.com/archives/tips/disabled-selinux.shtml

最后,连接成功,哦耶!!!

(0)

相关推荐

  • 禁止mysql做域名解析(解决远程访问mysql时很慢)

    当远程访问mysql时,mysql会解析域名,会导致访问速度很慢,加上下面这个配置可解决此问题 禁止mysql做域名解析 [mysqld] skip-name-resolve PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句.

  • mysql设置远程访问数据库的多种方法

    可能是IP没设置好 问题:MySQL权限设置正确,但仍无法远程访问.通过telnet发现3306端口未打开. 分析:MySQL默认只绑定127.0.0.1,即:只有在本机才能访问3306端口. 解决:找到MySQL配置文件,搜索"bind-address",找到这一行: bind-address          = 127.0.0.1 在前面加一个#,注释掉这一行,保存,重启MySQL.再通过远程访问就可以了,telnet可以发现端口也打开了. 例我们配置 1. 确保skip-net

  • mysql设置指定ip远程访问连接实例

    本文实例讲述了mysql设置指定ip远程访问连接的方法,分享给大家供大家参考.具体实现方法如下: 1. 授权用户root使用密码jb51从任意主机连接到mysql服务器: 复制代码 代码如下: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jb51' WITH GRANT OPTION; flush privileges; 2.授权用户root使用密码jb51从指定ip为218.12.50.60的主机连接到mysql服务器: 复

  • mysql解决远程不能访问的二种方法

    1.在/etc/mysql/my.cnf中的[mysqld]段注释掉bind-address = 127.0.0.1 2.用mysql -uroot -p 登陆mysql,然后采用以下方法开启远程访问权限: 方法1:mysql>use mysql;     mysql>update user set host = '%' where user = 'root'; mysql>FLUSH RIVILEGES: 方法2:mysql>GRANT ALL PRIVILEGES ON *.*

  • 允许远程用户访问mysql服务sql语句

    mysql> grant all privileges on cakephp.* to cakephp@192.168.14.1 identified by 'lpfukia'; Query OK, 0 rows affected (0.01 sec) mysql> mysql> mysql> mysql> flush privileges; $1 >> 第一条命令: 授权192.168.14.1 主机的cakephp用户访问cakephp数据库 $2 >&

  • mysql数据库远程访问设置方法

    1.改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where

  • MySQL数据库设置远程访问权限方法小结

    MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机. 1,设置访问单个数据库权限 复制代码 代码如下: mysql>grant all privileges on test.* to 'root'@'%'; 说明:设置用户名为root,密码为空,可访问数据库test 2,设置访问全部数据库权限 复制代码 代码如下: mysql>grant all privileges on *.* to 'root'

  • MySQL 不允许从远程访问的解决方法

    解决方法: 1. 改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 复制代码 代码如下: mysql -u root -pvmwaremysql>use mysql; mysql>update user se

  • 远程访问MySQL数据库的方法小结

    三种解决方法: 1.改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmware mysql>use mysql; mysql>update user set host = '

  • mysql开启远程连接(mysql开启远程访问)

    复制代码 代码如下: //建议设置固定IPmysql> GRANT ALL PRIVILEGES ON *.* TO root@"8.8.8.8" IDENTIFIED BY "root";mysql> flush privileges;//修改防火墙iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

随机推荐