我尝试连接到我的朋友创建的服务器上的MySQL数据库,但它仍然说它无法连接到服务器!
这是我的代码:
String connectionString = "Persist Security Info=False;database=qwertyui;server=www.qwertyuiop.com;Uid=asdfghj;Pwd=qazwsxedc;Connect Timeout=30";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("INSERT INTO etc.... ");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue( etc.... );
connection.Open();
int r = cmd.ExecuteNonQuery();
}
它会导致connection.Open()
指令抛出异常 - >无法连接到服务器。
有什么想法吗?
答案 0 :(得分:2)
SqlConnection
是 SQL Server 客户端。
您需要从NuGet下载MySql客户端。
答案 1 :(得分:1)
首先下载MySQL Connector。
确保向DLL添加reference
(+设置本地副本 true !)
在课堂上添加using MySql.Data.MySqlClient;
。
至于Connection String,
做不在http
前面添加www
或server
。因为它会尝试连接到apache(端口80)而不是MySQL。默认端口MySQL
为3306
。
string connectionString = "Persist Security Info=False;database=qwertyui;server=qwertyuiop.com;Uid=asdfghj;Pwd=qazwsxedc;port=3306";
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
string query = "INSERT INTO table VALUES (@parameter)";
connection.Open();
using (MySqlCommand cmd = new MySqlCommand(query, connection))
{
cmd.Parameters.AddWithValue("@parameter", parameter);
cmd.ExecuteNonQuery();
}
}
如果这不起作用。确保MySQL
允许远程访问,如果不是这样,您可以继续尝试而不会产生任何结果。
答案 2 :(得分:0)
首先想到的是你必须使用MysqlConnection和命令。 http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlconnection.html
是本地数据库吗?
答案 3 :(得分:0)
如果以上所有方法都无效,请尝试获取所有权限(GRANT Syntax)!
基本上它会像:
GRANT ALL PRIVILEGES ON DBname.* to 'username'@'IPadress' IDENTIFIED BY 'password';