centos 及 MySQL远程连接问题
centos及MySQL远程登陆问题
这是我在搭建云服务器时遇到的问题和解决方法,使用的是centos 7.6 和Mysql 5.7同时在centos 7.8和mysql8.0也测试过,没有问题。如果有其它问题可以留下评论,如果你也要搭建云服务器,运行javaweb程序,建议安装一个叫宝塔的软件,可以方便管理服务器
centos 远程登陆
centos 7.6和centos 7.8实现远程登陆连接:
- 注意: 要开启远程连接尽量把密码设置复杂不要使用“123456”这种简单的密码,这样有可能给不发分子有可乘之机;如果cpu 经常跑满而且密码还无法修改或者修改了一段时间后会出现无法登录要注意服务器可能被黑了用来挖矿可以同如下方式判断
[root@VM-12-7-centos ~]# crontab -l
5 * * * * /bin/dhpcd -o pool.minexmr.com:4444 -B >/dev/null 2>/dev/null
/5 * * * * flock -xn /tmp/stargate.lock -c ‘/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &’
如果出现以上信息说明已经被用来挖矿了,这时使用 top命令查看占用最高(有可能占用>90)的一个或者多个进程然后关闭,然后改密码(很有可能再次被黑,如果可以尽量重置服务器)
-
正式进行文件配置 修改SSH配置文件 /etc/ssh/sshd_config ;
修改以下两行:
PermitRootLogin yes //默认为no,需要开启root用户访问改为yes
PasswordAuthentication yes //默认为no,改为yes开启密码登陆
如果找不到可以使用vim 的查询功能按esc+:/PermitRootLogin 回车就可以找到,如果 还是找不到,需要自己手动输入配置文件
如果没有root权限可以进入服务器控制台登录后使用 sudo -i 获取临时超级用户(root)
最后重启服务
systemctl restart sshd
mysql 远程登录问题
mysql 5.++
1.查看user表是否有远程连接权限
首先在本机查询mysql库中的user表,可以看到root目前只支持localhost本机连接:
select `user`,authentication_string,`Host` from
2.添加远程连接
如果没有灰色那行于是我们需要增加root允许其他主机进行连接,执行下面这段语句:123456为连接密码,%为任意主机,就是任意主机可以通过用户名root + 密码12345 进行连接,你也可以指定只允许某IP的主机进行连接。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
3.加载权限
执行完上面的语句之后还不会立即生效,还需要让mysql重新加载用户权限:
flush privileges;
防火墙端口设置
如果以上配置后无法进行远程连接有可能是端口没有开启或者防火墙没有开启建议开启防火墙和开放端口
防火墙设置
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
端口设置(远程登陆需要22端口,MySQL需要3306端口)
eg:
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent