找回密码
 立即注册
首页 业界区 安全 CentOS7安装MYSQL8.X详细教程

CentOS7安装MYSQL8.X详细教程

崔竹 2025-6-11 13:07:03
CentOS7安装MYSQL8.X详细教程

1-首先查看系统是否存在mysql,无则不返回
  1. rpm -qa|grep mysql
复制代码
2-安装wget
  1. yum -y install wget
复制代码
3-抓取mariadb并删除包,无则不返回
  1. rpm -qa|grep mariadb
复制代码
4-删除mariadb-libs-5.5.68-1.el7.x86_64
  1. rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
复制代码
5-配置阿里云的yum
  1. wget http://mirrors.aliyun.com/repo/Centos-7.repo
复制代码
6-配置成功后需要重新加载yum
  1. yum clean all    --清除yum
  2. yum makecache    --清除缓存
  3. yum repolist     --查看仓储包
复制代码
7-进入tmp文件夹,并清空
  1. cd /tmp/
  2. rm -rf *
复制代码
8-通过wget下载mysql8.0包(如果包不是最新的则需要注意在安装MYSQL前进行Mysql的GPG升级)
获取最新的包打开MYSQL官网wget https://dev.mysql.com/get/Downloads/
1.png

2.png

然后拼接在[wget https://dev.mysql.com/get/Downloads/]后面
  1. wget https://dev.mysql.com/get/Downloads/mysql-community-server-8.0.27-1.el7.x86_64.rpm
复制代码
本教程提供的yum源包
  1. wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
复制代码
9-配置mysql的yum源
  1. sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
复制代码
执行成功后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo 及 mysql-community-source.repo
10-进入yum.repos.d查看
  1. cd /etc/yum.repos.d/
  2. ls -l
复制代码
11-开始安装Mysql
  1. yum install -y  mysql-community-server
复制代码
注意:上面提到过,通过wget获取的MYSQL包不是最新的前提下有可能报错,这是因为MYSQL的GPG升级了,需要重新获取
如果无这个报错可忽略跳过本步骤
  1.   报错信息如下:
  2. Failing package is: mysql-community-client-8.0.28-1.el7.x86_64
  3. GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
复制代码
3.png

12-这个时候需要重执行(2022则为今年的年份,如果2022年不行,可以更改为2023年),执行完GPG升级,需要重新安装
  1. // 如果2022年不行,可以更改为2023年
  2. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  3. yum install -y  mysql-community-server
复制代码
13-安装完成
4.png

打开my.cnf文件增加以下 [skip-name-resolve] 语句到末尾(这一步可不做设置)
  1. vi /etc/my.cnf  
  2. #跳过名称解析,提高数据库的连接速度
  3. skip-name-resolve
复制代码
14-启动MYSQL服务,并查看状态,查看端口
  1. systemctl start mysqld        --启动mysql服务
  2. systemctl status mysqld       --查看mysql服务状态
  3. netstat  -nlpt | grep mysqld  --查看端口
复制代码
5.png

15-设置开机启动
  1. systemctl enable mysqld
  2. systemctl daemon-reload
复制代码
16-抓取mysql临时密码
  1. cat /var/log/mysqld.log  | grep password
复制代码
6.png

17-登录进mysql
mysql -u -p -P -h
  1. mysql  -uroot  -p
复制代码
18-更改密码(必须是强密码),并刷新(mysql结尾一定要加英文分号;)
  1. mysql> alter user 'root'@'localhost'  identified by 'Root123..';  --修改密码(强密码)
  2. mysql> flush privileges;                                          --刷新,立即生效
  3. mysql> select user,host from mysql.user;                          --查看数据库中账号信息
复制代码
弱密码会报错,如图
7.png

做这一步前提:必须是修改了默认的随机密码(执行步骤18)
关掉强密码,修改密码长度最短为6位数,修改密码为弱密码
  1. mysql> set global validate_password.policy=0; --关掉强密码认证
  2. mysql> set global validate_password.length=6; --密码长度最短为6位数
  3. mysql> alter user 'root'@'localhost'  identified by '123456';  --修改密码(弱密码)
  4. mysql> flush privileges;
复制代码
8.png

19-开放3306端口,并且重启防火墙,然后查看端口,开放端口是为了外网能通过Navicat Premium等其他工具访问
  1. # firewall-cmd --zone=public --add-port=3306/tcp --permanent --开放3306端口
  2. # firewall-cmd --reload                                      --重启防火墙
  3. # firewall-cmd --list-ports                                  --查看开放的端口
复制代码

做完如上部署,重新登录进到数据库,修改user表中的Host:
  1. mysql -uroot -p123456                            --登录数据库
  2. mysql> show databases;                             --查数据来库
  3. mysql> use mysql;                                  --使用数据库
  4. mysql> select Host, User from user;                --查询表
  5. mysql> update user set Host='%' where User='root'; --修改User表内root用户的Host为%
  6. mysql> flush privileges;                           --刷新
复制代码
10.png

11.png

12.png

MYSQL知识点
****如果创建一个用户,给予单个库权限
  1. mysql> create database  test_data;                                          --创建一个数据库
  2. mysql>  create user admin@'%' identified  by 'Admin@123..';                --创建一个新的用户 admin 密码 Admin@123..
  3. mysql> grant all privileges on test_data.* to admin@'%' with grant option; --授权,给test_data库的所有权限
  4. mysql> flush privileges;                                                   --刷新
复制代码
MySQL5.6版本和8.0版本的的用户授权方式不同
MySQL5.6版本的用户授权
  1. mysql> create user test identified by '123456';
  2. mysql> grant all privileges on *.* to 'admin'@'%'identified by '123456' with grant option;
  3. mysql> flush privileges ;
复制代码
MySQL8.0版本的用户授权
  1. mysql> create user test@'%' identified  by '123456';
  2. mysql> grant all privileges on *.* to admin@'%' with grant option;
  3. mysql> flush privileges;
复制代码
转发网站

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册