Mysql Bacup & Restore

來源:互聯網
上載者:User

伺服器的mysql狀態如下:

Server version: 5.0.18-standard-log
Protocol version: 10
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1

這樣的編碼在備份和恢複的時候會有問題,因此做了如下測試來保證其正確:

1. 恢複到原資料庫,恢複後編碼不變,仍全是latin1。

  • 通過背景worpress database backup 外掛程式備份資料;
  • 建立新資料庫,此時編碼仍全是latin1;
  • 使用mysql> \. backup.sql 進行恢複,blog瀏覽顯示正常,編碼仍全是latin1;
  • 插入新資料,瀏覽正常;
  • 插入資料後再次備份,再次使用1、2、3恢複,正常。

2. 恢複到原資料庫,恢複後編碼變為server和database編碼是utf8,client和conn編碼是latin1。

  • 通過背景worpress database backup 外掛程式備份資料;
  • 建立新資料庫,此時編碼仍全是latin1;
  • 修改backup.sql,在前面增加
    SET CHARACTER_SET_DATABASE = 'utf8';
    SET CHARACTER_SET_SERVER = 'utf8';
    兩行;
  • 使用mysql> \. backup.sql 進行恢複,blog瀏覽顯示正常,編碼變為server和database編碼是utf8,client和conn編碼是latin1;
  • 插入新資料,瀏覽正常;
  • 插入資料後再次備份,再次使用1、2、3恢複,瀏覽正常。

3. 恢複到另外一個資料庫(目的資料庫是4.1.18-nt,window安裝時選擇了多語言,服務端預設utf8,狀態如下)。

Server version: 4.1.18-nt
Protocol version: 10
Server characterset: utf8
Db characterset: utf8
Client characterset: latin1
Conn. characterset: latin1

  • 通過 mysql> mysqldump -u ID -p -h hostname.samuelchen.net --default-character-set=latin1
    -set-charset=utf8 --skip-opt database_name> backup.sql 備份資料;
  • 建立新資料庫,server和database編碼是utf8,client和conn編碼是latin1;
  • 修改backup.sql,在最前面增加 SET NAMES 'utf8';
  • 使用mysql> \. backup.sql 進行恢複,blog瀏覽顯示正常,編碼變為server和database編碼是utf8,client和conn編碼是latin1;
  • 插入新資料,正常;
  • 插入資料後再次備份,再次恢複,正常。
  • 恢複到1,2所示的latin1資料庫,無須修伽,正常。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.