mysqlデータを別サーバに移行

mysqlサーバで利用しているサーバの容量が減ってきたので別サーバに移行することに。
しかし、旧サーバの空き容量がないのでmysqldumpで出力することができない。
限界まで削除して1テーブルごとに出力するか。
すごく非効率。

そこで直接ダンプファイルを新サーバに出力できないか検討してみる。

結論からいうとできる。

手順は次のとおり。

旧サーバからダンプ出力先を指定。

mysqldump -u[mysqlユーザ名] [データベース名] -p[mysqlパスワード] | gzip | ssh [新サーバホスト名|IPアドレス] ‘cat > ~/[圧縮ダンプファイル名]’

このときにgzipコマンドで圧縮しておくと転送量が抑えれる。

出力されたダンプファイルを解凍。

gunzip [ダンプファイル名]

あとは新サーバでインポートするだけ。

mysql -u [mysqlユーザ名]-p[mysqlパスワード] [データベース名] < /root/[ダンプファイル名]

旧サーバから新サーバへのダンプ処理中に旧サーバの容量を圧迫することなく処理ができるので無事移行完了。