設為首頁收藏本站

Hippies

 找回密碼
 立即註冊

掃一掃,訪問微社區

搜索
熱搜: 活動 交友 discuz
查看: 2789|回復: 1
打印 上一主題 下一主題

如何遷移MySQL的Database到另一台Server

[複製鏈接]
  • TA的每日心情
    開心
    2016-2-27 23:29
  • 簽到天數: 27 天

    [LV.4]偶爾看看III

    438

    主題

    611

    帖子

    705

    積分

    高級會員

    Rank: 4

    積分
    705
    跳轉到指定樓層
    樓主
    發表於 2016-4-8 10:02:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式 简体中文繁體中文
    一般最常用的操作方式是使用mysqldump的指令,將database中的資料匯出到備份檔中,然後在將備份檔案搬移到另一台伺服器上,再進行匯入的處理
    將db-name的資料匯出到 db-name.out
    $ mysqldump -u user -p db-name > db-name.out
    使用sftp/ssh將備份檔db-name.out複製到遠端remote.box.com主機上的/backup目錄下
    $ scp db-name.out user@remote.box.com:/backup
    然後再到遠端的主機上將備份檔匯入database中
    $ mysql -u user -p db-name < db-name.out
    or
    $ mysql -u user -p 'password' db-name < db-name.out

    你也可以用一條指令把上面三個命令一次完成
    如果你是在內網或有使用VPN(虛擬網路)的環境下可以這麼做
    $ mysqldump db-name | mysql -h remote.box.com db-name
    如果不是的話你還是可以經由ssh這麼做
    $ mysqldump db-name | ssh user@remote.box.com mysql db-name
    或是
    $ mysqldump -u username -p'password' db-name | ssh user@remote.box.com mysql -u username -p'password db-name

    另外你還可以在這過程中把db-name做變更的
    $ mysqldump db-name foo | ssh user@remote.box.com mysql bar
    或是
    $ mysqldump -u user -p'password' db-name foo | ssh user@remote.box.com mysql -u user -p'password' db-name bar

    以上的db-name僅是代表database名,使用時請視自己伺服器上的確實名稱來操作。

    最近訪問 頭像模式 列表模式
  • TA的每日心情
    開心
    2016-2-27 23:29
  • 簽到天數: 27 天

    [LV.4]偶爾看看III

    438

    主題

    611

    帖子

    705

    積分

    高級會員

    Rank: 4

    積分
    705
    沙發
     樓主| 發表於 2016-4-8 11:33:11 | 只看該作者 简体中文繁體中文
    如果要搬移MySQL的Database位置的處理方式,則要先確認MySQL的Database檔案位置,進行搬移和重新指向的處理
    首先要停止服務
    $sudo /etc/init.d/mysql stop
    or
    $sudo service mysql stop
    透過/etc/mysql/my.cnf MySQL的設定檔確認Database的檔案位置,預設的應該在/var/lib/mysql目錄下
    使用cp指令進行複製搬移,這裡要提醒一下的是,如果要整個目錄移動的話最好是用mv指令,如果複製的話才用cp指令而且要注意加 -R -p 參數,以避免遺漏掉目錄下的子目錄或隱藏檔
    $sudo cp -R -p /var/lib/mysql /newpath
    變更/etc/mysql/my.cnf MySQL的設定檔,將原來的datadir指向新的位置
    [mysqld]
    datadir=/your/new/dir/
    tmpdir=/your/new/temp/
    最後再重新啟動MySQL
    $sudo /etc/init.d/mysql start
    or
    $sudo service mysql start
    您需要登錄後才可以回帖 登錄 | 立即註冊

    本版積分規則

    小黑屋|手機版|Archiver|Hippies 手作皮革工作坊  

    GMT+8, 2024-4-25 07:04 , Processed in 0.052192 second(s), 18 queries , Apc On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回復 返回頂部 返回列表