Mysql
 sql >> база данни >  >> RDS >> Mysql

Използвайте MySQL конзолата чрез скрипт PowerShell

Това, което се опитвате да направите, няма да работи, защото кодът ви няма да стигне до show databases; докато не излезете от mysql.exe . Обичайният начин за използване на mysql.exe от скрипт е да стартирате изпълнимия файл с всяка заявка:

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

Използвайте splatting за предоставяне на общи параметри.

Обикновено бихте добавили и параметрите -B (--batch , неинтерактивно изпълнение, без фантастично форматиране на изхода) и -N (--skip-column-names , не показвайте заглавия на колони в изхода), за да получите по-„смилаем“ изход като този:

information_schema
mysql
performance_schema
test

вместо получаване на изход по подразбиране като този, това ще изисква анализиране на данните от таблицата за по-нататъшна обработка:

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

С това казано, много по-добър подход от работата с клиента на командния ред би бил използването на .Net Конектор , напр. така:

$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

По този начин изходът, който получавате, ще бъде действителни обекти вместо низове.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да експортирате и импортирате mysql база данни с нейните данни с помощта на php скрипт?

  2. Изчисляване на общото количество оборудване за период от време

  3. Извикването на Ajax връща цялата страница, а не само стойността на ехо

  4. Как да проверите версията на MySQL

  5. Синтаксис на задействане на MySQL „актуализация на колона“.