
mysqlのデータベースを復元したのですが、SQLでテーブルを確認するとレコードが0件になっていました。
実際のテーブルファイル自体は10メガ以上あるものもあるため、何かの設定等が壊れているだけだと思われるのですが、どんな原因が考えられますか。
前の質問が自動的に締め切られてしまったため、タイトルを変更して再度質問させてもらっています。
前の質問をした時にはSQLでのアクセスすらできなかったのですが、パーミッションを777にしたらSQLは通るようになりました。その後660に戻しても問題なくSQLが通るようになりました。これも意味不明です。
前の質問もお読みいただけると幸いです。
https://oshiete.goo.ne.jp/qa/11176576.html
No.6ベストアンサー
- 回答日時:
mysqlhotcopy によるバックアップは、メモリ上のデータをファイルに書き出して、他の人が書き込まないようにテーブルをロックしてから、/var/lib/mysql/ のファイルをコピーします。
だから、復元するときはファイルを元の場所に戻すだけです。復元るときに CREATE 文等は不要です。
正常に復元できないのは、復元する場所(ファイル名)が間違っているか、そもそも、正常にバックアップできていないかです。
mysqlhotcopy によるバックアップは、ストレージエンジンが MyISAM の場合に使用できます。InnoDB には対応していません。
既存テーブルのストレージエンジンは下記コマンドで確認できます。
mysql> show create table テーブル名 \G
mysql> select table_schema, table_name, engine from information_schema.tables ;
そもそも、正常にバックアップできていない気がしてまいりました。
正常にバックアップできていない原因として何が考えられますか。
バックアップの手順としては、次の9行のPerlスクリプト中でmysqlhotcopyを実行しているだけなのです。
#!/usr/bin/perl -w
use strict;
push(@_, (localtime)[3 .. 5]);
system('mysqlhotcopy try /tmp >/dev/null');
chmod(0755, '/tmp/try');
chmod(0644, </tmp/try/*>);
system('sudo -u webmaster scp -r /tmp/try cat:mysql/try' . join('_', $_[2] - 100, $_[1] + 1, $_[0]) . ' >/dev/null');
unlink(</tmp/try/*>);
rmdir('/tmp/try')
mysqlhotcopyで作成されたディレクトリーを日付つきの名前に変更してリモートホストへ退避させているだけで、特段あやしい箇所は無いと思われるのです。
やはり日本語のテーブル名がmysqlhotcopyの実行結果に悪影響を与えているのでしょうか???
ちょっと実験してみます。
No.5
- 回答日時:
とりあえず、Accessとか、Excelあるでしょ?それでリレーション貼って、読み込んでみたら?
dataがあれば、引っ張れるでしょ。
MySQL Connector/ODBCというツールを入れて接続を試みました。
iptablesもSELinuxも停止したのですが、
Connection Failed
[MySQL][ODBC 8.0(a) Driver]Bad handshake:
とエラーメッセージが出て接続できませんでした。
Excelでリレーション貼って、読み込むやり方を教えていただけると・・・^^;
No.4
- 回答日時:
mysqlhotcopy でバックアップしたファイルを復元するなら、mysqlサービスを停止してから、データファイルを上書きして、mysqlサービスを起動する、などの手順が必要です。
mysqlサービスを停止して復元、停止しないで復元、
復元手順に関しては、データファイルを手動で削除してからコピー、CREATE文でテーブルを作成してから上書きコピー、
ここ数日間で、いろいろ試しているのですが、なかなかうまくいきません。
分かった事といえば、ファイルを手動で削除してからコピーすると、SQLが読み込みエラーで通らないので、CREATE文でテーブルを作成してから上書きコピーした方が良いという事ぐらいでしょうか。
上書きコピーした場合にはSQL自体は通るものの、返ってくるレコードは0件なのです。
あと思い当たることは、テーブル名に日本語を使っており、ファイル名は文字化けしています。
ファイル名の文字化けは正常運用時から発生しているもので、今回のトラブルでは問題視していません。
No.3
- 回答日時:
SQLの書き方が問題でレコード自体が本当に存在するのか、別の方法で確認できてるのかな?
他のアプリとかUIとか。
10メガあるとはいえ、レコード自体が消えてるってことはないですか?
実際にDELETE文でテーブルを初期化してみると、実ファイルが0バイトになることから、レコード自体は存在していると思われます。
mysql> show tables;
+---------------+
| Tables_in_try |
+---------------+
| ユーザー |
| 競走 |
| 結果 |
+---------------+
3 rows in set (0.00 sec)
mysql> select * from `競走`;
Empty set (0.00 sec)
これはSQL実行時のUI画面を、そのままコピーしたものです。
問題を特定するために3テーブルだけ残して、他のテーブルは全て削除しています。
レコード自体が本当に存在するのか、簡単に確認する方法を教えていただければと存じます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- PHP Q&Aサイトを作成していてURLの生成方法について迷っているのでアドバイスお願い致します 1 2023/08/10 16:42
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つ前に戻るには…
-
python2.5を使用してSQLite3の...
-
うまくいきません教えてくださ...
-
MySQLについての質問です!!
-
MYSQLで異なるテーブル間のデー...
-
条件があった場合だけINSERTしたい
-
SQL文の書き方(こんなこと出来...
-
会社の飲み会の幹事になり、座...
-
テーブルの作り方
-
お金持ちのテーブル
-
MySQL:文字列の自動収集
-
ACCESSで3ファイルを結合して、...
-
MySQLのテーブルに、CSV形式の...
-
条件によって抽出するデータを...
-
テーブルデータの絞込み条件
-
Oracleで上書きImportはできま...
-
グループごとの最高得点者一覧...
-
off of と fromの違いを教えて...
-
下記、問題に対しての解答が以...
-
ACCESS 2003について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つ前に戻るには…
-
最大値を持つレコードを削除したい
-
mysqlでJOIN文
-
mysqlのフィールド名
-
テーブルが作成できない
-
mysqlで外部キーをつけたカラム...
-
2つのテーブルの連動
-
PHP上のSQLで、SELECT文をいく...
-
MySQLで、テーブル内のフィール...
-
SQL一発でカレンダー表示は可能...
-
MySQLのテーブルタイプの変更に...
-
外部キー、親を調べるにはshow ...
-
SQL文による残業時間の算出につ...
-
python2.5を使用してSQLite3の...
-
ビューに追加・削除が出来ません。
-
グループからランダムに抽出す...
-
1000万件のデータをmysqlで効率...
-
連番の質問
-
mysqlのデータベースを復元した...
-
DBの文字コード切り替え
おすすめ情報