最近搞了一台阿里云服务器,装上mysql之后,发现外部远程连接mysql居然被拒绝了。新装的mysql,并没有要求设置密码,所以无法正常登陆mysql。
首先我强调一下,阿里云上的安全组设置中3306端口我已经释放,并且linux上的3306端口也已经放开了。端口的原因,已经排除。
主要是不知道mysql的初始密码,好像是一个随机的字符串,我们也不可能去记这个对吧,当然你也记也记不住。好了,说了这么多废话,我来说我的解决办法吧。
第一步: 因为我们不知道mysql的初始密码,所以首先改密码
(1)首先找到mysql的配置文件my.cnf 一般在 /etc/my.cnf
(2)cd进 /etc 直接 vim my.cnf 编辑他
(3)在【mysqld】标签下或者文件最下面添加一句skip-grant-tables 即可 (注意,笔者亲测,放在最后面没有生效,放在mysqld标签后面成功)
(4) esc退出编辑,然后输入 :wq保存退出 ,然后重启服务器 service mysqld restart 让修改生效
(5)mysql -u root 就可以直接进入数据库了
(6)然后是修改密码,最好设置密码复杂点,建议:大写字母+小写字母+符号。否则后面mysql会报错让你改到符合mysql的安全策略,或者也可以修改mysql安全策略
mysql> USE mysql;
mysql> update mysql.user set authentication_string=password(‘新密码‘) where user=‘root‘;
mysql> flush privileges ;
mysql> quit
(7)改完密码,再将配置文件改回来,就把添加的那句删掉就好了,然后再次重启服务器service mysqld restart
(8)然后就可以使用 mysql -uroot -p输入你的新密码进入啦
第二步,授权
(1)授权主机访问:MySQL>GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘你的密码‘ WITH GRANT OPTION;
(2)刷新权限:MySQL>FLUSH PRIVILEGES;
(3)退出:MySQL>EXIT;
最后你再重新连接,就可以了
原文:https://www.cnblogs.com/huarui/p/12571318.html