C#在局域网中连接Liunx上的MySql数据库

时间:2023-03-09 15:15:53
C#在局域网中连接Liunx上的MySql数据库

前期准备工作:

我所用的平台是VS2010和Ubuntu 14.04.3  LTS

一、由于MySql并没有集成在VS2010中所以要先安装MySQL Connector Net 6.9.8连接工具,可以在官网上下载,连接如下:http://dev.mysql.com/downloads/connector/net/

二、你安装的目录中你会找到Assemblies这个文件夹C#在局域网中连接Liunx上的MySql数据库,在这个文件夹中你会发现V2.0 v4.0 v4.5文件夹,如果没有表示你安装有问题,我用的.net框架是v4.0所以我查看v4.0中是否有关于MySql的动态链接库C#在局域网中连接Liunx上的MySql数据库,存在则表示我可以在VS上添加这个程序集了。

在VS2010远程连接MySql

1.在C#的项目中添加引用C#在局域网中连接Liunx上的MySql数据库,找到安装MySQL Connector Net 6.9.8连接工具的位置C#在局域网中连接Liunx上的MySql数据库,添加MySql.Data.dll文件,这样就可以在程序中引用using MySql.Data.MySqlClient;

2.由于MySql数据库安装默认3306端口是默认关闭的,监听127.0.0.1,利用sudo vi /etc/mysql/my.cnf编辑my.cnf 注释掉C#在局域网中连接Liunx上的MySql数据库bind-address = 127.0.0.1;利用:sudo netstat –anp|grep 3306查看3306端口是否打开C#在局域网中连接Liunx上的MySql数据库;利用sudo service mysql restart重启MySql;

3.配置MySql后关闭Ubuntu中的防火墙,sudo ufw status查看防火墙状态,如果是活动的则利用 sudo ufw disable关闭(如果Ubuntu中没有ufw指令则利用apt-get install ufw安装防火墙)

4.一切配置好了,在本地安装有数据库的电脑上远程连接C#在局域网中连接Liunx上的MySql数据库,图中的用户test必须有远程访问的权限,给予test远程访问权限的SQL语句:GRANT ALL privileges on *.* to test@’%’ IDENTIFIED by ‘123’;(123是test的密码)之后刷新即可利用FLUSH privileges;

5.在c#中编写如下代码

       using MySql.Data.MySqlClient;
/// <summary>
/// 测试是否能和Liunx上的MySql联通
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnTestMySql_Click(object sender, EventArgs e)
{
string mySqlConn = "host=115.156.186.209;Port=3306;User Id=test;password=test;Database=graduation";
//string mySqlConn = "host=115.156.187.240;User Id=root;password=xue;Database=example";
MySqlConnection myconn = new MySqlConnection(mySqlConn);
myconn.Open();
if (myconn.State == ConnectionState.Open)
{
MessageBox.Show("MySQL Port is Opened!");
}
else
MessageBox.Show("MySql Port is failed!"); myconn.Close();
}
结果如下:
C#在局域网中连接Liunx上的MySql数据库