本文主要是针对mysql5.7及以上版本更改root密码及远程连接,实际应用后的总结。
1、进入数据库
# mysql -uroot -p
2、修改密码
mysql> USE mysql; -- 切换到 mysql DB
mysql> select Host,User,authentication_string,password_expired,password_last_changed from user; 查看表
mysql> update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; 一定要用password()函数修改密码,如果还是按老版本修改密码方式会有问题。
mysql> update mysql.user set Host = '%' where user='root'; 把localhost改为%,是为了远程连接准备,允许所有ip访问
mysql> grant all on *.* to root@'%' identified by 'yourpassword'; 给数据库操作权限,例如增/删/改/查,all表示全部权限。
mysql> flush privileges; --不重启刷新,这步一定要操作
3、远程连接
查看下防火墙,如果不关闭防火墙,需要把3306端口加入到白名单。(或者把mysql启动的默认端口3306给改掉,改成该系统目前开发的不与其它应用冲突的端口)
# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 把3306端口加入白名单
# /etc/rc.d/init.d/iptables save 保存该端口
# service iptables stop 关闭防火墙,这个自己决定