Mysql_5.7下载及安装(CentOS7)

安装MySQL的几种方式

当前安装操作均在root权限用户下进行,普通用户请自行在最前面添加sudo前缀

一、 使用docker安装MySQL

1.1 卸载旧版本(如果存在docker,需先卸载旧版本)

# 如果存在Docker,卸载旧版本的docker
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

1.2 安装Docker

详情看官方文档:Docker官方文档

使用存储库安装(推荐使用)

在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。

  • 设置存储库
# 安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定存储库。
yum install -y yum-utils
yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo
  • 安装Docker引擎

安装最新版本的Docker Engine和containerd

yum install -y docker-ce docker-ce-cli containerd.io
# 如果提示接受 GPG 密钥,请验证指纹是否匹配060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配 ,请接受。

1.3 安装mysql5.7.35(普通用户下)

*** 安装MySQL:5.7.35镜像
# 查看docker运行状态
systemctl status docker
# 启动docker服务
systemctl start docker

# 在Docker中想要安装某个程序只需要进行pull操作即可
# 安装mysql:5.7.35
docker pull mysql:5.7.35
# 完成之后使用sudo docker images查看是否下载mysql镜像成功
docker images

# 创建所需要的文件夹
#sudo mkdir -p ./mysql/conf
#sudo touch ./mysql/conf/my.cnf
#sudo mkdir -p ./mysql/data
#sudo mkdir -p ./mysql/logs
*** 进入容器中查看配置文件以及数据文件在哪里?
# 简单启动一个容器
docker run -p 3306:3306 -d mysql:5.7.35
# 使用sudo docke exec -it 容器id /bin/bash
docker exec -it 38a /bin/bash  # 进入容器id为38a开头的容器

# 检测其中的配置文件、日志文件及数据文件分别存放在哪里?
- 配置文件  /etc/mysql/my.cnf
- 日志文件	/var/log/mysql
- 数据文件	/var/lib/mysql

# 退出容器
exit
*** 将镜像运行并挂载到主机中
# 删除错误配置的容器
docker stop 容器id
docker rm -f 容器id 
# 删除镜像
docker rmi 镜像id

# 接下来进行运行和挂载mysql:5.7.35数据库
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs
-e MYSQL_ROOT_PASSWORD=root初始化 root 用户的密码。  # 只有第一次运行需要

# 运行mysql:5.7.35镜像并挂载到主机中
docker run -p 3306:3306 --name subwayMysql \
-v $PWD/mysql/conf:/etc/mysql \
-v $PWD/mysql/logs:/var/log/mysql/ \
-v $PWD/mysql/data:/var/lib/mysql/ \
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.35   # 安装镜像并设置

# 使用sudo docker ps查看镜像是否在运行
docker ps  # 查看镜像是否在运行

# 再使用Navicat进行连接测试

1.4 给docker中的mysql添加用户并赋予表权限

# 使用Navicat或者进入容器内使用mysql -u root -p 进行登陆
user mysql;
select host,user from user;

# 创建一个新的用户
create user 'hcz'@'%' identified by 'ZtLZ3qcGjYW70yyJ';
select host,user from user;

# 为新用户授权
# 允许访问所有数据库下的所有表
grant all privileges on *.* to 'hcz'@'%' identified by 'ZtLZ3qcGjYW70yyJ' ;
FLUSH PRIVILEGES;

# 到这一步就可以通过新创的用户进行root用户权限了

# 删除用户
DROP USER username@localhost;

# 修改后需要刷新权限
FLUSH PRIVILEGES;

docker运行报错问题汇总

  • 出现 Error response from daemon问题

image-20211011144933103

在/etc/docker/下观察是否存在daemon.json,不存在则创建一个输入以下内容。

{
“registry-mirrors”: ["https://docker.mirrors.ustc.edu.cn"]
}

二、 通过Yum源快速安装Mysql5.7(稳定版本)并配置

官方详细文档https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

2.1 下载官方的rpm源,并配置到yum中

  • 通过如下命令查看当前Linux系统是el几
# 通过如下命令查看当前Linux系统是el几
uname -a

在这里插入图片描述

下载源:https://dev.mysql.com/downloads/repo/yum/

命令行:sudo rpm -Uvh http://dev.mysql.com/get/platform-and-version-specific-package-name.rpm

