gpt4 book ai didi

mysql - 通过 PowerShell 脚本使用 MySQL 控制台

转载 作者:行者123 更新时间:2023-11-29 05:10:27 25 4
gpt4 key购买 nike

我必须编写需要使用 mysql.exe 控制台并执行一些查询的 PowerShell 脚本。我开始了:

$mysqlC = 'C:\Users\I16A1\Downloads\mysql\bin\mysql.exe'
$arg1 = '-u asset -ptest testasset'
& $mysqlC $arg1

show databases;

如您所见,在设置控制台位置和连接参数后,我使用调用运算符 (&) 来运行 MySQL 控制台。

一切正常,MySQL 控制台正在运行,但调用运算符后的行未运行,如 show databases;

问题是我希望我的 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_schemamysqlperformance_schematest

instead of getting default output like this, that would require parsing the data out of the table for further processing:

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

With that said, a much better approach than working with the commandline client would be using the .Net Connector, e.g. like this:

$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

这样你得到的输出将是实际的对象而不是字符串。

关于mysql - 通过 PowerShell 脚本使用 MySQL 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40173988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com