Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng bảng điều khiển MySQL thông qua tập lệnh PowerShell

Những gì bạn đang cố gắng thực hiện sẽ không hoạt động, bởi vì mã của bạn sẽ không truy cập được show databases; cho đến khi bạn thoát khỏi mysql.exe . Cách thông thường để sử dụng mysql.exe từ một tập lệnh là chạy tệp thực thi với mỗi truy vấn:

$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 '...'
...

Sử dụng phân tách để cung cấp các thông số chung.

Thông thường, bạn cũng sẽ thêm các tham số -B (--batch , thực thi không tương tác, không có định dạng đầu ra ưa thích) và -N (--skip-column-names , không hiển thị tiêu đề cột trong đầu ra) để có được đầu ra "dễ tiêu hóa" hơn như thế này:

information_schema
mysql
performance_schema
test

thay vì nhận đầu ra mặc định như thế này, điều đó sẽ yêu cầu phân tích dữ liệu ra khỏi bảng để xử lý thêm:

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

Như đã nói, một cách tiếp cận tốt hơn nhiều so với làm việc với máy khách dòng lệnh sẽ là sử dụng .Net Trình kết nối , ví dụ. như thế này:

$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

Bằng cách đó, đầu ra bạn nhận được sẽ là các đối tượng thực tế thay vì chuỗi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa các hàng từ máy chủ mysql khỏi danh sách C # của ID

  2. Cài đặt mysqlclient cho Django Python trên Mac OS X Sierra

  3. MySQL:có cái gì đó giống như một định danh bản ghi nội bộ cho mọi bản ghi trong bảng MySQL không?

  4. MySQL:ORDER BY với ngày trống '0000-00-00' như cuối cùng trừ ASC còn lại

  5. Vấn đề với việc thêm hàng với JDBC và MySQL?