Saya ingin menjalankan file teks yang berisi query SQL, di MySQL.
Saya mencoba menjalankan source /Desktop/test.sql
dan menerima kesalahan:
mysql>. \ home \ sivakumar \ Desktop \ test.sql ERROR: Gagal membuka file '\ home \ sivakumar \ Desktop \ test.sql', kesalahan: 2
Adakah yang tahu kesalahan saya?
mysql
command-line
pengguna1160432
sumber
sumber
Jawaban:
Jika Anda berada di baris perintah MySQL
mysql>
Anda harus mendeklarasikan file SQL sebagaisource
.sumber
\
sebelum spasi, atau membungkus nama file dengan"
.Anda memiliki cukup banyak opsi:
mysql -h hostname -u user database < path/to/test.sql
sumber
-p
opsi, ini tidak disarankan: Pengguna lain pada host yang sama dapat menggunakan alat sistem sepertips
membacanya dalam kasus ini.-p
tanpa argumen meminta kata sandi untuk dimasukkan pada baris berikutnyaAnda dapat menjalankan pernyataan mysql yang telah ditulis dalam file teks menggunakan perintah berikut:
jika database Anda belum dibuat, masuk ke mysql Anda terlebih dahulu menggunakan:
kemudian:
kemudian:
yang seharusnya melakukannya!
Info lebih lanjut di sini: http://dev.mysql.com/doc/refman/5.0/id/mysql-batch-commands.html
sumber
mysql -u yourusername -p"yourpassword"
Pilihan favorit saya untuk melakukan itu adalah:
Saya menggunakannya dengan cara ini karena ketika Anda merangkai dengan "" Anda menghindari jalan yang salah dan kesalahan dengan spasi dan - dan mungkin lebih banyak masalah dengan karakter yang tidak saya temui.
Dengan @elcuco komentar saya sarankan menggunakan perintah ini dengan [spasi] sebelum jadi memberitahu bash untuk mengabaikan menyimpannya dalam sejarah, ini akan bekerja di luar kotak di sebagian besar bash.
jika masih menyimpan perintah Anda dalam sejarah, silakan lihat solusi berikut:
Jalankan perintah tanpa menyimpannya dalam sejarah
edit keamanan ekstra
Untuk berjaga-jaga jika Anda ingin ekstra aman, Anda dapat menggunakan perintah berikut dan memasukkan kata sandi di input baris perintah:
sumber
Semua jawaban teratas itu baik. Tapi kalau-kalau seseorang ingin menjalankan kueri dari file teks pada server jauh DAN menyimpan hasil ke file (alih-alih ditampilkan di konsol), Anda dapat melakukan ini:
Semoga ini bisa membantu seseorang.
sumber
-p
dan kata sandiSELECT ... INTO OUTFILE /path/to/file.csv
cara yang lebih efisien. Lihat opsi dan sintaksis di sini - dev.mysql.com/doc/refman/5.7/en/select-into.htmlBerikan path file .sql sebagai:
sumber
Saya datang ke sini mencari jawaban ini juga, dan inilah yang saya temukan bekerja paling baik untuk saya: Catatan saya menggunakan Ubuntu 16.xx
mysql -u <your_user> - p
source file_name.sql
Semoga ini membantu.
sumber
mysql -u<user> -p -e 'source filename.sql'
Jangan menentukan kutipan tunggal.
Jika perintah di atas tidak berfungsi, salin file ke c: drive dan coba lagi. seperti yang ditunjukkan di bawah ini,
sumber
Tidak pernah merupakan praktik yang baik untuk meneruskan argumen kata sandi langsung dari baris perintah, itu disimpan dalam
~/.bash_history
file dan dapat diakses dari aplikasi lain.Gunakan ini sebagai gantinya:
sumber
sumber
Sangat mungkin, Anda hanya perlu mengubah slash / blackslash: dari
untuk
Jadi perintahnya adalah:
sumber
gunakan perintah berikut dari command prompt mysql -
Gunakan tanpa kutip. Bahkan jika path berisi spasi (''), jangan gunakan kutipan sama sekali .
sumber
alih-alih pengalihan saya akan melakukan hal berikut
Ini akan mengeksekusi file path-to-sql-file
sumber
Begitu banyak cara untuk melakukannya.
Jika Anda mendapatkan kesalahan dari baris perintah, pastikan Anda sudah menjalankan sebelumnya
Ini harus dijalankan dari dalam direktori mysqld.exe, maka dari itu CD.
Semoga ini bermanfaat dan tidak hanya berlebihan.
sumber
Sejak
mysql -u yourusername -p yourpassword yourdatabase < text_file
tidak berfungsi pada server jarak jauh (Amazon EC2) ...Pastikan bahwa Database dibuat terlebih dahulu.
Kemudian:
sumber
Untuk referensi di masa mendatang, saya telah menemukan ini berfungsi vs metode yang disebutkan di bawah, di Windows di konsol msql Anda:
mysql >>
source c://path_to_file//path_to_file//file_name.sql;
Jika root drive Anda tidak disebut "c" maka hanya pertukaran dengan apa yang disebut drive Anda. Pertama coba backslash, jika tidak berhasil, coba tebas ke depan. Jika mereka juga tidak berfungsi, pastikan Anda memiliki jalur file lengkap, ekstensi .sql pada nama file, dan jika versi Anda bersikeras dengan semi-titik dua, pastikan ada di sana dan coba lagi.
sumber
Saya memiliki kesalahan ini, dan mencoba semua saran yang saya dapat tetapi tidak berhasil.
Akhirnya, masalahnya adalah folder saya memiliki ruang dalam nama folder yang muncul sebagai garis miring di path folder, setelah saya menemukan dan menghapusnya, itu berfungsi dengan baik.
sumber