四月 11
Digg
Stumbleupon
Technorati
Delicious

WordPress 資料庫轉移亂碼問題

最近因為部落格承租的虛擬空間廠商【Startlogic】改換系統,將原本的vdeck升級為3.0版本。由於升級過程是更換服務的伺服器,所以隨筆在毫無準備下經歷了一場WordPress移轉的事件。這次的【Startlogic】空間轉換真是多災多難,過程中轉移失敗了好幾次。alu也不斷的詢問客服,本以為是我們自己選擇“手動移轉”出了問題;想不到切換到“自動移轉”也卡機將近兩週,直到這兩天才由alu去手動變更完成。

可是在 【Startlogic】空間移轉完成後,我興致勃勃的打開我的WordPress,居然出現:

WordPress

Error establishing a database connection

This either means that the username and password information in your wp-config.php file is incorrect or we can\’t contact the database server at localhost. This could mean your host\’s database server is down.

* Are you sure you have the correct username and password?

* Are you sure that you have typed the correct hostname?

* Are you sure that the database server is running?

If you\’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.

這樣的錯誤!

當我檢查 wp-config.php後發現MySQL所使用的帳號密碼並沒有錯誤,再連上空間廠商的後端也發現資料庫正常運作中,並未被關閉;之後我新增新的帳號作為資料庫連線的帳號名稱,但情況依舊沒改善;最後來我把wp-config.php中的資料庫主機連線位置改為空間廠商所提供的絕對位置,我的WP才正常的連到空間廠商的資料庫

修改方法:

define(\’DB_HOST\’, \’localhost\’)

這一行的 \’localhost\’ 改成空間廠商所提供的資料庫位址

但接著眾多WP使用者,都可能面臨的惡夢 — 虛擬空間資料庫轉移而產生的網頁亂碼,居然發生在我身上。在經由alu努力上網爬文後,找到了以下的方法加以修改

修改wp-includes/wp-db.php內的資料連線設定:

找到 $this->dbh =@mysql_connect($dbhost,$dbuser,$dbpassword);

下面加上這一行

$this->query(”SET NAMES \’utf8\’” );

指定資料庫的編碼格式

1.# define(\’DB_CHARSET\’, \’utf8\’);

2.# define(\’DB_COLLATE\’, \’\');

其中,前面 DB_CHARSET 用來指定資料庫編碼格式;後面 DB_COLLATE 用來指定校對集。如果你沒有在 wp-config.php 文件中特別指定,則 Wordpress 默認前者為 UTF8,後則為 uft8_general_ci 。

如果在空間轉換時也同時更改了網域名稱,也可以依下列方法去做修改:

在 wp-config.php 文件中,加入下兩行代碼。

1. define(\’WP_SITEURL\’, \’http://網域名\’);

2. define(\’WP_HOME\’, \’http://網域名\’);

最後我的部落格雖然救回來了,可是還是漏了兩篇文章跟幾篇回應。唉~~這事件就告訴我們時常備份的重要,wp-db-backup 這個插件一定要裝啊!

備註:

wp-db-backup 插件下載:http://www.ilfilosofo.com/blog/wp-db-backup

Share/Save/Bookmark



作者: 數碼隨筆 瀏覽: 18人次


無迴響

仍無迴響。

Comments RSS TrackBack Identifier URI

發表迴響