添加以下内容:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT保存后重启防火墙:
$ sudo service iptables restart这样从其它客户机也可以连接上mysql服务了。
6、修改权限可以使其他机器登录:
mysql>mysql -h localhost -u root //这样应该可以进入MySQL服务器 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限 mysql>FLUSH PRIVILEGES //修改生效 mysql>EXIT //退出MySQL服务器 使用时遇到的问题(1)java.sql.SQLException: Access denied for user ‘root’@’localhost’ (using password:YES)
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812) at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)问题的场景是:在命令行模式下用户名和密码都是正确的但是就是出现登陆不了授权失败的问题。
解决方法:
进入MySQL命令台:mysql> select user,password,host from mysql.user;
可以看出该表显示的倒数第二行为:
+--------+-------------------------------------------+--------------------+ | user | password | host | +--------+-------------------------------------------+--------------------+ | root | | % |可以看出在root用户下的任何主机是没有password的,因此可以采取两种方式,在远端使用的时候没有密码,显然是不安全的,然后就是为其在远端访问的时候设置密码。步骤如下:
mysql> grant all privileges on *.* to root@"%" identified by "your password"; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)这相当于是给IP-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限。
这样就可以为其设置密码,然后就可以使用密码进行登录。