MYSQL的系统表user存放了能否远程访问的权限,适当的修改一下host字段即可

解决方案 »

  1.   

    import java.sql.*;try{Class.forName("org.gjt.mm.mysql.DriverManager");}
    catch(ClassNotFoundException e){}
    Connection con=DriverManager.getConnection("jdbc:mysql://10.9.92.9,"name","password");
      

  2.   

    user系统表放在名为mysql的数据库里
    use mysql;
    select * from user;
    结果应该显示为:
     Host  User  Password  Select_priv  Insert_priv  Update_priv  Delete_priv  Create_priv  Drop_priv  Reload_priv  Shutdown_priv  Process_priv  File_priv  Grant_priv  References_priv  Index_priv  Alter_priv  
     localhost root   Y Y Y Y Y Y Y Y Y Y Y Y Y Y 
       %       root   Y Y Y Y Y Y Y Y Y Y Y Y Y Y 
    ============================================================
    localhost表示只允许本地连接,%表示都可以连接
      

  3.   

    可以这样做:
    grand all on dbname.* to mike@% identified by "123456"
    现在mike这个用户可以在任何一台机器连接数据库了
      

  4.   


    Host字段内容需要改一下,
      

  5.   

    比如你将sql_real_connect函数的host参数改为192.168.0.1
    那么就意味着你要访问192.168.0.1机上的MySQL的服务器,
    如无法连接可能有下列几种情况,
    1、192。168。0。1 上没有MySQL服务器运行,
    可能性不大吧!!
    2、在192。168。0。1 上的MySQL服务器中没有你用于登录的用户权限
    解决的办法是重新授权,
    sql_real_connect函数 有UserName 与 PassWord 两参数,
    比如你的UserName :  echohuang1
            PassWord :  123
    运行你编的程序的计算机IP  :192。168。0。2
    在192。168。0。1 上的MySQL服务器中的mysql.user 中应有下列一个管理员
    Host             User         PassWord     ..................
    192.168.0.2      echohuang1   ........     Y        Y        Y
    insert into mysql.user valuse ("192.168.0.2","echohuang1",PassWord("123"),"Y","Y","Y","Y","Y"......................)