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

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

ただいまの
回答率

90.52%

  • MySQL

    5848questions

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

MySQL コマンドラインでのSQL実行方法

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,114

duster

score 5

MySQL コマンドラインでのSQL実行方法を教えて下さい。

下記、図1のようなDB、SQLを組み、そのSQLをコマンドラインで実行したいと考えております。

MySQL command Line Client 5.7 を立ち上げ、下記のコマンドを入力するのですが、

mysql -u localhost -D test -ppassword < C:\sqltest\testsql.sql
※テストDBのPWはpasswordです。

実行できません。
図2の点線(-------)で囲まれたもののみが表示されるだけです。

outfile disabledはエラーとかかれておりますが、A5SQLでは無事動作しております。
別のSQLファイルで試したものの、outfile disabledは表示されず、点線の間の部分だけ
表示されるのみで結果が表示されません。

コマンドラインでのSQL実行方法を教えて下さい。

===図1===
イメージ説明

===図2===
イメージ説明

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

もしかしたらですが、添付の画像からですが、コマンドプロンプト画面でなく、「MySQL 5.7 Command Line Client」 の画面を起動していませんでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/01 00:10

    ご返答頂きありがとうございます。
    はい、コマンドラインで実行しようとしております。
    そもそもコマンドラインで実行し結果取得は不可能ですか?

    キャンセル

  • 2017/03/01 00:14

    MySQL 5.7 Command Line Clientからファイルを実行するのであれば
    >source C:\sqltest\testsql.sql
    とするのでは?

    キャンセル

  • 2017/03/01 00:20

    ERROR 1046 (3D000):No database selected
    と表示されました。

    キャンセル

  • 2017/03/01 00:26 編集

    すみません 最初に
    use test;
    わすれてました。

    キャンセル

  • 2017/03/01 00:35

    ありがとうございます。
    無事表示できました。

    キャンセル

  • 2017/03/01 00:39

    Windowsメニューで「コマンドプロンプト」を選べば、最初のコマンド mysql ... も実行できると思います。

    キャンセル

+1

そのSQLファイルにUSEコマンドが入っていないからでは?

mysql -u user -ppass database_name < hoge.sql
としてデータベース名追加して実行するか、

SQLファイルの先頭の行に
USE database_name;
を追加してから
mysql -u user -ppass < hoge.sql
と実行するかです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/28 22:31

    ご回答頂きありがとうございます。
    useコマンドは入れておりませんでした。
    今回の場合、
    mysql -u localhost -D test -ppassword test < C:\sqltest\testsql.sql
    となるのですか?
    実行してみましても結果は表示されませんでした。
    コマンドに不備があればご指摘下さい。

    キャンセル

  • 2017/02/28 22:40

    ユーザー名はlocalhostなのでしょうか?

    キャンセル

  • 2017/02/28 22:46

    ああ、MySQL Command Line Clientをしようしているのですか。すいません、コマンドプロンプトでmysqlコマンドを実行してください。

    キャンセル

  • 2017/02/28 22:46

    それが一番あやしそうですね

    キャンセル

  • 2017/02/28 22:48

    画像見ると、データベース名のように見えますよね。

    キャンセル

  • 2017/02/28 22:49

    -uroot
    なのかなと

    キャンセル

  • 2017/02/28 22:53

    あ、そですね。

    キャンセル

  • 2017/02/28 23:11

    色々考えて頂きありがとうございます。
    ユーザー名がrootとなりますと、

    修正前:mysql -u localhost -D test -ppassword test< C:\sqltest\testsql1.sql
    修正後:mysql -u root -D test -ppassword test< C:\sqltest\testsql1.sql

    となりますが、出力されません。
    なにか間違いなどございますか?

    キャンセル

  • 2017/02/28 23:17

    -D testは必要ないと思います。

    キャンセル

  • 2017/02/28 23:32

    下記で実行しましたが、表示されませんでした。
    mysql -u root -ppassword test< C:\sqltest\testsql.sql
    なにが原因でしょうか?

    キャンセル

0

コマンドラインのmysqlは実用的ではないのでphpMyAdminのUIを
利用するか、odbcなど経由してクライアント用のDBを利用したほうがよいでしょう。

ちなみにuse mydbなどdb選択してますか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/28 22:28

    ご回答頂きありがとうございます。
    確かに実用的でないと思いますが、
    今回は勉強目的でコマンドラインを使用しております。

    DB選択はしておりません。
    必要であるならば、私のDBの場合、「use test」となるのですか?

    キャンセル

  • 2017/02/28 23:40 編集

    いや、msql -uroot -ppassword test < xxxxとしているので、コマンドでデータベースは選択しています。そのSQLファイルの各行の最後に;はあります?

    キャンセル

  • 2017/02/28 23:46

    ちなみにいまコマンドプロンプトのプロンプトは
    MariaDB (dbname)>
    となっていたら、exitと入力してmysqlから抜けてください。

    キャンセル

  • 2017/03/01 00:07

    ;はあります。
    コマンドラインで実行していまして、
    MySQL>となっております。

    キャンセル

  • 2017/03/01 00:12

    exitと入力して、MySQLから抜けてください。(プロンプトが C:\xxx >となればOK)

    キャンセル

  • 2017/03/01 00:24

    exitと入力しましたら、コマンドライン自体のウィンドウが閉じられました。

    コマンドプロンプトで実行すると、「’mysql’は内部コマンドまたは外部コマンド、、操作可能なプログラムまたはバッチファイルとして認識されていません」と表示されます。

    キャンセル

  • 2017/03/01 00:33

    そしたら、mysqlコマンドにパスを通すか、コマンドラインクライアントで@A.Ichiさんの方法で実行してみてください。

    キャンセル

  • 2017/03/01 00:38

    無事@A.Ichiさんの方法で解決致しました。
    長い時間、何度もご助言を頂きありがとうございます。

    キャンセル

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

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • MySQL

    5848questions

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