platform-and-version-specific-package-name===包名
例如:sudo rpm -Uvh http://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm

在这里插入图片描述

2.2 选择对应的mysql版本(默认为上面配置的rpm版本)

***使用此命令查看 MySQL Yum 存储库中的所有子存储库,并查看哪些是启用或禁用的

yum repolist all | grep mysql

enable代表当前安装的版本

在这里插入图片描述

***修改安装的版本
2.2.1 使用yum-config-manager命令进行修改
# 默认是找不到yum-config-manager命令的,需要进行安装
yum -y install yum-utils

# 再执行如下命令即可
yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql80-community
2.2.2 手动编辑/etc/yum.repos.d/mysql-community.repo 文件进行修改

编辑/etc/yum.repos.d/mysql-community.repo 文件

在这里插入图片描述

***查看当前enable的版本
yum repolist enabled | grep mysql

在这里插入图片描述

2.3 安装对应版本的MySQL

yum install -y mysql-community-server
***如果安装失败,可以更导入第三方gpgkey

在这里插入图片描述

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

yum install -y mysql-community-server

重新运行安装服务命令,即可安装成功
在这里插入图片描述

2.4 启动MySQL服务器

# 启动MySQL服务器
systemctl start mysqld

# 开机自启动MySQL服务器
systemctl enable mysqld

# 查看MySQL服务器的状态
systemctl status mysqld

2.5 配置MySQL服务器

1. 查看MySQL的临时root密码

sudo grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

MySQL 的 validate_password 插件是默认安装的。
这将要求密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符,并且密码总长度至少为 8 个字符。

2. 重置root(两种方式)
  • 通过mysqladmin进行更改root密码
# 修改密码
mysqladmin -u root -p password 'newpassword'

# 会出现修改密码, 输入刚刚生成的临时密码

# 可能会提示你修改的密码不安全,我们可以通过下面的网站进行生成
# 这将要求密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符,并且密码总长度至少为 8 个字符。
# 如果是测试使用的可以用我下面这个密码
mysqladmin -u root -p password "123456Aa!"
  • 通过命令mysql_secure_installation进行重置root以及其他权限(推荐使用)

1、先改密码:

在这里插入图片描述

2、是否修改密码?选择N

在这里插入图片描述

3、是否移除匿名用户?选择y

在这里插入图片描述

4、是否关闭root用户远程连接数据库?选择y

在这里插入图片描述

5、是否删除test库以及对test库的访问权限?选择y

在这里插入图片描述

6、是否重新加载授权表?选择y

在这里插入图片描述

更多详细,看官方文档

3. 通过root用户进行mysql并创建用户和赋予root权限

由于默认的root用户一般不会用来进行远程连接,所以一般会生成一个用户去进行远程连接。

# 通过命令进入mysql
mysql -u root -p
`输入设置的密码`
# 查看用户信息
select host,user,plugin,authentication_string from mysql.user;
# 创建用户(1、只允许本地登陆访问,2、允许远程登陆访问)
1. 只允许本地登陆访问
create user 'test'@'localhost' identified by '987654Aa!';
2. 运行远程登陆访问
create user 'test'@'%' identified by '987654Aa!';
# 最后都需要刷新权限
flush privileges;

# 删除用户
DROP USER 'username'@'host';


# 创建用户并赋予权限(8.0版本需要分开执行)
# mysql5.7、5.6等旧版本创建用户并赋予权限
grant ALL PRIVILEGES ON *.* to root@"%" identified by "xxxx" WITH GRANT OPTION;

# mysql8.0创建用户并赋予权限步骤如下:
# 为新用户添加权限(1、本地,2、外网)
1. 本地
grant all privileges on 数据库名.表名 to '用户名'@'localhost';
flush privileges;
2. 外网(全部授权)
grant ALL PRIVILEGES ON *.* to root@"%";
# 刷新权限
flush privileges;

2.6 到此为止,MySQL就可以进行远程访问了

切记:如果连接不成功,请检查防火墙的3306端口是否开启,没有开始,请开启防火墙的3306端口。
或者直接关闭防火墙,使端口全部开放。
不会配置的,可以查看Redis安装中开放6379端口部分内容。Redis_6.2.12下载及安装(CentOS7)

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值