Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Gunakan konsol MySQL melalui skrip PowerShell

Apa yang Anda coba lakukan tidak akan berhasil, karena kode Anda tidak akan sampai ke show databases; sampai Anda keluar dari mysql.exe . Cara biasa menggunakan mysql.exe dari skrip adalah menjalankan yang dapat dieksekusi dengan setiap kueri:

$db   = 'testasset'
$user = 'asset'
$pass = 'test'

$mysql  = 'C:\Users\I16A1\Downloads\mysql\bin\mysql.exe'
$params = '-u', $user, '-p', $pass, $db

& $mysql @params -e 'SHOW DATABASES'
& $mysql @params -e '...'
...

Gunakan splatting untuk menyediakan parameter umum.

Biasanya Anda juga akan menambahkan parameter -B (--batch , eksekusi non-interaktif, tidak ada pemformatan keluaran yang mewah) dan -N (--skip-column-names , jangan tampilkan judul kolom di output) untuk mendapatkan lebih banyak output yang "dapat dicerna" seperti ini:

information_schema
mysql
performance_schema
test

alih-alih mendapatkan output default seperti ini, itu akan membutuhkan penguraian data dari tabel untuk diproses lebih lanjut:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+

Dengan demikian, pendekatan yang jauh lebih baik daripada bekerja dengan klien baris perintah adalah menggunakan .Net Konektor , misalnya seperti ini:

$server = 'localhost'
$db     = 'testasset'
$user   = 'asset'
$pass   = 'test'

$cs = "server=$server;user id=$user;password=$pass;database=$db;pooling=false"

[void][Reflection.Assembly]::LoadWithPartialName('MySQL.Data')

$cn = New-Object MySql.Data.MySqlClient.MySqlConnection
$cn.ConnectionString = $cs
$cn.Open()

$cmd= New-Object MySql.Data.MySqlClient.MySqlCommand
$cmd.Connection  = $cn
$cmd.CommandText = 'SHOW DATABASES'
$reader = $cmd.ExecuteReader()

$tbl = New-Object Data.DataTable
$tbl.Load($reader)
$reader.Close()
$cn.Close()

$tbl | Format-Table -AutoSize

Dengan begitu, output yang Anda dapatkan akan menjadi objek aktual, bukan string.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menjalankan banyak kueri dalam satu halaman?

  2. PHP:Jika record ada, tampilkan HTML, yang lain tidak menampilkan apa-apa

  3. 5 Kursus Online Terbaik untuk Belajar MySQL

  4. Bagaimana cara mendapatkan nilai SQL_CALC_FOUND_ROWS menggunakan pernyataan yang disiapkan?

  5. Bagaimana cara menghapus berbagai catatan sekaligus di MySQL?