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

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

新規登録して質問してみよう
ただいま回答率
85.48%
さくらのレンタルサーバ

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

MySQL

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

Q&A

1回答

1623閲覧

mysqldumpで0バイトの空ファイルが吐き出される

kurimatsu

総合スコア2

さくらのレンタルサーバ

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

MySQL

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

0グッド

0クリップ

投稿2022/12/28 06:21

編集2023/01/05 07:47

問題

mysqldumpで、0バイトの空ファイルが吐き出される
当然、ファイルを開いても中には一行も書いてありません。

環境

さくらレンタルサーバ スタンダードプラン
MySQL:5.5、PHP:5.4.45 (CGI)

設定したファイル

mysql-backup.sh

#!/bin/sh # ------------------------------------------------------- # CMSのMySQLを自動バックアップするプログラム # # [環境設定] # # シェルスクリプト(このファイル)の格納場所 # /home/ユーザ名/.ssh/mysql-backup.sh # # ################################################## # # バックアップファイルを保存するディレクトリパス dirpath='/home/ユーザ名/backup' # バックアップを保存する日数 period=7 # ------------------------------------------------------- # # [バックアップ取得処理] # # ファイル名を定義 ※「mysqldump-yymmdd.sql」となるようにします prefix="mysqldump_" filename="${prefix}`date +%Y%m%d`.sql" # mysqldumpを実行しdumpファイルを出力 /usr/local/bin/mysqldump -defaults-file=/home/ユーザ名/.ssh/mysql-backup.conf データベース名 > $dirpath/$filename # 出力されたdumpファイルのパーミション変更 chmod 0600 $dirpath/$filename # # [古いファイルを削除] # oldfile="${prefix}`date -v-$(($period + 1))d +%Y%m%d`.sql" rm -f $dirpath/$oldfile

ログイン情報は以下の別ファイルを読み込ませています。

mysql-backup.conf

[mysqldump] user=ユーザ名 password=パスワード ~~host=FTPホスト名~~ ※こちらは私の記載ミスで、当初より下記を記載しておりました。 host=MySQL DBホスト名

またファイルパーミッションは、以下に設定しました。

  • /home/ユーザ名/.ssh/mysql-backup.sh (600)
  • /home/ユーザ名/.ssh/mysql-backup.conf (400)
  • /home/ユーザ名/backup/ (700)

SSH接続で手動で実行しても、
さくらの管理画面のCRON設定でも同様の結果です。

ご教示いただければ幸いです。
よろしくお願いいたします。

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

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

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

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

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

yuma.inaura

2022/12/28 06:36

オプションもファイルへのリダイレクトも無くして /usr/local/bin/mysqldump データベース名 をコンソールで実行するとどうなりますか?
kurimatsu

2022/12/28 06:48 編集

コメントありがとうございます。 私がプログラミング初心者のため的外れな回答でしたら、すみません。 windows コマンドプロンプトで、SSH接続して、 /usr/local/bin/mysqldump データベース名 した結果、 mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect となりました。 また、 /usr/local/bin にCDしてから、mysqldump データベース名 を実行しても同じ結果でした。 /usr/local/bin/mysqldump が存在しないのでしょうか?
yuma.inaura

2022/12/28 06:49

Can't connect to local MySQL なので接続できてないみたいですね
yuma.inaura

2022/12/28 06:51

いや -defaults-file に接続情報が入ってるんですね そのオプションだけつけて実行するといかがですか?
kurimatsu

2022/12/28 06:56

はい、 -defaults-file=/home/ユーザ名/.ssh/mysql-backup.conf がMySQLへのログイン情報です。 が、やはり結果は同じで、 mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect が返ってきました。
yuma.inaura

2022/12/28 07:00

今まで同環境で MySQL に接続できたことはあるんでしょうか?
kurimatsu

2022/12/28 07:03 編集

SSHでは試したことがないですが、普通にphpMyAdminではログインできています。 すみません、ご質問の回答になっておりますか?
kurimatsu

2022/12/28 07:04

phpMyAdminでdumpを試してみようと思います。
kurimatsu

2022/12/28 07:06

/usr/local/bin/mysqldump -defaults-file=/home/ユーザ名/.ssh/mysql-backup.conf データベース名 > $dirpath/$filename これをコマンドプロントのSSHで、 /usr/local/bin/mysqldump -defaults-file=/home/ユーザ名/.ssh/mysql-backup.conf データベース名 > /home/ユーザ名/backup/mysqldump.sql として実行したのですが、やはり、 mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect と返ってきます。
kurimatsu

2022/12/28 07:23

>phpMyAdminでdumpを試してみようと思います。 あまり意味のないことだったかもしれませんが、こちらはうまく吐き出されました。 ひきつづき、年明け検証してみます。 お忙しい中、コメントありがとうございました。
guest

回答1

0

さくらレンタルサーバ スタンダードプラン

であれば、データベースホスト名を指定する必要があります。

host=FTPホスト名

と記載されていますが、MySQL のホスト名は コントロールパネルで MySQL データベースを作成した際に指定されたホスト名を指定して接続する必要があります。FTP等で接続するホスト名とは異なるデータベース専用のホスト名です。

コントロールパネルのデータベース画面を確認してお使いのデータベースのホスト名を確認してください。

投稿2022/12/28 08:44

CHERRY

総合スコア25171

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

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

kurimatsu

2023/01/05 07:54 編集

年末年始の休暇中につき、お返事遅れましてすみません。 コメントありがとうございます。 >MySQL のホスト名は コントロールパネルで MySQL データベースを作成した際に指定されたホスト名を指定して接続する必要があります。 >>host=FTPホスト名 すみません、こちらの記載が誤りでした。 正しくは、 host=MySQL DBホスト名 とするべきでした。申し訳ありません。 当初より、下記がDBホスト名(***は任意の数字列)と考え、 ログインファイル(mysql-backup.conf.)には、こちらを記載しておりました。 mysql***.db.sakura.ne.jp 上記は、さくらのサーバコントロールパネル > Webサイト/データ >データベース にある、 データベースサーバの下に記載の接続先名称です。 つまり、ログインファイル(mysql-backup.conf.)には、 phpMyAdminログイン画面でログインに必要な情報をそのまま記載しており、 当然、phpMyAdminへのログインもできております。 >FTP等で接続するホスト名とは異なるデータベース専用のホスト名です。 たしかに、FTPホスト名(FTPサーバ名)は、ユーザ名.sakura.ne.jp という接続先名称になっていますが、 先述のとおり、ログインファイル(mysql-backup.conf.)には、FTPホスト名は記載しておりません。 いまだに問題解決できず、相変わらずゼロバイトの空ファイルを吐き出し続けております。((+_+)) ひきつづき、よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問