一、安装YUM Repo
1、由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。
下载命令:
cd /root
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
2、然后进行repo的安装:
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
[root@localhost yum.repos.d]# ls /etc/yum.repos.d
aliyun.repo bak CentOS-Base.repo.backup mysql-community.repo mysql-community-source.repo
二、使用yum命令即可完成安装
1、安装命令:
注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本
yum install -y mysql-server --nogpgcheck
2、启动msyql:
systemctl start mysqld
3、获取安装时的临时密码(在第一次登录时就是用这个密码):
[root@localhost yum.repos.d]# grep 'temporary password' /var/log/mysqld.log
2023-04-06T02:04:29.393108Z 1 [Note] A temporary password is generated for root@localhost: t>>RZnuOf4aL
三、登录:
1、输入密码(刚刚获取的临时密码)
mysql -u root -p
2、改变mysql弱密码策略
set global validate_password_policy=0;
set global validate_password_length=4;
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 |
validate_password_length 最少固定密码的总长度
3、修改mysql密码
ALTER USER root@'localhost' identified by 'sykj_2022';
grant all on *.* to root@'%' identified by 'sykj_2022' with grant option;
4、查看mysql的所有用户
select * from mysql.user\G
5、刷新一下
flush privileges;
一键安装脚本:
#! /bin/bash
echo "下载yum repo配置文件"
cd /root
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
echo "安装repo的mysql源"
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
echo "安装mysql"
yum install -y mysql-server --nogpgcheck
echo "配置mysql开启二进制日志"
echo "log-bin=mysql-bin" >> /etc/my.cnf
echo "启动mysql"
systemctl start mysqld
echo "获取mysql登录密码"
password=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
echo "登录mysql修改root用户密码,创建远程登录用户"
mysql -uroot -p"${password}" << eof
set global validate_password_policy=0;
set global validate_password_length=4;
ALTER USER root@'localhost' identified by 'sykj_2022';
grant all privileges on *.* to 'root'@'%' identified by "sykj_2022";
flush privileges;
eof