• 締切済み

mysql4 から5のバージョンアップで大失敗?

「WP+さくらインターネット」の組み合わせでホームページをすでに5年も展開していました。 Wordpressのバージョンが古く、そのためデータベースのバージョンアップを求められ様々なサイトを参考にしてMy SQLを4から5にバージョンアップを挑戦しました。 いろいろサイトを確認して慎重に作業を行い、UTF-8にてPHPMyAdminへログイン。 「構造」欄の「DROP TABLEを追加」と「IF NOT EXISTSを追加」にチェックを入れデータベースのエクスポート。 terapadというテキストエディタにて上から20行目あたりにあるCREATE DATABASEの前に--を入れました。 その後、旧データベースを削除。 そして新しいデータベースを作成。 PHPMyAdminに再度ログインし、新しいデータベースを選択。「操作」タブにて「照合順序」をutf8_generalciに変更し、sqlファイルをインポートしたところ 「#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--CREATE DATABASE `sankei-kouki`' at line 4 」と出てきました。 なぜだ?なぜだ?と再度さまざまなサイトをみながら対応策を調べてみました。 再度テラパッドにてsqlファイルを確認すると下記のものです。ちなみに「〇〇〇〇」は私のHPにあった任意の文字列です。 -- phpMyAdmin SQL Dump -- version 2.11.11.3 -- http://www.phpmyadmin.net -- -- 繝帙せ繝・ mysql68.db.sakura.ne.jp -- 逕滓・譎る俣: 2014 蟷エ 6 譛・18 譌・ 10:58 -- 繧オ繝シ繝舌・繝舌・繧ク繝ァ繝ウ: 4.0.27 -- PHP 縺ョ繝舌・繧ク繝ァ繝ウ: 5.3.22 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- 繝・・繧ソ繝吶・繧ケ: `〇〇〇〇` -- --CREATE DATABASE `〇〇〇〇`; --USE 〇〇〇〇; いくつかの参考サイトにあった「文字化け」というのは、このことを言っていたのかもしれません。 注意していたのはインポート後の「文字化けをしないように」という事で、ここでは文字化けを気にせず「CREATE DATABASE」と「USE」の前に--を入れる事だけに集中していました。 すでに旧データベースは削除済み。もう私のホームページはすべてが終わってしまったのでしょうか? 助けてください(大泣)。

  • MySQL
  • 回答数1
  • ありがとう数14

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

元のDBに間違ったデータが投入されていないかぎり、エクスポートされたデータは 相応の整合性があるデータだと思われます。 データを確認するためのエディタで、文字コードを何パターンか指定して 開いてみて文字化けのないデータが得られるか確認してみてください。 エディタ上で問題がなくなったら、それをUTF8で保存しなおし、 適当なオプションをつけて新しいDBに読み込めばよいでしょう

chuckberry909
質問者

お礼

分かりました。一度トライをしてみます。テラパッドではエディタとしてOKでしょうか?

