升级系统并安装常用软件
yum -y updateyum -y install epel-release lrzsz gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre-devel vim net-tools man wgetyum makecache
卸载已安装的mysql
rpm -qa | grep -i mysqlrpm -qa | grep -i mariadb# 上面的查询如果有,就删除rpm -e mariadb.... --nodeps# 删除不掉的话,就添加--nodeps参数
下载安装包
https://dev.mysql.com/downloads/mysql/
centos属于Red Hat,系统是8版本,就选择对应版本
也可以使用wget命令下载安装包 wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.26-1.el8.x86_64.rpm-bundle.tar
安装MySQL
- 创建mysql 文件夹,上传安装包,解压至mysql文件夹中

tar -xvf mysql-8.0.29-1.el8.x86_64.rpm-bundle.tar -C mysql
- 删除多余的rpm包,保留最少安装文件
rm -rf debug

安装
rpm -ivh *.rpm —force —nodeps
启动mysql
systemctl start mysqld
查看初始化密码
grep ‘temporary password’ /var/log/mysqld.log
登录
mysql -uroot -p密码
进去之后,必须先重置密码,做不了其他操作,密码的要求很严苛,记下来免得遗忘
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’; flush privileges;
选做(赋予root用户远程登录权限)
update mysql.user set host = ‘%’,plugin=’mysql_native_password’ where user=’root’; flush privileges;
修改密码策略
# 查看 mysql 初始的密码策略SHOW VARIABLES LIKE 'validate_password%';# 设置密码策略和长度set global validate_password.policy=LOW;set global validate_password.length=6;
关于 mysql 密码策略相关参数;
- validate_password_length 固定密码的总长度;
- validate_password_dictionary_file 指定密码验证的文件路径;
- validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
- validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
- validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
- 0/LOW:只验证长度;
- 1/MEDIUM:验证长度、数字、大小写、特殊字符;
- 2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
- validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
- 创建一个常用用户
create user ‘dev’@’%’ identified by ‘123123’; grant all on . to ‘dev’@’%’ WITH GRANT OPTION; flush privileges;
开机自启动
设置mysql服务开机自启动 systemctl enable mysqld.service 停止mysql服务开机自启动 systemctl disable mysqld.service
或者
vi /etc/rc.local
在文件中添加 service mysqld start即可
常用命令
# 启动数据库systemctl start mysqld# 关闭数据库systemctl stop mysqld# 重启数据库systemctl restart mysqld# 查看数据库状态systemctl status mysqld
大小写敏感问题 【重要】
在windows上面,mysql8大小写是不敏感的
但是在linux上面,默认开启大小写敏感
而且在初始化之后不能够修改该配置,不然会启动失败
所以如果想修改必须,在mysql初始化的时候修改
# 下面的步骤要在安装完成mysql后,初次启动mysql之前完成
mysqld --initialize //会在/var/log/mysqld.log生成随机密码
mysqld --initialize --user=mysql --lower-case-table-names=1
// 初始化时设置不区分大小写(win默认1-不缺分,mac默认2-部分区分,linux默认0-全部区分)
my.cnf 添加配置 lower_case_table_names=1
