1.yum换源
- 备份
/etc/yum.repos.d/
目录下的所有内容 - 删除之前的所有yum源:
rm -f /etc/yum.repos.d/*
- 重新下载合适的yum源,例如阿里云的yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
- 清理yum缓存:
yum clean all
- 重新生成yum缓存:
yum makecache
- 更新软件包:
yum update
2.安装MySQL
- 查看系统中是否已经自带安装MySQL:
yum list installed | grep mysql
,如果有的话使用yum -y remove <package_name>
进行删除 - 安装wget指令:
yum install wget -y
- 添加rpm源:
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
- 下载rpm文件:
yum install mysql80-community-release-el7-3.noarch.rpm -y
- 安装MySQL:
yum install mysql-community-server -y
- 如果遇到
GPG signature
未安装的问题,可以参考 MySQL :: MySQL 8.0 Reference Manual :: 2.1.4.4 Signature Checking Using RPM 来解决
- 哪个rpm的签名有问题,就检查哪个包的签名:
rpm --checksig package_name.rpm
,此时会显示NOT OK
- 执行命令:
bash
gpg --export -a 3a79bd29 > 3a79bd29.asc
rpm --import 3a79bd29.asc
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
不用理会ERROR信息,执行完毕后再次检查签名,显示OK
即可
- 重新执行安装指令:
yum install mysql-community-server -y
参考链接:
- Centos7 Yum安装MYSQL8.0详细安装步骤_centos在线安装mysql8.0.34-CSDN博客
- 解决CentOS yum安装Mysql8提示"公钥尚未安装"或"密钥已安装,但是不适用于此软件包"的问题_源 "mysql 8.0 community server" 的 gpg 密钥已安装,但是不适用于此-CSDN博客
3.MySQL连接
- 启动mysql服务:
systemctl start mysqld.service
- 获取临时密码:
grep "password" /var/log/mysqld.log
- 使用临时密码登录:
mysql -uroot -p
- 修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
【密码要符合mysql安全规则,否则修改不成功】 - 创建用户
root@%
:CREATE USER 'root'@'%' IDENTIFIED BY 'your_password'
【创建一个 root 用户,允许从任何主机连接,并设置密码为 your_password】 - 修改远程访问权限:
grant all privileges on *``_.*_`` to 'root'@'%' with grant option;
- 刷新权限:
flush privileges;
之后即可远程连接MySQL数据库
4.配置修改
- 设置默认字符集为 UTF-8:修改配置文件:
/etc/my.cnf
- 修改端口号为3308(可选,为了避免常规的数据库攻击)【如果修改端口,命令行登录的时候需要添加
-P3308
】
bash
[mysqld]
# 设置默认字符集为 UTF-8
character-set-server = utf8
collation-server = utf8_general_ci
port = 3308
[client]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
- 重启mysql服务:
systemctl restart mysqld.service