[請益] MYSQL外部連線(已解決)

看板PHP作者 (異影)時間12年前 (2012/05/21 22:42), 編輯推噓0(0024)
留言24則, 4人參與, 最新討論串1/1
問題已順利解決,謝謝各位的協助

05/22 18:02,
把!@mysql_connect中的@去掉,變成!mysql_connect。
05/22 18:02

05/22 18:03,
就可以顯示出錯誤訊息
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

05/21 23:08, , 1F
Linux or winodws ?
05/21 23:08, 1F

05/21 23:11, , 2F
10.3.204.10有沒有防火牆擋住3306 port?錯誤訊息是啥?
05/21 23:11, 2F

05/21 23:12, , 3F
telnet 10.3.204.10 3306 看看有沒有通
05/21 23:12, 3F

05/22 12:13, , 4F
windows 7
05/22 12:13, 4F

05/22 12:14, , 5F
目前是在10.1.202.162做設定 沒有看到錯誤訊息
05/22 12:14, 5F

05/22 12:15, , 6F
telnet後出現詭異的文字 外加遺失與主機的連線
05/22 12:15, 6F

05/22 12:16, , 7F
telnet出現詭異文字 可能真的沒有開port的關係 謝謝各位
05/22 12:16, 7F

05/22 14:33, , 8F
嘗試開port了,發現那台防火牆是全關的狀態,沒有防毒
05/22 14:33, 8F

05/22 14:33, , 9F
依然連不上(orz
05/22 14:33, 9F

05/22 15:58, , 10F
你用的帳號是root嗎?另外php中的錯誤訊息是啥?
05/22 15:58, 10F

05/22 15:59, , 11F
你先在10.1.202.162中裝一下navicat,直接用這個軟體連看看
05/22 15:59, 11F

05/22 17:35, , 12F
目前有用netstat確定3306是listening的狀態
05/22 17:35, 12F

05/22 17:36, , 13F
PHP是顯示我針對連線做偵錯所顯示的echo值
05/22 17:36, 13F

05/22 17:37, , 14F
帳號都是root沒錯
05/22 17:37, 14F
※ 編輯: dream0830 來自: 140.130.189.16 (05/22 17:43)

05/22 17:44, , 15F
因為我網頁中每個檔案開頭勢必都先connMysql
05/22 17:44, 15F

05/22 17:44, , 16F
所以他只告訴我她連不到資料庫QAQ
05/22 17:44, 16F

05/22 18:02, , 17F
把!@mysql_connect中的@去掉,變成!mysql_connect。
05/22 18:02, 17F

05/22 18:03, , 18F
就可以顯示出錯誤訊息
05/22 18:03, 18F

05/22 18:03, , 19F
另外Navicat不是netstat,是一套mysql的管理軟體
05/22 18:03, 19F

05/22 19:17, , 20F
恩恩 感謝 目前mysql端關機了XD 我明天再試試
05/22 19:17, 20F

05/22 22:24, , 21F
root production.mysql.com 否 這一行是怎樣...
05/22 22:24, 21F

05/23 12:59, , 22F
我也不知道那是啥耶其實 他本來就在了XD
05/23 12:59, 22F
※ 編輯: dream0830 來自: 140.130.189.46 (05/23 13:01)

05/23 17:41, , 23F
謝謝各位的幫忙 我成功了
05/23 17:41, 23F

05/23 17:42, , 24F
除了開啟權限以外 兩邊的版本還要一樣才可以通
05/23 17:42, 24F
※ 編輯: 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)
文章代碼(AID): #1FkbHWLS (PHP)