Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 哪些命令将使用Powershell中的现有.sql文件填充数据库_Mysql_Powershell_Mysqldump - Fatal编程技术网

Mysql 哪些命令将使用Powershell中的现有.sql文件填充数据库

Mysql 哪些命令将使用Powershell中的现有.sql文件填充数据库,mysql,powershell,mysqldump,Mysql,Powershell,Mysqldump,我正在powershell中编写一个脚本,该脚本应该连接到MySQL服务器,创建一个新数据库,然后对该数据库运行查询命令。我有一个预生成的.sql文件,其中包含所有要执行的命令,但是我的代码似乎存在问题,因为它从未实际执行.sql文件。任何帮助都将不胜感激。我的代码如下 [void][system.reflection.Assembly]::LoadWithPartialName("MySql.Data") #Creates a connection to the server $connSt

我正在powershell中编写一个脚本,该脚本应该连接到MySQL服务器,创建一个新数据库,然后对该数据库运行查询命令。我有一个预生成的.sql文件,其中包含所有要执行的命令,但是我的代码似乎存在问题,因为它从未实际执行.sql文件。任何帮助都将不胜感激。我的代码如下

[void][system.reflection.Assembly]::LoadWithPartialName("MySql.Data")

#Creates a connection to the server
$connStr ="server=mySql;Persist Security Info=false;user id=" + "username" + ";pwd=" + "pass" + ";"
$conn = New-Object MySql.Data.MySqlClient.MySqlConnection($connStr)

#Open connection
$conn.Open()

#Drops database if it currently exists
$cmd = New-Object MySql.Data.MySqlClient.MySqlCommand
$cmd.Connection  = $conn
$cmd.CommandText = "DROP DATABASE IF EXISTS " + $dbname
$cmd.ExecuteNonQuery()

#Create the new database
$cmd.CommandText = 'CREATE SCHEMA `' + $dbname + '`'
$cmd.ExecuteNonQuery()

#Load the sql file
$sql = (Get-Content C:\"path to sql file") -join "'r'n"
$cmd.CommandText = $sql

#Close connection
$conn.Close()

您是否缺少$cmd.ExecuteNonQuery()调用?看起来像是用文字“'r'n”连接文件行。您需要改用反勾号字符(例如 “`r`n”)。我将使用Out-String cmdlet将文件内容转换为一个字符串:

#Load the sql file
$sql = Get-Content C:\"path to sql file" | Out-String
$cmd.CommandText = $sql
$cmd.ExecuteNonQuery()

谢谢你的及时回复。我假设我不需要ExecuteOnQuery调用,因为我实际上正在运行query。如果我打那个电话,我会得到一个错误,没有选择数据库。对不起,我对这个很陌生,所以我可能有一些基本的缺陷。另外,我的sql文件包含约20个以上的查询,这在转换为一个字符串时是否有问题?我的答案基于您的代码以及我认为缺失或错误的内容。以前的任何命令是否有效(删除或创建数据库)?文件内容(查询)是否需要一次运行一行?是的,我上面的代码将按预期创建和删除数据库。sql文件本身包含为我的数据库创建表的命令。例如:如果不存在,则创建表
billable\u items\u checkoffs
ID
int(11)NOT NULL自动递增,
FL
int(11)default NULL,
UC
varchar(50)default NULL等。感谢您对调试我的代码的帮助。事实证明,两者都是-加入“
r
n”我的问题实际上来自我的sql脚本。它包含的注释导致文件无法正确读取。