c#中mysql远程连接⽅法及实例
#region 远程数据库连接测试
//需给远程数据库分配所有权限
// cmd命令: grant all privileges on *.* to 'root'@'%' with grant option;
string connStr = "Database=MyDataBase;Data Source=" + "192.168.2.206" + ";port=3306;User Id=root;Password=root;";
MySqlConnection conn = new MySqlConnection(connStr);
MySqlCommand cmd = new MySqlCommand("select * from MyTable", conn);
//执⾏命令--读取数据
MySqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
if (reader.HasRows)
{
//读取MySqlDataReader⾥的内容
}
cmd.Dispose();
conn.Dispose();
return;
#endregion
//************************
c# 远程连接数据库⽅法
1、导⼊命名空间
using System.Data.SqlClient;  //连接SQLServer 数据库专⽤
2、创建连接
SqlConnection lo_conn = New SqlConnection("Server=服务器名字或IP;Database=数据库名字;uid=⽤户名;pwd=密码");
3、打开连接,第2步并没有真正连接数据库
lo_conn.Open();    //真正与数据库连接
4、向数据库发送SQL命令要使⽤SqlCommand:
SqlCommand lo_cmd = new SqlCommand();  //创建命令对象
lo_cmd.CommandText = "这⾥是SQL语句";  //写SQL语句
lo_cmd.Connection = lo_con;            //指定连接对象,即上⾯创建的
5、处理SQL命令或返回结果集
lo_cmd.ExecuteNonQuery();  //这个仅仅执⾏SQL命令,不返回结果集,实⽤于建表、批量更新等不需要返回结果的操作。  SqlDataReader lo_reader = lo_cmd.ExecuteReader();//返回结果集
6、以数据集的⽅式反回结果集
SqlDataAdapter dbAdapter = new SqlDataAdapter(lo_cmd); //注意与上⾯的区分开
DataSet ds = new DataSet(); //创建数据集对象
dbAdapter.Fill(ds); //⽤返回的结果集填充数据集,这个数据集可以被能操作数据的控件DataBind,其它的就⾃⼰发挥了吧
7、关闭连接
lo_conn.Close();
//**********************************
C#连接云数据库
1.宝塔⾯板放⾏数据库默认3306端⼝:
2.设置数据库权限-所有⼈或者指定ip,指定ip需要你本机的ip:
3.操作C#写⽅法下的连接语句:
连接前导⼊引⽤:MySql.Data.dll (顶部有下载链接),不知道怎么导⼊,可以去我的另⼀篇博客
在顶部using⼀下:using MySql.Data.MySqlClient;
代码如下:
using System;
using MySql.Data.MySqlClient;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
mysql下载app
String connetStr = "server=服务器主机ip;port=3306;user=数据库⽤户名;password=密码;database=数据库名;";
MySqlConnection conn = new MySqlConnection(connetStr);
try
{
conn.Open();//打开通道,建⽴连接
Console.WriteLine("连接成功!");
//在这⾥使⽤代码对数据库进⾏增删查改
Console.ReadKey(); //让程序运⾏得到结果不终⽌
}
catch (MySqlException ex)
{
Console.WriteLine(ex.Message);  //有异常,打印错误信息到控制台
}
finally
{
conn.Close();
}
}  }
}
//**************远程连接问题解决
mysql Access denied for user 'root'@'localhost' (using password: YES)
【现象说明】
C/S程序远程访问正常,本地访问报以下异常
MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host 'localhost' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'localhost' (using password: YES) ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Access denied for user 'root'@'localhost' (using password: YES)配置⽂件如下:
<add name="RemoteConnString" connectionString="Database='mealbooker';Data Source='localhost';User
Id='root';Password='123456';charset='gb2312';pooling=true" providerName="MySql.Data.MySqlClient"/>
【分析】
权限问题吧,查看下mysql数据库中的user表
发现localhost下⾯值为空,于是connection string中的localhost 改为 127.0.0.1,测试通过~~~
【解决】
配置⽂件中改为localhost,访问数据库正常;同时mysql command line⼯具输⼊密码后⼀闪⽽过问题同时解决。
重启之后⼜访问不了,继续上⾯的思路修改:
另,mysql command line⼯具⼀闪⽽过,⽅法参见这⾥
另⼀个权限相关问题:
Error Code: 1370 execute command denied to user 'root'@'localhost' for routine
使⽤grant execute on procedure/function dbname.fname TO 'root'@'localhost';
另⼀密码相关问题(调试机放⼏天后就没法远程访问了,root密码被改动,不明原因):
Authentication to host '10.10.123.6' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'10.10.123.5' (using password: YES) ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Access denied for user 'root'@'10.10.123.5' (using password: YES)
修改password语句如下:
然后还要给远程⽤户⾮配权限
grant all privileges on *.* to 'root'@'%' with grant option;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。