こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MySQLにおいてバッチ処理でデータベースを構築する際のトラブル

MySQLにおいてバッチ処理でデータベースを構築する際のトラブル

MySQLに関しては素人です。
バッチ処理でデータベースを構築したいとおもって、バッチを指示通りの場所において、
net start mysql と打って、それから、
mysql -u root -p SampleDB040 < "C:\mysql\data\sampledb040\ファイル名.sql"
として、パスワードを入れて、データベースを構築したいと思ったのですが、エラーが出て出来ません。
このエラーをどうすれば解消できるのか教えてください。

以下のようなメッセージが出ています。

ERROR 1005 (HY000) at line 10: Can't create table 'sampleDB040.t01prefecture' (errno: 121)

以上

ちなみに、同一ファイル内に同じ名前のファイルはありませんし、他のデータベースにもありませんでした。

よろしくお願いします。

投稿日時 - 2010-03-28 22:38:57

QNo.5786287

すぐに回答ほしいです

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

>);

全角のセミコロンになっていませんか?
あやしければ\gでやってみてください。

投稿日時 - 2010-03-31 19:57:05

お礼

解答ありがとうございます。
全角になってたみたいです。\gでうまくいったように思います。
ですが、さらにエラーが出ました。データベースには入っています。

ERROR 1146 (42S02): Table 'sample040.user' doesn't exist

投稿日時 - 2010-04-01 10:47:13

ANo.6

このQ&Aは役に立ちましたか?

9人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

> Column count doesn't match

バージョンや状況によって若干フィールドの数がちがうようですね。
INSERT INTO `user`(`Host`,`User`,`Password`)
VALUES (
'localhost', 'hoge', PASSWORD( 'hogehoge' )
)

してから、必要な権限をlocalのhogeに対して付加してください。

投稿日時 - 2010-03-31 12:43:20

お礼

解答ありがとうございます。
rootでデータベースに入ってから、

INSERT INTO `user`(`Host`,`User`,`Password`)
VALUES (
'localhost', 'hoge', PASSWORD( 'hogehoge' )
);

以上を入力したんですが、エラーが出ます。以下エラー文です。

ERROR 1064 (42000): You have an error in syntax: check the manual that
corresponds to your MySQL server version for the right syntax to use near 'INSER
T INTO `user`(`Host`,`User`,`Password`)
VALUES (
'localhost','hoge',PASSW' at line 4

投稿日時 - 2010-03-31 19:10:34

ANo.4

手順
mysql -u root -p からログイン
use mysql
INSERT INTO `user` VALUES (
'localhost', 'hoge', PASSWORD( 'hogehoge' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '0', '0', '0', '0'
) \g
flush privileges \g

みたいな感じで・・・

投稿日時 - 2010-03-31 09:26:20

お礼

解答ありがとうございます。

INSERT INTO `user` VALUES (
'localhost', 'hoge', PASSWORD( 'hogehoge' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '0', '0', '0', '0'
) \g
が入りません。エラーの文章は以下です。

ERROR 1136 (21S01): Column count doesn't match value count at row 1

投稿日時 - 2010-03-31 11:12:34

ANo.3

もしそうであれば、localhostからrootでアクセスする権限が
ないように見受けられます。
コンソールからrootでアクセスできますか?

mysql -u root -p
で、ログインできますか?

もしできないなら逆にどういうログインならできるのでしょうか?
ログインできるならmysqlデータベースのuserテーブルに
Host=localhostのUser=rootの設定をしてみてください

投稿日時 - 2010-03-30 14:43:44

お礼

mysql -u root -p からのログインは出来ます。

すみません、この文章の意味がよくわからないのですが・・・。
「ログインできるならmysqlデータベースのuserテーブルに
Host=localhostのUser=rootの設定をしてみてください」

投稿日時 - 2010-03-30 21:59:22

ANo.2

>-pを抜く

いえ、-pの後ろのスペースです。

mysql -u root -pSampleDB040 < "C:\mysql\data\sampledb040\ファイル名.sql"

という感じ?

投稿日時 - 2010-03-29 15:38:46

お礼

解答ありがとうございます。

前回のお礼の際のコメントが間違っていました。すみません。
-pを抜いたのではなくて、-pの後ろのスペースを抜いて試しました。
それで、以下のような文が出てきました。

ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YES)

投稿日時 - 2010-03-30 14:26:06

ANo.1

-pの後ろのスペースを抜いてみてはどうでしょう?

投稿日時 - 2010-03-29 12:58:57

お礼

解答ありがとうございます。
-pを抜くと、エラーが出ました。
以下のような文でした。

ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YES)

投稿日時 - 2010-03-29 15:26:33

あなたにオススメの質問