1-首先查看系统是否存在mysql,无则不返回
2-安装wget
3-抓取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
6-配置成功后需要重新加载yum
1 2 3 | # yum clean all --清除yum # yum makecache --清除缓存 # yum repolist --查看仓储包 |
7-进入tmp文件夹,并清空
1 2 | # cd /tmp/ # rm -rf * |
8-通过wget下载mysql8.0包(如果包不是最新的则需要注意在安装MYSQL前进行Mysql的GPG升级)
获取最新的包打开MYSQL官网wget https://dev.mysql.com/get/Downloads/
![](https://img-blog.csdnimg.cn/img_convert/f99d3defbec1efe93f9c9f6a16cd04dc.png)
![](https://img-blog.csdnimg.cn/img_convert/19d880b195bc3f1997427032d10e7469.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源包
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 2 | # cd /etc/yum.repos.d/ # ls -l |
11-开始安装Mysql
1 | # yum install -y mysql-community-server |
注意:上面提到过,通过wget获取的MYSQL包不是最新的前提下有可能报错,这是因为MYSQL的GPG升级了,需要重新获取
如果无这个报错可忽略跳过本步骤
报错信息如下:
Failing package is: mysql-community-client-8.0.28-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
![](https://img-blog.csdnimg.cn/img_convert/6078a4ed368713db7f9ef88bf0c56cfd.png)
12-这个时候需要重执行(2022则为今年的年份),执行完GPG升级,需要重新安装
13-安装完成
![](https://img-blog.csdnimg.cn/img_convert/1917cb8da0b80deab50e791e7346b05a.png)
打开my.cnf文件增加以下 [skip-name-resolve] 语句到末尾(这一步可不做设置)
1 2 3 | # vi /etc/my.cnf #跳过名称解析,提高数据库的连接速度 # skip-name-resolve |
14-启动MYSQL服务,并查看状态,查看端口
1 2 3 | # systemctl start mysqld --启动mysql服务 # systemctl status mysqld --查看mysql服务状态 # netstat -nlpt | grep mysqld --查看端口 |
![](https://img-blog.csdnimg.cn/img_convert/f577c0e038a1f9d99c103fcaaa312977.png)
15-设置开机启动
1 2 | # systemctl enable mysqld # systemctl daemon-reload |
16-抓取mysql临时密码
1 | # cat /var/log/mysqld.log | grep password |
![](https://img-blog.csdnimg.cn/img_convert/17ede1c93246946b19cbb0975e626141.png)
17-登录进mysql
mysql -u<账号> -p<密码> -P<端口号,默认3306> -h<mysqld服务器IP,如果比指定"-h" 则表示本地登陆>
18-更改密码(必须是强密码),并刷新(mysql结尾一定要加英文分号;)
1 2 3 | mysql> alter user 'root' @ 'localhost' identified by 'Root123..' ; --修改密码(强密码) mysql> flush privileges ; --刷新,立即生效 mysql> select user ,host from mysql. user ; --查看数据库中账号信息 |
弱密码会报错,如图
![](https://img-blog.csdnimg.cn/img_convert/cfb56f9c85fe31c22644c1697bf51448.png)
做这一步前提:必须是修改了默认的随机密码(执行步骤18)
关掉强密码,修改密码长度最短为6位数,修改密码为弱密码
1 2 3 | mysql> set global validate_password.policy=0; --关掉强密码认证 mysql> set global validate_password.length=6; --密码长度最短为6位数 mysql> alter user 'root' @ 'localhost' identified by '123456' ; --修改密码(弱密码) |
![](https://img-blog.csdnimg.cn/img_convert/e7e9d3ff89b9a82019c4c17734dcda36.png)
19-开放3306端口,并且重启防火墙,然后查看端口,开放端口是为了外网能通过Navicat Premium等其他工具访问
1 2 3 | # firewall-cmd --zone=public --add-port=3306/tcp --permanent --开放3306端口 # firewall-cmd --reload --重启防火墙 # firewall-cmd --list-ports --查看开放的端口 |
![](https://img-blog.csdnimg.cn/img_convert/f34493b16dec564bc5224f98cb36918e.png)
做完如上部署,重新登录进到数据库,修改user表中的Host:
1 2 3 4 5 6 | # mysql -uroot -p123456 --登录数据库 mysql> show databases; --查数据来库 mysql> use mysql; --使用数据库 mysql> select Host, User from user; --查询表 mysql> update user set Host= '%' where User= 'root' ; --修改User表内root用户的Host为% mysql> flush privileges; --刷新 |
![](https://img-blog.csdnimg.cn/img_convert/3f24a3d4e80a4cbbcf2a2944609b3bfd.png)
MYSQL知识点
如果创建一个用户,给予单个库权限
1 2 3 4 | mysql> create database test_data; --创建一个数据库 mysql> create user admin@ '%' identified by 'Admin@123..' ; --创建一个新的用户 admin 密码 Admin@123.. mysql> grant all privileges on test_data.* to admin@ '%' with grant option ; --授权,给test_data库的所有权限 mysql> flush privileges ; --刷新 |
MySQL5.6版本和8.0版本的的用户授权方式不同
MySQL5.6版本的用户授权
1 2 3 | mysql> create user test identified by '123456' ; mysql> grant all privileges on *.* to 'admin' @ '%' identified by '123456' with grant option ; mysql> flush privileges ; |
MySQL8.0版本的用户授权
1 2 3 | mysql> create user test@ '%' identified by '123456' ; mysql> grant all privileges on *.* to admin@ '%' with grant option ; mysql> flush privileges ; |