远程连接linux上的mysql被拒绝

  最近搞了一台阿里云服务器,装上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;

最后你再重新连接,就可以了

posted @ 2020-03-25 23:03  别有幽愁暗恨生  阅读(1310)  评论(0编辑  收藏  举报