一、下载 MySQL
1、MySQL点击下载
- MySQL-5
- MySQL-8
2、下载 mysql-版本号-1.el7.x86_64.rpm-bundle.tar
我下载的 mysql5.7 版本,下载新版本类似,找到对应的 rpm-bundle.tar 安装包下载即可
- MySQL-5
- MySQL-8
3、检查是否已经存在 MySQL
检查 CentOS 上是否已经存在 MySQL
rpm -qai | grep mysql
若存在,使用命令删除安装包
rpm -e packname # packname: 包的名字
二、安装 MySQL
1、上传安装包
将文件上传到 /usr/local/src 目录下
cd /usr/local/src
如果 rz 命令无效,则需要安装 lrzsz
yum -y install lrzsz
2、解压压缩包
- MySQL-5
# 解压到当前目前的 mysql 文件夹中
tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar -C ./mysql
- MySQL-8
# 解压到当前目前的 mysql 文件夹中
tar xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar -C ./mysql
3、查看解压后的包
-
MySQL-5
-
MySQL-8
4、安装
- MySQL-5
mysql-community-common-5.7.27-1.el7.x86_64.rpm
mysql-community-libs-5.7.27-1.el7.x86_64.rpm
mysql-community-client-5.7.27-1.el7.x86_64.rpm
mysql-community-server-5.7.27-1.el7.x86_64.rpm
依次安装这四个包
rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm
- MySQL-8
mysql-community-common-8.0.18-1.el7.x86_64.rpm
mysql-community-libs-8.0.18-1.el7.x86_64.rpm
mysql-community-client-8.0.18-1.el7.x86_64.rpm
mysql-community-server-8.0.18-1.el7.x86_64.rpm
依次安装这四个包
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
注:如果安装某一个rpm包时不是图片中所示,即需要删除 CentOS 系统自带的 mariadb
yum -y remove mariadb* # 移除所有关于 mariadb 的包及依赖包
5、修改 mysql 密码
(1)、启动 mysql 服务
systemctl start mysqld.service
(2)、查看临时密码
cat /var/log/mysqld.log
利用临时密码登陆 mysql
-
MySQL-5
-
MySQL-8
修改密码前,是不能操作 mysql 的
(3)、修改密码
报错是因为和 validate_password_policy 的值有关
Policy | Tests Performed |
---|---|
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。必须修改两个全局参数
# MySQL-5
set global validate_password_policy=0;
# MySQL-8
set global validate_password.policy=0;
validate_password_length参数默认为 8,它有最小值的限制
# MySQL-5
select @@validate_password_length;
# MySQL-8
select @@validate_password.length;
其中,validate_password_number_count指定了密码中数据的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度。
这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4
# MySQL-5
set global validate_password_length=1; # 设置密码长度,长度是自定义的
# MySQL-8
set global validate_password.length=1;
查看现在设置的密码长度
# MySQL-5
select @@validate_password_length;
# MySQL-8
select @@validate_password.length;
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
(4)、完成
退出重新进入即可