一、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;