データベースのインポートエラー(MySQL)|質問

このQ&Aのポイント
  • データベースのインポートができず、エラーが発生しています。phpmyadminの確認方法を教えてください。
  • Windows8上でxammp1.8.1を使用している途中で、データベースのテーブルをインポートしようとしたところ、エラーが表示されました。具体的なエラーメッセージや画像も含めて、解決策を教えてください。
  • phpmyadminを使用してデータベースのインポートを試みていますが、以下のエラーメッセージが表示されています。「#1007 - Can't create database 'mydb10'; database exists」。このエラーの原因と解決策を教えてください。
回答を見る
  • ベストアンサー

データベースのインポートができません(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
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

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

>の構文は、mydb.sql(インポートのためのsqlファイル)内に そうですね、sqlファイルをテキストエディタで開いて データベース名の前に「IF NOT EXISTS」を書きこむことになります なおこのエラーが回避されても ・同じデータベース内に同じテーブル名がある ・同じテーブル内で同じユニークデータがある 場合もどうようのエラーがでると思います。 そもそもバックアップしたデータをリストアするのに別のマシンでやっているのでは ないのですか? 同じマシンでやる限りデータを戻すときに競合するのは避けられませんね 思い切ってデータベースごと削除してしまった方が分かりやすいかもしれません。

dradra33
質問者

お礼

たびたびのご回答ありがとうございます! 〉思い切ってデータベースごと 〉削除してしまった方が分かりやすいかもしれません。 ご指摘の通り、データベースを削除すると、 「IF NOT EXISTS」がなくても インポートすることができました。 〉そもそもバックアップしたデータを 〉リストアするのに別のマシンでやっているのでは 〉ないのですか? …同じマシンでやってました。 phpmyadminの操作練習の一環として やってましたので。 その他のアドバイスも 今後の参考にさせていただきます。

その他の回答 (1)

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

>#1007 - Can't create database 'mydb10'; database exists すでに(その名前の)データベースが存在するとあります CREATE DATABASE IF NOT EXISTS `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; のような構文にしないとエラーになります

dradra33
質問者

お礼

yambejpさま ご回答ありがとうございます! 補足質問もご確認いただければ 幸いです。

dradra33
質問者

補足

CREATE DATABASE IF NOT EXISTS `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; の構文は、mydb.sql(インポートのためのsqlファイル)内に 入れるのでしょうか? また入れるとすれば、どこに入れたらよいのでしょうか? たびたびの質問で恐れ入ります。

関連するQ&A

  • 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」の前に--を入れる事だけに集中していました。 すでに旧データベースは削除済み。もう私のホームページはすべてが終わってしまったのでしょうか? 助けてください(大泣)。

  • 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で統一してますが、 それでも、???? のように文字化けします。 試せることは全てやってみましたがどうにも解決できません。 ご助力よろしくお願いいたします。

  • 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
  • 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のデータベースの内容をphpでだしたいのですが。。。

    初歩的な質問で、自分なりにネットで調べたり、DBに詳しい友人にも聞いたのですが、どうしてもできなかったため質問させていただきます。 【やりたいこと】 データベースに中の文字を変数として表示させたい 【結果】 「Resource id #3」とでる 【データベースの中身】(テーブル名 genre) genreid   genre 1     アクション 2      RPG 3     アドベンチャー ・       ・ ・       ・ 【作ったソース】 <?php mysql_connect('****','****','****'); mysql_select_db('****'); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_connection=utf8"); mysql_query("set character_set_results=utf8"); $genre_name_sql = "select * from genre where genreid = 1"; $genre_name = mysql_query($genre_name_sql); echo $genre_name; ?> 私としてはこれで 「アクション」 と出したいのですが、何かが悪いのか出ません。 お忙しいところ恐縮ですが、 よろしくお願い致します。 (情報が足りない場合はおっしゃってください。。。)

    • ベストアンサー
    • MySQL
  • mysqlコマンドだけ文字化け

    WinXPでxampp1.6.6aを使っています。 文字コードはutf8で設定したく説明しているサイトを探しmy.cnfを 下記のように修正および追加しました。 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 phpadminから確認すると日本語も文字化けせずに表示されるのですが なぜかコマンドから確認すると日本語が文字化けしてしまいます。 おなじような質問がありなんとかできるものかと思い確認したのですが 特に設定が間違っているようではなく解決策がみつかりません・・・ 文字化けせずに表示させるためにはどうすればいのでしょうか? 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 | C:\Program Files\xampp\mysql\share\charsets\ | +--------------------------+----------------------------------------------+

    • ベストアンサー
    • PHP
  • 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 何かお解かりになることがありましたら、宜しくお願いします。

  • MAMPのMySQLで文字化けする

    すみません、教えてください(><) mac( os X 10.7.5)でMAMP+Eclipse+PHPを使って以下のようにMySQLにデータ挿入 mysql_connect('localhost','root','root') or die(mysql_error()); mysql_select_db('mymy'); mysql_query('SET NAMES UTF-8'); mysql_query('INSERT INTO item SET id=1, name="あいうえお"'); をしたのですが、 phpMyadminからデータを確認してみると日本語が文字化けしてしまいます。 (phpMyadminからデータを挿入した場合はちゃんと表示されます。) 色々と調べ、 Eclipseの環境設定でワークスペースの文字コードやphpの文字コードをUTF-8にしたり、 MySQLのmy.cnfファイルの中に以下 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_unicode_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 を追加して再起動し、DBを一旦削除して再度作り直して挿入してみたりとやったのですが、改善されません。 サーバ接続の照合順序 は「utf8_general_ci」として作成しています。 コンソールからMySQLへ接続してDBの文字コードを確認してみると 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 | | character_sets_dir | /Applications/MAMP/Library/share/charsets/ | というかたちになっています。 他にどういった点を改善すればいいのでしょうか? もうお手上げ状態でどうすることも出来ずにいます。。。

  • 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
  • CSVをMYSQLにインポートすると文字化けする

    XAMPPでmysqlを使ってます。 CSVをインポートするとUTF-8が文字化けしてしまいます。詳しくわかる方いましたらお知恵をお貸しください。 まず、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 | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ 8 rows in set (0.05 sec) となっています。 次に、アップロードするCSVですが、 1回目は、terapadを愛用しているので、terapadの機能でUTF-8に変換して保存したのですが、インポートすると文字化けしてしまいました。 次は、エクスプローラーでUTF-8に変換したファイルを読み込むと文字化けしており、エクスプローラーのエンコードで文字コードをUTF-8に変換し保存したものを、CSVに変換してインポートしたのですが、やっぱり文字化けしてしまいました。 私の知識ではこれ以上手がないのでなにかあたらしい突破口や間違いがあれば教えてください。

    • ベストアンサー
    • MySQL