开发者社区> 问答> 正文

C#,MySQL.Data问题求助。

已解决

我的MySQL数据在另一台主机上,并针对我的主机做了授权。

mysql> grant all privileges on *.* to root@"192.168.21.134" identified by "root";
Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 然后在我本机使用C# 建议连接查询数据库。

MySqlConnection myConnection = new MySqlConnection("Server=192.168.21.244;Database=demo;Uid=root;Pwd=root");

当使用  MySqlDataReader reader = command.ExecuteReader();这样的方式读取数据库时,一点问题都没有,可以正常访问。

但如果使用如下的方式(使用MySQLDataAdapter时),

MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(strSQL, myConnection);

myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "test");在执行到Fill时报The user specified as a definer ('root'@'%') does not exist。

网上的解决方案就是让我在MySQL直接授权,即grant all privileges on *.* to root@"%" identified by "root";

但为了数据库安全是不允许这么做的,有没有其它的解决方案。

展开
收起
wangccsy 2018-11-15 15:09:51 608 0
2 条回答
写回答
取消 提交回答
  • 前一个帐号wangccsy@126.com不知道怎么的就成了企业帐号,改不成个人。所以重新注册了一个个人帐号。老程序员。精通JAVA,C#,数据库,对软件开发过程和流程熟悉。考取系统分析师,项目管理师和系统架构设计师等软件资格考试认证。愿意和大家一起前进。
    采纳回答
    我要的授权是固定IP的。而不是%。为了安全。
    2018-11-15 15:24:31
    赞同 展开评论 打赏
  • 不使用root用户,创建二级管理用户,然后再进行该用户授权
    2018-11-15 15:12:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
深入MySQL实战 立即下载
MySQL 5.7让优化更轻松 立即下载
好的 MySQL 兼容可以做到什么程度 立即下载

相关镜像