【问题标题】:Mysql connect to server without any databaseMysql连接到没有任何数据库的服务器
【发布时间】:2015-01-13 13:13:59
【问题描述】:
在我的程序 C# 程序中,如果 mysql 服务器上不存在多个 mysql 数据库,我需要创建它们。
所以我创建了一个到服务器的连接字符串:
add name="ServerConnection" connectionString="Server=localhost;Port=7070;uid=root;password=pass;" providerName="MySql.Data.MySqlClient"/>
创建数据库后,如何使用现有连接连接到其中一个数据库?
mysql服务器上的每个数据库都应该有一个连接字符串吗?
谢谢
【问题讨论】:
标签:
c#
mysql
database
connection-string
【解决方案1】:
不,您不需要在配置文件中为您需要创建的每个数据库创建单独的连接字符串。
您可以使用名为 MySqlConnectionStringBuilder 的不太知名的类,该类位于通常的命名空间 MySql.Data.MySqlClient 中。
此类允许指定连接字符串所需的任何单个键/值对。
它还接受作为构造函数参数的先前连接字符串,该字符串在内部拆分为各种键/值对,然后将这些键/值对作为MySqlConnectionStringBuilder 实例的属性公开。
这允许更改一个属性(例如数据库),然后使用更新的值重建连接字符串。
例如你可以写
MySqlConnectionStringBuidler mcb = new MySqlConnectionStringBuilder("yourinitialconnection");
mcb.Database = "yournewdatabasename";
string newConnString = mcb.GetConnectionString(true);
using(MySqlConnection cnn = new MySqlConnection(newConnString))
{
......
}
如果您希望返回的连接字符串包含密码,则对 GetConnectionString 的最终调用需要将布尔值设置为 true。
(基于MySql Provider 6.3.6的示例)