mysqldumpしたファイルを別のサーバでインポートしようとすると、「Unknown command '''.」というエラーが出ます。
###環境
さくらのマネージドサーバ
MySQL 5.5.38
元データのテーブルの文字コードが片方はutf8、もう片方はutf8mb4になっています(ここを変更することはできません)。
###やりたいこと
- hoge01のサーバにあるhoge01データベースのusers, activitiesテーブルのデータをhoge02サーバ側へエクスポート
- hoge02データベースではテーブル名が異なるので、users を hoge01_students に置換した後gzipで圧縮
- hoge02データベースへインポート
###試したこと
--default-character-set=utf8を付けてみましたがエラーに変化はありません。
シェルスクリプトを書くのが初めてなので、そもそも書き方が間違えているのかも知れませんが、下記コードのインポート部分の手前までは動作しgzipファイルも生成されています。
他に必要な情報がありましたらお知らせ下さい。
よろしくお願いします。
###コード
sh
1#!/bin/sh 2 3umask 007 4 5#変数 6host_hoge01='hoge01.sakura.ne.jp' 7db_hoge01='hoge01' 8 9host_hoge02='hoge02.sakura.ne.jp' 10db_hoge02='hoge02' 11 12dirpath_hoge01='/home/hoge02/backup/hoge01/sql' 13filename_hoge01=$db_hoge01'_'`date +%y%m%d_%H`'0000'; 14 15#移動 16cd /home/hoge02 17 18# hoge01のmysqldump実行 19/usr/local/bin/mysqldump --default-character-set=utf8 -Q -h $host_hoge01 -uhoge01 -ppasswordhoge01 -t --replace $db_hoge01 activities users > $dirpath_hoge01/$filename_hoge01.original.sql 20 21#dumpファイルのusersをhoge01_studentsに置き換えたsqlファイルを作成 22before='`users`' 23after='`hoge01_students`' 24cat $dirpath_hoge01/$filename_hoge01.original.sql | sed s/$before/$after/g > $dirpath_hoge01/$filename_hoge01.sql 25 26#ファイル圧縮 27gzip $dirpath_hoge01/$filename_hoge01.sql 28 29#元ファイル削除 30rm -f $dirpath_hoge01/$filename_hoge01.original.sql 31 32#hoge02側にインポート 33mysql -h $host_hoge02 -u hoge02 -ppasswordhoge02 --default-character-set=utf8 $db_hoge02 < $dirpath_hoge01/$filename_hoge01.sql.gz
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。