CentOS 7.0下yum安装MySQL及使用遇到问题(2)

接下来登录重置密码:

$ mysql -u root mysql > use mysql; mysql > update user set password=password('xu827928') where user='root'; mysql > exit;

5、开放3306端口(可以不用设置)

$ sudo vim /etc/sysconfig/iptables

添加以下内容:

-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赋予了所有的权限,包括远程访问权限。
这样就可以为其设置密码,然后就可以使用密码进行登录。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/004629c6694fc621198bf6128814d482.html