我是用MySqlConnection 访问Mysql数据库的
我的连接字符串是这样的
            MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
            connBuilder.Add("Database", "yingshi");
            connBuilder.Add("Data Source", "127.0.0.1");
            connBuilder.Add("User Id", "root");
            connBuilder.Add("Password", "666666");
            return connBuilder;
这样就可以,但是我把“127.0.0.1”改为我的IP地址就不行了。
出异常 “Host 'chinese-d6bb18a' is not allowed to connect to this MySQL server”请问这个问题怎么解决?还有我要远程连接,怎么加端口号? 也是像MSSQL一样直接在IP后面加吗?

解决方案 »

  1.   

    这是你的操作系统的原因。 当你在WINODWS下用127.0.0.1 其实它的网络连接并不通过外部的网络,直接在操作系统中就传递了。 这样你相当于从localhost登录。而当你写明连到你的IP的时候,WINDOWS会产生数据包,你的连接其实就是通过网卡,进行实际的网络连接。这时对MYSQL数据库来说,你是从网络上某台机器连过来的。而MYSQL中的账号是由  username@hostname 两部分组成,也就是说同一USERNAME在不同的主机上登录是不同的账号。
    你的问题是权限的问题,默认情况下,MYSQL仅允许本地的ROOT登录。
      

  2.   

    在你的MYSQL中grant all on *.* to root@%
      

  3.   

    use mysql
    grant all on *.* to root@'%' identified by 'yourpassword';
      

  4.   

    你的mysql服务器允许远程服务么?
      

  5.   

    楼上的! 怎么样让 mysql服务器允许远程服务?