GNU/Linux >> Belajar Linux >  >> Linux

Cara memberi makan kueri mysql dari bash

Alasan usaha Anda tidak berhasil adalah karena < mengharapkan nama file dan Anda memberinya string. Anda harus melakukan sesuatu seperti

echo "YOURQUERYSTRINGHERE">tmpfile
mysql --host=localhost --user=user --password=password dbname <tmpfile

saran ken tentang

 mysql  --host=localhost --user=user --password=password -e "QUERY" dbname

dapat berfungsi, tetapi jika Anda mencoba menggunakan variabel bash dalam kueri Anda, Anda dapat gagal dalam ekspansi parameter. misalnya

QUERY="select * from $MYTABLE WHERE name=\"[email protected]\";"
mysql --host=localhost --user=user --password=password -e "$QUERY" mydbname

mungkin tidak melakukan apa yang Anda harapkan. Satu opsi adalah gunakan

echo "$QUERY"|mysql --host=localhost --user=user --password=password mydbname

yang berfungsi jika string kueri berisi kutipan yang sesuai. Opsi lainnya adalah dokumen "di sini" seperti yang disarankan oleh dogbane.


Coba gunakan dokumen di sini seperti ini:

mysql --host=localhost --user=user --password=password << END

CREATE USER 'testuser'@'localhost' IDENTIFIED BY  'jakdJxct8W';
CREATE DATABASE IF NOT EXISTS 'testuser_dev' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON  'testuser_dev' . * TO  'testuser'@'localhost';
CREATE DATABASE IF NOT EXISTS 'testuser_qa' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON  'testuser_qa' . * TO  'testuser'@'localhost';

END

Atau tempatkan semua perintah Anda dalam file teks dan jalankan:

mysql --host=localhost --user=user --password=password < commands.sql

Coba seperti ini:

echo "select 1" | mysql

mysql --batch --silent -e 'SHOW TABLES';

Batch dan silent berguna jika Anda berencana menyalurkan output


Linux
  1. Cara menyalin tabel dari satu database mysql ke database mysql lainnya

  2. Bagaimana saya bisa mendapatkan nilai unik dari array di Bash?

  3. bagaimana cara mendapatkan elemen dari daftar di bash?

  1. Cara Menghapus Perintah Tertentu Dari Riwayat Bash Di Linux

  2. Bagaimana Anda bisa menghapus duplikat dari riwayat bash?

  3. Bagaimana cara mendapatkan netmask dari bash?

  1. Cara Menjalankan Query MySQL/MariaDB Langsung dari Command Line Linux

  2. Bagaimana Cara Membuat Array Elemen Unik Dari String/array Di Bash?

  3. Bagaimana Mengenalinya Jika Saya Dalam Sesi Tmux Dari Skrip Bash?