CentOS8服务器安装Mysql并设置远程连接

过程

安装

1、通过以下命令,使用最新的包管理器安装MySQL(安装过程中一直yes/y即可)

sudo dnf install @mysql

2、设置MySQL自动启动

sudo systemctl enable --now mysqld

3、检查MySQL是否在运行

sudo systemctl status mysqld

结果:
在这里插入图片描述
(如图显示active,则表明MySQL已经安装成功且正在运行,接下来进行安全性、远程连接等配置)

安全性配置

4、运行mysql_secure_installation脚本,进行密码设置、允许远程连接等安全性设置。

sudo mysql_secure_installation

(1)第一步是进行密码设置,问是否VALIDATE PASSWORD component?输入y;密码有三个等级low=0、medium=1、strong=2,直接选择0即可;再输入两次相同的密码(这个密码是登录mysql的密码)。确认是否继续使用提供的密码?输入y ,回车即可。
(2)第二步移除匿名用户? 输入y ,回车。
(3)第三步设置为不允许root远程登陆? 我们肯定需要远程登录,所以输入n ,回车。
(4)移除test数据库? 输入y ,回车
(5)重新载入权限表? 输入y ,回车
在这里插入图片描述

设置root用户权限

5、从服务器登录MySQL,将root用户的host字段设为’%’,使得用户root可以从任意IP的机器上登录(若root用户的host字段为localhost,则只能本机登录)。

(1)输入以下命令,从本机登录MySQL:

mysql -uroot -p

(2)输入密码进入mysql中,结果如下图
在这里插入图片描述
(3)输入以下命令,选择mysql数据库:

use mysql;

(4)输入以下命令,进行host字段(主机IP)赋值:

update user set host='%' where user='root';

(5)输入以下命令,刷新系统权限

flush privileges;

(6)通过以下命令,验证是否设置成功

use mysql;    
select user,host from user;

若mysql数据库的user表出现以下字段则设置成功
在这里插入图片描述

防火墙设置

6、输入以下命令,检查防火墙是否开启:

systemctl status firewalld

若结果如下图显示dead,则是未开启;在这里插入图片描述
若结果如下图显示running,则是开启
在这里插入图片描述
7、处于安全性考虑,若你的防火墙是关闭的,则推荐你开启防火墙,通过以下命令开启防火墙

systemctl start firewalld

8、输入以下命令,查看防火墙允许哪些端口被访问:

firewall-cmd --list-ports

9、若无3306这个被用作数据库访问的默认端口,则通过以下命令开启系统防火墙的3306端口:

sudo firewall-cmd --add-port=3306/tcp --permanent

10、输入以下命令重启防火墙:

sudo firewall-cmd --reload

(若无意外防火墙部分设置到此就ok了,接下来就是服务器安全组设置)

安全组设置

11、进入控制台查看该服务器的安全组设置,查看入方向是否开放3306端口,若无则开启3306端口。

(至此MySQL的远程连接设置已完成)

12、输入以下命令重启MySQL服务,然后就可以愉快的在自己电脑上进行远程连接了。

sudo systemctl restart mysqld

若第一次连接速度很慢,则关闭MySQL主机查询DNS

MySQL会反向解析远程连接地址的DNS记录,如果MySQL主机无法连接外网,则DNS可能无法解析成功,导致第一次连接MySQL速度很慢,所以在配置中可以关闭该功能。通过以下命令到/etc/my.cnf文件中关闭该功能。
(1)先输入以下命令,到etc目录下

cd /etc/

(2)通过vim命令进入编辑器中修改文件配置

vim my.cnf

(3)在文件中添加以下命令

[mysqld]
skip-name-resolve
bind-address=0.0.0.0 #此配置非必须,可以防止限定IP访问MySQL服务

(4)保存退出即可

总结

CentOS服务器安装很简单,一条命令即可,但想要远程访问服务器上的MySQL,则需要配置多个地方,包括设置用户root权限、防火墙端口设置、安全组端口设置等。

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要让CentOS 7上的Docker安装MySQL可以远程连接,需要进行以下步骤: 1. 首先,确保CentOS 7上已经安装了Docker和Docker Compose。可以通过运行以下命令来检查它们的版本: ``` docker version docker-compose version ``` 2. 下载MySQL的Docker镜像并生成一个新的容器。可以运行以下命令来完成此步骤: ``` docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 mysql:latest ``` 3. 在此步骤中,注意将`your_password`替换为您自己设置的密码。此命令会创建一个名为`mysql`的容器,并将MySQL的默认端口3306映射到主机的3306端口。 4. 检查Docker容器是否正在运行,并且3306端口是否已被监听。可以使用以下命令来检查它们: ``` docker ps netstat -tuln | grep 3306 ``` 5. 确保CentOS 7防火墙已正确配置以允许从远程访问MySQL的3306端口。可以使用以下命令来打开3306端口: ``` firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload ``` 6. 现在,可以从远程机器使用MySQL客户端连接到CentOS 7上的Docker中运行的MySQL实例。使用以下命令连接到MySQL服务器: ``` mysql -u root -p -h your_server_ip ``` 请注意将`your_server_ip`替换为CentOS 7主机的IP地址,将提示输入密码即可。 通过执行以上步骤,您应该能够远程连接CentOS 7上运行的Docker MySQL实例。 ### 回答2: 当在CentOS 7上使用Docker安装MySQL时,可能会遇到无法远程连接的问题。以下是一些可能的解决方法: 1. 检查Docker容器网络设置:确认Docker容器是否使用正确的网络模式。可以使用`docker ps`命令查看容器的详细信息,确认容器是否使用了`--network`参数或正确的`network_mode`设置。 2. 检查MySQL配置文件:在Docker容器内部,打开MySQL配置文件`/etc/mysql/my.cnf`,确保`bind-address`设置为`0.0.0.0`,允许所有IP访问数据库。 3. 检查容器端口映射:通过`docker ps`命令查看MySQL容器的端口映射情况,确保将MySQL容器的端口映射到正确的主机端口上。例如,如果容器内部的MySQL端口是3306,则可以通过`docker run`命令的`-p`参数将其映射到主机上的端口。 4. 防火墙配置:如果在主机上启用了防火墙,可能需要打开MySQL所用的端口。可以使用以下命令将3306端口添加到防火墙规则中: ``` sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` 5. 检查MySQL用户权限:确保在MySQL容器中,用户拥有远程连接MySQL的权限。可以通过以下命令登录MySQL容器: ``` docker exec -it <mysql_container_id> bash mysql -u root -p ``` 然后在MySQL命令行中,执行以下命令检查用户权限: ``` SHOW GRANTS FOR '<username>'@'%' ; ``` 如果没有远程连接权限,可以通过以下命令为该用户添加权限: ``` GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%' IDENTIFIED BY '<password>' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 6. 检查主机网络连接:确保从远程主机可以ping通CentOS 7主机的IP地址。如果ping不通,可能是网络配置的问题,需要检查网络设置和路由。 希望以上解决方法能够帮助你解决无法远程连接的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值