作者dream0830 (异影)
看板PHP
标题[请益] MYSQL外部连线
时间Mon May 21 22:42:37 2012
问题已顺利解决,谢谢各位的协助
1F:→ dio833:把!@mysql_connect中的@去掉,变成!mysql_connect。 05/22 18:02
2F:→ dio833:就可以显示出错误讯息 05/22 18:03
原来@会忽略错误讯息阿,学到一招
根据PHP的错误讯息发现好像有版本的问题
因为我是直接从官网下载最新版的所以我就确认了一下
MYSQL端的appserv版本为2.5.10
而我这端的appserv版本为2.6.0
版本果然....
重新安装MYSQL端的相同版本再测试就成功了
谢谢各位的帮忙
各位高手
小妹我想请教一个问题
我将MYSQL架设在10.3.204.10的位置
而我则是在10.1.202.162的位置
基本上因为都是内部IP所以我想应该是没有找不到的问题
直接连线10.3.204.10/phpMyadmin时,也可以直接对MYSQL做存取的动作
再装Appsev的时候,我想因为是外连外部的MYSQL,
所以在10.1.202.162这台就没有装MYSQL了
我也在10.3.204.10的MYSQL权限的部分有做我的IP的设定
为了确保权限,%与IP的权限都设定了
在权限部分可以看到
使用者 主机 密码 整体权限 授权
任何 % -- USAGE 否
任何 localhost 否 USAGE 否
任何 production.mysql.com 否 USAGE 否
root % 是 ALL PRIVILEGES 是
root 10.1.202.162 是 ALL PRIVILEGES 是
root 127.0.0.1 否 ALL PRIVILEGES 是
root localhost 是 ALL PRIVILEGES 是
root production.mysql.com 否 ALL PRIVILEGES 是
权限已经全开了
在PHP中
connMysql.php的设定是
$db_host = "10.3.204.10";
可是在连接网页时,仍显示无法与资料库连接
是否有漏掉设定的
目前是有拜过大神
有得到说要在资料库的主机端修改 my.cnf中
有个bind-address 127.0.0.1要做注解
可是我找不到my.cnf(那好像是Linux才叫做my.cnf)
於是我直接找my.ini
可是在my.ini中我找不到 bind-address 127.0.0.1的档案
目的很纯粹就是要让
10.1.202.162的php可以对10.3.204.10的MYSQL做存取
麻烦各位高手指点迷津
-------------------------------------------
目前情形
10.3.204.10 port3306 确定开启
连线档案 connMysql.php 内容
//资料库主机设定
$db_host = "10.3.204.10";
$db_table = "phpmember";
$db_username = "root";
$db_password = "1234";
//设定资料连线
if (!@mysql_connect($db_host, $db_username, $db_password))
die("资料连结失败!");
//连接资料库
if (!@mysql_select_db($db_table)) die("资料库选择失败!");
PHP的错误讯息
没有错误,我连线网页只有「资料连结失败!」
telnet 10.3.204.10 3306的情形
F
5.0.51b-community-nt-log? qqd"xZ9L,?FR8^Rap1A4!Ex
遗失与主机的连线
------------------------------------------------------
根据dio833的说明 PHP的错误讯息是
Warning: mysql_connect() [function.mysql-connect]: OK packet 6 bytes shorter
than expected. PID=1660 in C:\AppServ\www\connMysql.php on line 8
Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to
MySQL 4.1+ using old authentication in C:\AppServ\www\connMysql.php on line 8
Warning: mysql_connect() [function.mysql-connect]: in
C:\AppServ\www\connMysql.php on line 8
是因为版本问题吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.130.189.16
3F:→ mattttt:Linux or winodws ? 05/21 23:08
4F:→ dio833:10.3.204.10有没有防火墙挡住3306 port?错误讯息是啥? 05/21 23:11
5F:→ dio833:telnet 10.3.204.10 3306 看看有没有通 05/21 23:12
6F:→ dream0830:windows 7 05/22 12:13
7F:→ dream0830:目前是在10.1.202.162做设定 没有看到错误讯息 05/22 12:14
8F:→ dream0830:telnet後出现诡异的文字 外加遗失与主机的连线 05/22 12:15
9F:→ dream0830:telnet出现诡异文字 可能真的没有开port的关系 谢谢各位 05/22 12:16
10F:→ dream0830:尝试开port了,发现那台防火墙是全关的状态,没有防毒 05/22 14:33
11F:→ dream0830:依然连不上(orz 05/22 14:33
12F:→ dio833:你用的帐号是root吗?另外php中的错误讯息是啥? 05/22 15:58
13F:→ dio833:你先在10.1.202.162中装一下navicat,直接用这个软体连看看 05/22 15:59
14F:→ dream0830:目前有用netstat确定3306是listening的状态 05/22 17:35
15F:→ dream0830:PHP是显示我针对连线做侦错所显示的echo值 05/22 17:36
16F:→ dream0830:帐号都是root没错 05/22 17:37
※ 编辑: dream0830 来自: 140.130.189.16 (05/22 17:43)
17F:→ dream0830:因为我网页中每个档案开头势必都先connMysql 05/22 17:44
18F:→ dream0830:所以他只告诉我她连不到资料库QAQ 05/22 17:44
19F:→ dio833:把!@mysql_connect中的@去掉,变成!mysql_connect。 05/22 18:02
20F:→ dio833:就可以显示出错误讯息 05/22 18:03
21F:→ dio833:另外Navicat不是netstat,是一套mysql的管理软体 05/22 18:03
22F:→ dream0830:恩恩 感谢 目前mysql端关机了XD 我明天再试试 05/22 19:17
23F:→ tyf99:root production.mysql.com 否 这一行是怎样... 05/22 22:24
24F:→ dream0830:我也不知道那是啥耶其实 他本来就在了XD 05/23 12:59
※ 编辑: dream0830 来自: 140.130.189.46 (05/23 13:01)
25F:→ dream0830:谢谢各位的帮忙 我成功了 05/23 17:41
26F:→ dream0830:除了开启权限以外 两边的版本还要一样才可以通 05/23 17:42
※ 编辑: dream0830 来自: 140.130.189.46 (05/23 17:46)
※ 编辑: dream0830 来自: 140.130.189.46 (05/23 17:51)
※ 编辑: dream0830 来自: 140.130.189.46 (05/23 17:53)