Ecs远程服务器Mysql配置访问
前言
Github:https://github.com/HealerJean
1、完全是Linux自己的服务器
1.1、创建一个可以远程访问MySQL的用户
1、用户名HealeJean 密码123456
GRANT ALL PRIVILEGES ON *.* TO 'HealerJean'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
'HealerJean'表示用户名,
%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接
'147094'表示密码
1.2、修改生效
FLUSH PRIVILEGES;
1.3、查询数据库的用户(看到如下内容表示创建新用户成功了)
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
1.4、远程连接
1.4.1、报错,防火墙关闭状态
报错:2003-can't connect to mysql server on ' ' (10038)
出现这个错误的原因是:远程3306端口未对外开放
1.4.2、打开防火墙
1、刚装好的系统没有防火墙,这里需要先安装防火墙
1.先执行如下命令:
systemctl stop firewalld
systemctl mask firewalld
2.安装iptables services
yum install iptables-services
3.设置开机启动
systemctl enable iptables
4.重启iptables service
systemctl restart iptables
5.执行保存配置命令 (中间的环节看其他的笔记)
service iptables save
2、阿里云配置访问
阿里云的服务器,其实已经帮助我通过配置文件白名单的方式了,所以不需要安装防火墙
2.1、配置安全组规则
2.2、 如果是用root登录MySQL,在登陆后use mysql, user表root对应的localhost改为%
有的不需要设置这一步,因为默认有%,我的就是
2.3、修改mysqld.cnf
mysql默认只能自本机访问,在 /etc/mysql/mysql.conf.d/mysqld.cnf 里注释bind-address :
#bind-address = 127.0.0.1
2.4、重启启动mysql
service mysql restart