関連するQ&A

  • データベースのインポートができません(MySQL)

    ●質問の主旨 下記のサイトを見ながら、データベースのテーブルを インポートしようとしていますが、エラーが出ます。 この場合、phpmyadminのどこを確認すればよいでしょうか? ご存知の方、ご教示願います。 http://www.dbonline.jp/phpmyadmin/export-import/index3.html ●開発環境 windows8 xammp1.8.1 ●エラーの内容(添付画像) エラー 実行した SQL: -- -- データベース: `mydb10` -- CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; MySQL のメッセージ: #1007 - Can't create database 'mydb10'; database exists ●インポートの内容(mydb.sql) -- phpMyAdmin SQL Dump -- version 3.5.2.2 -- http://www.phpmyadmin.net -- -- ホスト: 127.0.0.1 -- 生成日時: 2013 年 4 月 20 日 08:27 -- サーバのバージョン: 5.5.27 -- PHP のバージョン: 5.4.7 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- データベース: `mydb10` -- CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `mydb10`; -- -------------------------------------------------------- -- -- テーブルの構造 `db10` -- CREATE TABLE IF NOT EXISTS `db10` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `address` text NOT NULL, `tel` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- テーブルのデータのダンプ `db10` -- INSERT INTO `db10` (`id`, `name`, `address`, `tel`) VALUES (1, 'あああ', 'いいい', '111'), (2, 'ううう', 'えええ', '222'), (3, 'おおお', 'かかか', '333'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    • ベストアンサー
    • MySQL
  • perlのDBIよりMysqlにアクセスすると

    perlのDBIよりMysqlにアクセスすると DBD::mysql::db do failed: Data too long for column...のエラーが発生します。 つまり長すぎるデータを格納しようとしてエラーが出ているようです。 格納するデータの文字コードはutf-8です。 カラムは試しにvarchar(255)にしていますので、おそらく文字コードが原因ではないかと推測しています。 phpMyAdminから SHOW VARIABLES;コマンドを実行したところ 文字コード関係は以下の設定です。 character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server sjis character_set_system utf8 character_sets_dir C:\Program Files\MySQL\MySQL Server 5.0\share\char... collation_connection utf8_general_ci collation_database utf8_general_ci collation_server sjis_japanese_ci 開発環境は MySQL - 5.0.24-community-nt phpMyAdmin - 2.8.2.2 MySQL クライアントバージョン: 4.1.7 OS;WIN_XP Active Perl 5.8.8 です。 お気付きの点がございましたらご指摘宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • MySQL:VARIABLESの変更方法は?

    MySQLの「VARIABLES」の変更ができません。 どのようにしたら変更できるのでしょうか? phpMyAdminで適当なデータベースを選択し、 「set character_set_database=utf8;」を実行、 「SHOW VARIABLES LIKE 'character\_set\_%'」で確認しても変更されていませんでした。 <環境> OS:WindowsXP Pro SP2 XAMPP Version 1.4.14を使用しています。 Apache 2.0.54 PHP 4.3.10 Perl 5.8 MySQL 4.1.12 phpMyAdmin 2.6.2-pl1

    • ベストアンサー
    • MySQL
  • JAVAでMySQLに接続すると日本語が化ける

    似たような質問がいくつかありますが、どれも解決には至らなかったため質問させていただきます。 以下のような環境でMySQLにレコードを追加するプログラムを作成しましたが、どうしても日本語が文字化けします。 解決方法をご存知の方、心当たりのある方は、何卒ご教授お願いします。 MySQLの使用文字コードの設定は下記の通りです character_set_client: utf8 character_set_connection: utf8 character_set_database: utf8 character_set_filesystem: binary character_set_results: utf8 character_set_server: latin1 character_set_system: utf8 データベースおよびテーブルは下記のように作成しました create database test default character set utf8; create table test ( text text ); Javaのソースコードは以下です import java.sql.*; public class MySQL {  public static void main(String[] args) {  try {   Class.forName("com.mysql.jdbc.Driver");   Connection db = DriverManager.getConnection("jdbc:mysql://localhost/?useUnicode=true&characterEncoding=UTF-8", "root", "");   Statement sql = db.createStatement();   sql.execute("use test;");   sql.execute("insert into test values('ほげほげ');");   ResultSet results = sql.executeQuery("select * from test");   db.close();  } catch (Exception e) {   System.out.println("can't connect the database (" + e + ")");  } } } これを以下のように実行します $ javac -encoding UTF-8 MySQL.java $ java -Dfile.encoding=UTF-8 MySQL これでもかというぐらいUTF-8で統一してますが、 それでも、???? のように文字化けします。 試せることは全てやってみましたがどうにも解決できません。 ご助力よろしくお願いいたします。

  • MYSQLの文字化けについて

    MYSQLの文字化けについて質問させてください。 MYSQL COMMAND LINE CLIENTでMYSQLに作ったデータベースに下記のSQL文でデータを入れると、下記のエラーが出ます。 sql 「insert into テーブル名 (id、type)values (1,'男性’);」 エラー文 incorrect string value: '入力文字が文字化けして表示’for column 'type’at row 1 文字化け対策として、調べたところ、下記のように「my.ini」に記述すると言うことでしたので、試してみました。 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 skip-character-set-client-handshake [mysqldump] default-character-set =utf8 ちなみにその他情報です。 MySQLのバージョン MySQL 5.1 MySQLで有効になっている文字コード character_set_client | utf8 character_set_connection | utf8 character_set_database | utf8 character_set_filesystem | binary character_set_results | utf8 character_set_server | utf8 character_set_system | utf8 何かお解かりになることがありましたら、宜しくお願いします。

  • mysqlコマンドラインのことで・・・・

    はじめまして。 今、LinuxのCentOSでmysqlをインストール(yumで)しコマンドラインでデータベースを作成し、insert文で日本語を入力したのですが、なぜか文字化け?をしてしまう現象が起きております。 いろいろ調べた結果どうやらダブルクウォートとか()で囲むとばけるみたいです。 現象) mysql> insert into test (1,"聽聽聽・ ") ※本来は↓ mysql> insert into test (1,"あああああああ"); でも、ふしぎなことにメモ帳で書いたものを貼り付けると文字化けはせず、正常うまくいきshow コマンドでデータを見ることができます。 他にもデータベース名を日本語にしてもうまくいきます。 mysql> create database あああああ; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | | あああああ | +--------------------+ 4 rows in set (0.00 sec) ちゃんと消すこともできます。 insertだったり、updateなどでデータ(””や()で囲むと?駄目?)をコマンドラインで更新すると化けてしまいます。 もしお分かりになる方がいらっしゃいましたら宜しくお願いします。 ■サーバ情報 Linux CentOS 5.3(final) カーネル 2.6.18-164.el5 MySQL version 5.0.77 mysql> show variables like 'char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.06 sec) ■my.cnfの設定 [client] default-character-set = utf8 [mysqld] default-character-set = utf8 skip-character-set-client-handshake [mysql] default_character_set = utf8 ※関係ないと思いますが一応i18nの設定も cat /etc/sysconfig/i18n LANG="ja_JP.UTF-8" SUPPORTED="ja_JP.UTF-8:ja_JP:ja" SYSFONT="latarcyrheb-sun16" ※ターミナル設定もutf8になっております。 宜しくお願いいたします。

  • PHPでMySQLのテーブルをダンプする

    宜しくお願いします。 ※PHP5、 MySQL5、 Win7、 ローカル環境 本番環境(公開レンサバ)上では、cronを使って、自動的にバックアップを取ろうとしています。 1つのデーターベースのなかに、 10個のテーブルがあります。 テーブル別にダンプしたく思います。 そこで下記のPHPスクリプトを考えています。 しかし、ダンプ処理は行われているが(ファイルは出力されているという意味。成功していない)、 テーブル別に処理が進んでいるようではなく、 しかも、 INSERT文や、そもそもテーブルに格納されている値がSQLで書き出されていません。 まったく空白ということではないのですが・・・。※出力されたテキストは書き参照 ※テーブル名($db[$i]に格納されている)ごとにループ処理していますが、そこは省略して書きます。 $fileName = $db[$i]."-".$now.".sql"; $cmd = "D:/xampp/mysql/bin/mysqldump ".$dbName.".".$db[$i]." --host=".$dbHost." --user=".$dbUser." --password=".$dbPass." > ".$BackPath.$fileName; if (system($cmd)) ErrorOut("次のコマンド実行でエラーになりました。$cmd"); --------------出力されたテキスト------------------------- ▼ -- MySQL dump 10.13 Distrib 5.1.41, for Win32 (ia32) -- -- Host: localhost Database: ここは「データーベース名.テーブル名」が記載されています。 -- ------------------------------------------------------ -- Server version 5.1.41 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; ▲ ---------------------------------------------- 今自分のなかで思いつく原因は、 $cmd = "D:/xampp/mysql/bin/mysqldump ".$dbName.".".$db[$i]." --host=".$dbHost." --user=".$dbUser." --password=".$dbPass." > ".$BackPath.$fileName; の中の、 ".$dbName.".".$db[$i]." という記述で、  ここは、データーベース名とテーブル名を取得したく、このように書きましたが、 正直 適当です。調べまくりましたが見つからず・・・・。 どなたか、PHPで、mysqldumpを使い、テーブル別にダンプさせる書き方を教えてください。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • MySQLデータベースリカバリ文字コード指定

    Windows環境でのMySQLのデータベースバックアップで、以下のように文字コードを指定してバックアップが行われています。 mysqldump -uユーザ名 -pパスワード --default-character-set=sjis データベース名 > ****.sql バックアップからリストアするのですが、同じサーバ上で既存の同じデータベース(名)があるので 一度DROP DATABASE データベース名;してからCREATE DATABASE データベース名;を行うつもりです。 以下の2点について教えてください。 (1)create databaseする際に文字コードを指定する必要がありますでしょうか? create database データベース名 CHARACTER SET sjis; (2)リストア実行時に文字コードを指定する必要がありますでしょうか? mysqldump -uユーザ名 -pパスワード --default-character-set=sjis データベース名 < ****.sql 因みに ※my.iniには文字コードの指定で、sjis指定の表記がありました。 ※Moveble TypeでMySQLをデータベースとして使用しています。  よろしくお願いします。

    • ベストアンサー
    • MySQL
  • phpmyadmin の文字コード

    現在xammpを利用して製作を進めています。 データベースに日本語を打ち込んだ際???と表示がされており原因を探ったところphpmyadmin の文字コードの問題だと行き着きました。 で、『サーバー接続照合順序』を utf8 に設定しようとしたのですが、なぜか強制的に utf8mb4 に変更されてしまいます。 表示は???のままです。 SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8; をsqlに打ち込んでもやはりmb4になってしまいます。 なぜでしょうか?どのように対応したらいいですか?

    • 締切済み
    • PHP
  • MySQLのCharacter_set

    PHPとSQLで投稿サイトを作成中の初心者です。 いままでsjisで統一してきたものを、character_setをutf8に変換したく、 MySQL\MySQL Server 5.0\my.ini ファイルの default-character-set=sjis となっていたところをすべて default-character-set=utf8 に変え、 show variables like 'character_set%'; で確認しましたが、下記の状態となり、いくつかutf8 にかわってくれません。 +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | sjis | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | sjis | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ | +--------------------------+---------------------------------------------------------+ 残りのdatabase, filesystem, serverもutf8にしたいと思い。 my.iniファイルが他の場所にあるのかいろいろさがしていますが、まだ見つけられません。 どこを調べて、どこを変えればよいのか、お分かりの方いましたらご教授ください。 また、もしかすると全てutf8にしなくても良いのかも知れませんが、いろいろ調べていると皆さん統一されて いるようにお見受けしたので恐らく統一すべきなんだろう、と解釈しています。 MySQL Command Line Clientで 設定ファイルを読みにいく順番と場所を示してくれるコマンドとかないでしょうか? 稚拙な質問で恐縮ですが、どなたかご指南よろしくお願いいたします。

    • ベストアンサー
    • MySQL