一、首先安装YUM Repo
1、由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。
我这里安装mysql的版本是 5.7.42
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
注意:如果wget没有安装,先执行如下命令进行wget安装
yum -y install wget
2、然后进行repo的安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件
mysql-community.repo 和 mysql-community-source.repo
二、使用yum命令即可完成安装
2.1 注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本
cd /etc/yum.repos.d/
2.2 安装命令
yum install mysql-server
注意如果报错:mysql-community-libs-5.7.37-1.el7.x86_64.rpm 的公钥尚未安装
失败的软件包是:mysql-community-libs-5.7.37-1.el7.x86_64 GPG 密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql。
解决方案:
1.换源:阿里源
wget http://mirrors.aliyun.com/repo/Centos-7.repo
2.Centos7安装Mysql5.7 提示GPG 密钥不存在/不合适
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
2.3 修改配置跳过校验,修改/etc/yum.repos.d/mysql-community.repo文件内容
修改对应安装版本的
gpgcheck默认值为1,gpgcheck=0即可。
vim /etc/yum.repos.d/mysql-community.repo
2.4 启动msyql
systemctl start mysqld
2.5 获取安装时的临时密码(在第一次登录时就是用这个密码):
grep 'temporary password' /var/log/mysqld.log
注意 root@localhost:后就是临时密码,全部复制。
如果没有临时密码,解决方案
1.删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这)
rm -rf /var/lib/mysql
2.重启mysqld服务
systemctl restart mysqld
3.再去找临时密码
grep 'temporary password' /var/log/mysqld.log
该解决方案适用于mysql5.7以上版本
三、登录并进行配置
3.1 登录命令,然后输入密码(刚刚获取的临时密码)
mysql -u root -p
3.2 先设置一个复杂的密码,然后修改密码设置策略。设置复杂密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aA@123456'
3.3 查看 mysql 初始的密码策略:
mysql> SHOW VARIABLES LIKE'validate_password%';
3.4 首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW
set global validate_password_policy=LOW;
3.5 当前密码长度为8,修改密码长度为6位的密码
set global validate_password_length=6;
3.6 然后就可以设置简单的密码了
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
3.7 可以验证密码释放修改成功,输入命令退出后,在进行登录进行测试
quit 或者 exit
3.8 修改用户权限让数据库可以远程连接
-- 使用mysql数据库
use mysql;
-- 查询user表中的Host和User字段
select Host, User from user;
-- 将root用户的Host字段修改为%,表示该用户可以从任意IP地址登录
update user set host ='%' where user='root';
-- 使修改后的配置生效
flush privileges;
-- 退出MySQL
quit;
3.9 配置mysql
vi /etc/my.cnf
添加到配置文件中
-- 设置MySQL的字符集为utf8
character-set-server=utf8
-- 设置表名大小写敏感
lower_case_table_names=0
-- 开启Slow Query日志,记录超过10秒的SQL查询语句
slow_query_log=1
-- 将long_query_time设置为10秒。这可以帮助我们找到那些消耗时间较长的SQL查询,并进行优化和调整。
long_query_time=10.000000