2013-02-04 8 views
49

私は、私が作成したデータベースから、以前に保存した特定の.sqlファイル、すなわち'metropolises.sql'のソースしようとすると、次のエラーが表示されます。mysql:SOURCEエラー2?

Failed to open file 'metropolises.sql', error: 2

何が悪かったのか任意のアイデア?

+1

それは "particuar .sqlファイルのソースにしてみてください" とはどういう意味? –

+1

"検索"を意味しますか? – veljasije

+0

データベースにテーブルを作成しました。さて、データを作成するために、私は を入力しました。metropolises.sql; を端末に追加しましたが、上記のエラーメッセージが表示されました。テーブルにエラーがないことを確認してください。 –

答えて

68

テキストファイルからSQLステートメントを実行するためにthe source commandを使用しようとしていると仮定すると、与えられたエラー番号はPOSIXレイヤーから渡されているように見えます。

したがって、this resourceを使用すると、エラー値2は「そのようなファイルまたはディレクトリがない」ことを意味すると推定できます。

要するに、パスが間違っています。

それは現在の作業ディレクトリは、MySQLサーバのコンテキストでどうなるかはっきりしていないとして、絶対パスを提供してください。あなたのシェルの作業ディレクトリであると仮定しているかもしれませんが、これが真であると期待していることは明らかではありません。

+0

ありがとうございます。私はこれが愚かだと知っていますが、データベース内で作成したファイルを見つける方法はありますか? –

+0

絶対パスを指定します。完全なパス。ディレクトリを含む。 –

+5

補足として、完全なパスを引用符で囲まないでください。 'SOURCE /var/test.sql"; 'はエラーコード2で失敗し、' SOURCE/var/test.sql'は動作します(test.sqlがその場所に存在すると仮定します)。 –

0

はあなたが私はCで、ファイルabcd.sql作成した私のシステムでは

間違っている可能性があります使用されているファイル名やパスである場合があります。

\を、私はなりまし次にコマンドmysql> source c:\abcd.sqlを使用

+0

実際、私はsshでやっています。特定のデータベースで作成されたファイルのディレクトリを表示するにはどうすればよいですか? –

+0

@ PengHuiHow - あなたはそのファイルの実際のパスを知っていますか? –

28

ファイルの絶対パスを使用して、バックスラッシュを使用する代わりに、の転送のスラッシュを使用してください。

例:ソースC:バックスラッシュ

\ folder1の\ metropolises.sql
前方がスラッシュを持つ:ソースC:

+1

グローバル変数またはローカル変数(たとえば@PATH_TO_THE_FILE)にパスを保存し、 "source @ PATH_TO_THE_FILE"のようにsourceコマンドを使用できるかどうか知っていますか(これは動作しません)。ありがとう。 – aloplop85

+1

こんにちは、あなたはあなたの答えを手伝ってくれました!どうもありがとう! =) –

9

関連問題/folder1/metropolises.sqlをI 2のソースコマンドを実行中にエラーが発生しました。filenameにファイル名またはパスにスペースが含まれていても、filenameは引用符で囲まれてはなりません。

+0

ああ、これは私の問題だった、ありがとう! – sage88

+0

パスクォートのスペースが必要であると考える傾向があります。どのような頭痛! – PavoDive

3

私は、最初のファイルに

c:\windows>cd c:\akura\Db Scripts 

c:\akura\Db Scripts>mysql -u root -p root 

mysql>\. EXECUTER_NEW_USER.sql 

here EXECUTER_NEW_USER.sql my file name 
2

に達する私は、Windows上で同じエラーを持っていました。 私は(:mysqlの-uルート後のCMD上):でそれを解決し

mysql> SOURCE C:/users/xxx/xxxx/metropolises.sql; 

あなたは

-1

がパスのフォルダ名にスペースを削除し、右のファイルパスを入力してください、それは私のmacのために働きましたパス。

(Eg: change the folder name MySQL Server 5.1 to MySQLServer5.1)

0

私はこのクエリを使用してmysqlコマンドラインで、このエラーを得た:

source `db.sql`; 

は、私はそれを動作させるために、以下に上記の変更:私の窓8.1で

source db.sql; 
1

、 mysql 5.7.9 MySQL Community Server(GPL) ファイルパスの後に;を削除しなければなりませんでした。

これは失敗しました:ソースE:/jokoni/db/Banking/createTables.sql;

この勤務:(終了せずに、前方がパスにWindowsのバックスラッシュの代わりにスラッシュ)ソースE:/jokoni/db/Banking/createTables.sql

+0

あなたと同じですが、なぜですか? –

0

を使用すると、Debianの8(ジェシー)Linuxでは、にしている場合'metropolises.sql'のディレクトリにcdを入力してください。 mysqlを実行し、SOURCE ./metropolises.sql;

を実行します。の相対パスは、です。私はこれを試して、それは動作します。

-1

mysqlコンソールから操作をしようとすると同じメッセージが表示されますが、コマンドプロンプトを開いて同じ手順を実行してもエラーは発生しません。 C:\ Users \ SubhenduD> cd。 ./

C:\ユーザー> CD ../

C:> CD \ xamppの\ mysqlの\ binに

C:\ xamppの\ mysqlの\ binに> mysqlの-u -root へようこそMySQLモニタ。コマンドはで終わります。または\ g。 MySQL接続IDは68 サーババージョン:5.6.16 MySQLコミュニティサーバ(GPL)

著作権(c)2000,2014、Oracleおよび/またはその関連会社です。全著作権所有。

Oracleは、Oracle Corporationおよび/またはその関連会社の の登録商標です。その他の名称は、それぞれの所有者の商標である可能性があります。

'help;'と入力してください。ヘルプは '\ h'を入力してください。現在の入力ステートメントをクリアするには '\ c'と入力します。

mysql> use balticktravels;

mysql> source balticktravels.sql;

ITSはうまく機能します。あなたはそれをチェックするかもしれません。

2

おそらくファイルへのファイルパスです。あなたが使用するファイルの正確な場所がわからない場合は、Finderでファイルを検索してみてください、そして、ターミナルウィンドウにファイルをドラッグ

mysql> SOURCE dragfilePathHere 
1

あなたは浮浪者を使用している場合、ファイルがオンになっていることを確認してくださいサーバーを開き、ファイルへのパスを使用します。ファイルは、パブリックフォルダに格納されている場合たとえば、あなたはxxxは私にとっては、ファイル

0

の名前でファイルが共有ドライブ上に位置していたので、それがあった、それはアクセスできませんでした

sql> source /var/www/public/xxx.sql 

を持っています何らかの理由で、その経路に。 私はファイルをカットして、スペースのないパスのローカルドライブに配置し、解決しました。

0

私はコマンドソースを使用したときに同じエラーが発生し、ドラッグアンドドロップでSQLファイルパスを指定しました。

次に、デフォルトでドラッグアンドドロップで表示された単一引用符、ファイル拡張前のスペースを削除して機能させるだけでした。

SOLN:

ソース/ホーム/ XYZ /ファイルの.sql;(パスとファイル拡張子の前にスペース)