无法连接远程MySQL数据库哪,如何解决?

Jatic 2006-09-16 06:19:44
机器环境:
apache 2.0.54
php 5.0.4
mysql 4.1.11

程序无法连接远程MySQL数据库,但可以连接本地MySQL数据库
2003 -> Can't connect to MySQL server on '192.168.1.1' (13)

有人说 13 是 permission deny ,但指的是本机的 mysql.sock 还是远程机的?
如果是远程机的,为什么另外一台机 B 又可以访问呢?
本机的 mysql.sock 已经确认是属mysql 并且为 777

请教如何解决~~~~

急哪
...全文
1655 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jatic 2006-09-17
  • 打赏
  • 举报
回复
人呢?都去哪了?
Jatic 2006-09-16
  • 打赏
  • 举报
回复
另外一点内容:
mysql 同步出错,怎么回事哪?

先说明一个环境:
三台MySQL服务器,A、B、C,三台机器MySQL为 4.1.x ,x为不相同
A为主服务器,B、C为从服务器,也就是实现从A 到 B、C
A已经设置好主服务器,B也设置好了为从服务器,数据也能够正常同步

但是C机器切不能同步!

看 mysql 日志:
mysqld started
InnoDB: Started; log sequence number 0 43994
/usr/libexec/mysqld: ready for connections.
Version: '4.1.11-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
[Note] Slave SQL thread initialized, starting replication in log 'localhost-bin.000002' at position 876, relay
log './caerr-relay-bin.000001' position: 4
[ERROR] Slave I/O thread: error connecting to master 'testbak@192.168.1.1:3306': Error: 'Can't connect to MySQL server on '192.168.1.1' (13)' errno: 2003 retry-time: 60 retries: 86400

很确定,A机器MySQL 正常运行,C也正常运行,另外,我在 C 上使用 testbak 连接到 A MySQL 也很正常!
不知道什么原因呢?哪位帮一下!!??
Jatic 2006-09-16
  • 打赏
  • 举报
回复
在C中可以使用mysql 控制台连接A数据库
但使用 php 的 connect 函数倒时不行!

另外,在C中,使用同步时,也出现同样的提示,这一点看来,与 php 无关
iasky 2006-09-16
  • 打赏
  • 举报
回复
--skip-networking

windows下是my.ini文件中可以设置
linux下是my.cnf文件
iasky 2006-09-16
  • 打赏
  • 举报
回复
如果php中有问题,可以看下php.ini中

; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =
iasky 2006-09-16
  • 打赏
  • 举报
回复
你是说,你在A机下可以用控制台连接到了C机的mysql?(你上面没有说的吧)

程序中不可以?
Jatic 2006-09-16
  • 打赏
  • 举报
回复
手册中提示:
如果你得到错误Can't connect to MySQL server on some_hostname,你可以尝试下列步骤找出问题是什么:

通过执行telnet your-host-name tcp-ip-port-number并且按几次回车来检查服务器是否正常运行。如果有一个MySQL运行在这个端口上,你应该得到一个包含正在运行的MySQL服务器的版本号的应答。如果你得到类似于telnet: Unable to connect to remote host: Connection refused的一个错误,那么没有服务器在使用的端口上运行。
尝试连接本地机器上的mysqld守护进程,并用mysqladmin variables检查mysqld被配置使用的TCP/IP端口(变量port)。
检查你的mysqld服务器没有用--skip-networking选项启动。

就差:检查mysqld服务器没有用--skip-networking选项启动。

上面也没有提示到telnet 有版本提示后,又应该怎么检测!!
Jatic 2006-09-16
  • 打赏
  • 举报
回复
用 php 连接,如果没有用户名,或者无权,提示:
permission denied
Jatic 2006-09-16
  • 打赏
  • 举报
回复
iasky(C#_ASP_PHP)

使用那用户名与密码,mysql 控制台下,直接可以登录到远程数据库
你说有没有权限?
iasky 2006-09-16
  • 打赏
  • 举报
回复
自己先查下数据库mysql表user中的host字段
iasky 2006-09-16
  • 打赏
  • 举报
回复
你没看到我说吗?

要把你用的用户有 % ,不是localhost,就是说你的用户的host要是%

或者你看看mysql的手册把
Jatic 2006-09-16
  • 打赏
  • 举报
回复
有个字打错:
连接本(站)地的数据库没有问题。但就是连接不了远程!
Jatic 2006-09-16
  • 打赏
  • 举报
回复
谢谢楼上兄的回复,不过,也希望你能看清楚我上边的两贴内容
上面很明确说,C 是正常启动了 mysql 的
连接本站的数据库没有问题。但就是连接不了远程!

就是没有 grant 也不会提示 can't con.. 的,一般是 perm...
iasky 2006-09-16
  • 打赏
  • 举报
回复
1。先检查一下mysql服务器上mysql服务打开没有
2。在mysql命令行下执行:grant all on 数据库名.表名 to '用户'@'%' identified by 'password';
如:grant all on test.* to 'root'@'%' identified by '&dsjkdf03*';
(如果@后面是%的话,是任何人都能访问的,密码最好设长一点,麻烦一点)


%就可以了

21,894

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