質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

1131閲覧

さくらレンタルサーバでdumpファイルのインポート時にエラー Unknown command '\''. が出る

majua51

総合スコア7

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2020/02/03 01:38

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
途中でファイルを圧縮したのがいけなかったようで、その部分を削除したら動作しました。

投稿2020/02/03 04:16

majua51

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問