您的位置:首页 > 数据库 > MySQL

C#远程连接MySQL数据库以及相关远程连接问题解决方案

2018-03-09 16:02 579 查看
一、C#连接MySQL数据库代码语句如下:
DataSet ds = new DataSet();
MySqlConnection conn = new MySqlConnection("server=server-ip;database=db-name;Character Set=utf8;Uid=user-name;password=****;");
MySqlCommand cmd = new MySqlCommand("select * from table-name", conn);
MySqlDataAdapter da = new MySqlDataAdapter();
conn.Open();
da.SelectCommand = cmd;
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
conn.Dispose();
cmd.Dispose();


二、默认情况下,带有密码的Mysql外网不允许远程访问,为了解决这个问题,我们可以采用下面的方法:采用--授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;FLUSH   PRIVILEGES;如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;FLUSH   PRIVILEGES;如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;FLUSH   PRIVILEGES;
三、如果你的MySQL数据库的登录账户和密码都为root的话,还会出现下面问题:

mysql远程连接问题 Access denied for user 'root'@'192.168.1.13' (using password: YES)

解决方法:
root默认只有本机访问的权限,要通过其他机器访问,必须授权
GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

flush privileges;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# MySQL
相关文章推荐