網頁主機移機,php和mysql相容問題?

我公司以往是跟外面承租php主機,
最近打算移到另一家,
這幾天在測試時發現,把原本的網頁copy到另一家主機,卻發現一些問題

一般html網頁和無資料庫連線的php顯示沒問題,
但是有牽扯到資料庫連線的php就會無法顯示
(IE顯示HTTP 500錯誤,chrome則是一片空白)

當然資料移過去,因為舊資料庫名稱和使用者名稱與新主機設定皆不同,
這邊我有找出來改了一下,但依舊一樣?

舊廠商的mysql主機是5.1.48,
新廠商的mysql主機是5.6.39,
我在想是否有可能因為之前設計網頁時用的php語法(搞不好比5.1舊)比較舊,
而現在擺在較新版本的mysql主機會有問題?

我不熟php,但好像有聽過當php語法和mysql主機的版本相異時,
會有部分不相容問題.....?
2018-06-26 13:38 發佈
一般來說舊移到新比較不會有問題除非你的程式真的很舊……看看權限還有其他部份的設定吧。

rukawa1 wrote:
一般html網頁和無資料庫連線的php顯示沒問題,
但是有牽扯到資料庫連線的php就會無法顯示
...
舊廠商的mysql主機是5.1.48,
新廠商的mysql主機是5.6.39,
我在想是否有可能因為之前設計網頁時用的php語法(搞不好比5.1舊)比較舊,
而現在擺在較新版本的mysql主機會有問題?...(恕刪)

在 console 下, 用 手工打命令 測測看啊..

Connect to remote MySql database using Command Prompt
https://www.youtube.com/watch?v=90SNkMIS2XM
TYPE=MyISAM
TYPE=aria
改成
ENGINE=MyISAM

不用謝我...

宅男乙 wrote:
在 console...(恕刪)


mysql 語法的變更應該較少
只有更多功能而已

到是php真的是很認版本
不同版本功能常常增增減減
甚至連開發者都不能保證相容
因為是遠端主機,我也沒找到可以在指令模式下測試

還是說有誰可以提供資料庫連線測試php?

讓我把php裡,輸入資料庫名稱,帳號,密碼,讓我測試是否能正常連線mysql

(剛剛上網找到一個,測試結果跟之前一樣HTTP 500,

而且這個上網的資料庫連線寫法跟我網頁那個寫法,好像不是很相同....)
樓主資料庫是怎麼轉移的?

如果用 phpMyAdmin 之類的去 匯出/匯入,照理說資料庫名稱應該一樣啊,怎麼會改變。(記得修改 php.ini 放寬 2MB 的上傳限制,不然匯出/匯入會不完整)

資料庫權限部份,用 root 登入,對那個資料庫開權限,新增一樣的使用者名稱、一樣的密碼,一樣的允許權限。

資料庫名稱、登入帳號名稱、密碼,最好不要亂改,一動牽全身,整個 php 碼有連接資料庫的部份都要重寫。除非當初設計時是採用引入外部變數的方式,那才能修改外部變數設定檔立即套用。

PHP 程式碼的部份,確認下連接資料庫,是不是連接 localhost(127.0.0.1)的。
rukawa1 wrote:
資料庫連線寫法跟我網頁那個寫法,好像不是很相同

樓主的新舊主機的PHP版本也查一下
如果還是使用舊的語法 mysql_xxxx 來連上資料庫要改掉
PHP5.5.0 起廢棄, PHP7.0.0 以後就移除了
先把DEBUG MODE打開吧

有錯誤訊息也比較好分析是什麼問題

舊版MYSQL放到新版上去的確會產生很多語法錯誤的問題


網路上修正方法也一大堆 有些要大改有些要小改

有些甚至只要改伺服器的設定

貓老闆

fedora wrote:
樓主資料庫是怎麼轉移的?

如果用 phpMyAdmin 之類的去 匯出/匯入,照理說資料庫名稱應該一樣啊,怎麼會改變。(記得修改 php.ini 放寬 2MB 的上傳限制,不然匯出/匯入會不完整)

資料庫權限部份,用 root 登入,對那個資料庫開權限,新增一樣的使用者名稱、一樣的密碼,一樣的允許權限。

資料庫名稱、登入帳號名稱、密碼,最好不要亂改,一動牽全身,整個 php 碼有連接資料庫的部份都要重寫。除非當初設計時是採用引入外部變數的方式,那才能修改外部變數設定檔立即套用。

PHP 程式碼的部份,確認下連接資料庫,是不是連接 localhost(127.0.0.1)的。...(恕刪)


如你所說,先從原主機phpMyAdmin匯出,然後匯入新主機

為什麼我在新主機那邊不使用原先的資料庫名稱,帳號,密碼?
這些最好不要亂改一動牽全身,整個 php 碼有連接資料庫的部份都要重寫......

這些我當然知道,
問題在於新主機那邊的規矩!
新主機那邊本來就有我公司一個主網域網站,而這次要移的我是掛子網域上去,
而這新主機有個規定,
就是資料庫名稱和帳號前面需要掛主網域當初申請的名稱,
例如:
主網域名稱叫ABC
我這次要移的的資料庫叫AA,帳號為BB,
到新主機去時就不能設成AA或BB,
必須設定成ABC_AA和ABC_BB(畫面上會強迫ABC_,你只能輸入_後面的名稱)....><

PHP程式碼部分:
$DB_str = "mysql,localhost,abc_aa,abc_bb,poqa951"
看起來是localhost沒錯,
後面三個分別是資料庫名稱,帳號,密碼,
我在拷貝過去後也把這三個改成跟新主機上設定一樣,
但還是不行,PHP我不熟..........
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?