基于CentOS7安装MySQL数据库并远程访问

MySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司开发,目前属于Oracle公司。任何人都能从Internet下载MySQL软件,而无需支付任费用,并且“开放源码”意味着任何人都可以使用和修改该软件。下面我们来学习如何在CentOS7环境安装MySQL数据库,并且进行远程访问。

一、设置阿里yum源,提高下载速度

前提:能上网,ping www.baidu.com

1、首先查看本地yum源

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# cat ./CentOS-Base.repo

可以发现yum地址默认是centos的官网镜像yum,服务器在外网,因此下载速度慢。这里我们可以更换为阿里yum源镜像。

2、下载wget工具

这里先安装wget工具,后面会用到。

[root@localhost ~]# yum install -y wget

3、删除yum仓库中所有镜像

[root@localhost yum.repos.d]# rm -rf ./*

 4、下载新的yum源

在阿里云官网找到CentOS的yum镜像地址

阿里云官网:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)

 找到CentOS7的yum下载链接。

 运行这两条命令。

//下载Centos-Base.repo文件
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
//生成缓存
[root@localhost ~]# yum makecache

这样yum镜像已经默认更改为阿里yum源了。

二、下载MySQL数据库

上面设置好yum源之后,接下来开始安装mysql数据库,这里以mysql-8.0为例

1、下载mysql80-community-server.rpm包

通过下面的命令可以查看,目前还不能安装mysql服务。

[root@localhost ~]# yum install mysql-community-server -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
没有可用软件包 mysql-community-server。
错误:无须任何处理

所以我们还需要下载mysql服务的rpm包。

[root@localhost ~]# yum localinstall -y https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

2、解决“公钥尚未安装”问题

下载好mysql服务的rpm包之后,再次安装发现有些依赖包安装时会出现“公钥尚未安装”的问题。

[root@localhost ~]# yum install mysql-community-server -y

a、检查出错的包的签名

[root@localhost ~]# rpm --checksig /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm 
[root@localhost ~]# rpm --checksig /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-common-8.0.33-1.el7.x86_64.rpm 

检查结果可以发现包的格式是错误的。这里出错的原因暂不清楚,rpm和yum工具理论上可以直接安装二进制包(后缀为.rpm),所有我猜测可能是因为这两个包的格式被更改过,希望有懂的大佬可以指正一下。

b、执行指令

[root@localhost ~]# gpg --export -a 3a79bd29 >3a79bd29.asc
[root@localhost ~]# rpm --import 3a79bd29.asc
[root@localhost ~]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

c、再次验证

这时候发现rpm包可以使用了。

 3、再次安装mysql-community-server

[root@localhost ~]# yum install mysql-community-server -y

再次安装后发现没有报错,安装成功。

三、启动MySQL服务,修改密码

1、查看并启动mysql服务

//首次安装服务并没有启动,通过下面指令启动服务。
[root@localhost ~]# systemctl status mysqld.service

//启动服务
[root@localhost ~]# systemctl start mysqld.service
//再次查看,mysql服务已经启动成功了

2、获取临时密码并修改

查看mysql日志文件 /var/log/mysqld.log获取临时密码。

[root@localhost ~]# cat /var/log/mysqld.log

 temporary password...那一行就是我们需要的临时密码。

3、连接mysql

[root@localhost ~]# mysql -u root -p.SFwqu-lK8au

通过输入临时密码,我们就可以连接到数据库了(密码最好复制粘贴,避免出错)。

注意:密码不包括"."前面的空格(试了很多次都出错了,泪的教训)

 4、修改密码以及安全等级策略

连接到数据库之后,我们发现并不能对数据库进行一些基本操作,提示需要修改密码。

 这里我们先修改为一个简单一点的密码。

mysql>alter user user()  identified by '123456';

 可以发现提示密码不符合安全策略,这是因为我们设置的密码复杂度不够,我们再设置一个复杂一点的密码。

mysql>alter user user()  identified by 'Hello_mysql2022';

修改完成之后,可以看到已经可以正常访问数据库了。

如果想更改密码安全等级策略低一些,可以通过以下指令进行修改。

mysql>set global validate_password.policy=0;
mysql>set global validate_password.length=1;

现在可以将密码更改为更简单了。

四、远程连接

做完以上工作后,我们就可以开始测试远程访问数据库了。

1、首先划分环境

mysql服务器是安装在linux虚拟机上的,我们要通过宿主机模拟客户端去访问。

需要设置宿主机的vnet8网卡 ip与虚拟机的网卡ip处于同一网段。

宿主机:172.16.24.1

虚拟机:172.16.24.77

2、测试连通性

在宿主机上ping通虚拟机(不需要虚拟机ping通宿主机,由于我们宿主机一般都会开启防火墙,所以ping不通也很正常)

3、开放端口

通过命令开放3306号端口,提供远程连接。

[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success

 重新加载mysql服务。

[root@localhost ~]# firewall-cmd --reload
success

再次进入mysql数据库进行配置。

[root@localhost ~]# mysql -uroot -p123456
mysql> use mysql;
mysql> update user set host='%' where host='localhost';
mysql> flush privileges;

显示Query OK则说明配置完成。

退出数据库,再次访问。

[root@localhost ~]# mysql -h172.16.24.77 -uroot -P3306 -p123456

成功进入则说明远程访问成功了。

4、在宿主机上进行远程连接

方法一:通过dos终端访问

按住win+R键,运行cmd指令进入终端

通过mysql -h主机号 -P端口号 -u用户名 -p用户密码进行连接,结果显示以及连接上虚拟机的数据库了。

方法二:通过图形用户软件来连接,这里以Navicat为例

打开Navicat软件 点击连接-->选择MySQL

 输入信息

 创建一个数据库和表,添加信息

 再返回虚拟机上查看表的信息。

 远程访问成功。

以上就是CentOS7下安装mysql8.0以及远程访问的过程,如有遗漏或错误,望各位能够指正。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答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不通,可能是网络配置的问题,需要检查网络设置和路由。 希望以上解决方法能够帮助你解决无法远程连接的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stone1099

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值