为什么我用我的 MySql  jdbc:mysql://localhost/mobile", "root", ""这样些就不会报错而我改成 IP 就会报错例如:jdbc:mysql://192.168.1.131/mobile", "root", ""错误:java.sql.SQLException: null,  message from server: "Host '3a79azpkzzvswix' is not allowed to connect to this MySQL server"
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:962)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2595)
at com.mysql.jdbc.Connection.<init>(Connection.java:1509)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.db.DBConnection.getConn(DBConnection.java:11)
at com.daoimp.SmDaoImp.SmInsert(SmDaoImp.java:18)
at com.server.SmServer.add(SmServer.java:10)
at com.web.test.main(test.java:16)
java.lang.NullPointerException
at com.daoimp.SmDaoImp.SmInsert(SmDaoImp.java:22)
at com.server.SmServer.add(SmServer.java:10)
at com.web.test.main(test.java:16)高手给 解决一下啊

解决方案 »

  1.   

    检查更改mysql里面用户设置,一般root被设置为只能通过localhost访问
      

  2.   

    root MS默认只允许本地访问的
      

  3.   

    在你安装mysql时会给你选择,是否能用root帐户进行远程登陆,默认是不允许.
      

  4.   

    在mysql命令行下打
    GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
    其中 monty 换成你的用户名
    some_pass换成对应你用户名的密码
      

  5.   

    进mysql,看看mysql库中的user表。
    root那一行记录host字段的值应该是localhost,把它改成%就行了。
    或是你新建一个用户.
      

  6.   

    mysql对于本地连接(localhost)
    和远程连接(ip)
    采用不同的分配模式你可以进到mysql控制台
    cmd:>mysql -u root -p用楼上给的GRANT命令对远程进行授权
      

  7.   

    mysql如果是3306可以不加
    应该是密码或其它的信息不对!
    这种一般不是端口问题
      

  8.   

    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;