mysql永远是我大哥。
环境是阿里云centos7
为防止操作失误,请操作之前先做个快照,以便出错时可以回滚且保护重要数据。
1、开启MySQL的访问权限
mysql -uroot -p123456
#将上面的root替换为你的mysql用户名,123456替换为你的密码
use mysql;
#选择mysql数据库,这个库里面存着MySQL的相关数据
show tables;
#显示user数据库的表
select user, host from user;
#显示user表中的user和host(user库下有user表,user表中又有user列)
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
#增添新用户root(@前),密码为root(by后)
#all表示全部权限,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等
#之后的*.*表示前面的权限的作用范围,*.*表示对全部数据库的全部表授权,*可以换成具体的数据库/表名,对于某一数据库的某一表授权为“数据库名.表名”。
#%代表允许任意的ip地址访问,可换成具体的ip,被单引号包裹即可
#idntified by 设置密码
flush privileges;
刷新缓存
2、查看端口是否占用
netstat -ntlp|grep 3306
tcp6 0:::3306表示监听任意ip地址,tcp6可向下兼容tcp的,所以不要惊异
(我没用到这一步)
3. 关闭防火墙或防火墙开启入站允许端口3306
(是centos系统自身的防火墙,不是阿里云的安全策略)
我就是卡在这一步,我放行了阿里云的端口,但是万万没想到centos自身也有防火墙,默认没开3306端口
#查看是否开启了防火墙,查看防火墙状态
ps -ef|grep firewall
firewall-cmd --state
#查看防火墙规则
firewall-cmd --list-all
上图是我放行3306端口之后截的图,你们还没放行时查看应该不会有3306的显示
#添加3306规则
firewall-cmd --permanent --add-port=3306/tcp
#重启防火墙
service firewalld reload
#再次查看防火墙规则
firewall-cmd --list-all
最终结果如上图。
4、阿里云放行端口
轻量应用服务器->安全->防火墙->添加规则
注意直接选择MYSQL即可,不要选择自定义,然后选择TCP并填写3306,不要,直接选MYSQL就行。
5、在windows下测试是否服务器3306端口是否可以连接
telnet是windows的一项服务,默认是不开启的。
控制面板内找到程序和功能,在打开的新页面中点击启用或关闭windows功能,再在弹出的新窗口中找到并勾选Telnet Client,确定。
cmd下,键入telnet ip 3306,其中ip换成你的服务器ip
出来一行类似于5.6.44-log=:H:-mc)-€>>Z,jQ:k/CEqmysql_native_password的字符串,则端口确实可以链接,若几秒钟后依然停留在正在连接的界面,则说明未能连接,请重新对照之前的步骤仔细分析一下吧。
参考: