下载 MySQL 安装包
前往 MySQL Archives,选择适合 CentOS 7 的安装包。
关闭防火墙和 SELinux
# 临时关闭防火墙
systemctl stop firewalld.service
# 永久关闭防火墙
systemctl disable firewalld.service
# 查看 SELinux 状态
getenforce
# 临时关闭 SELinux
setenforce 0
# 永久关闭 SELinux
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
卸载 mariadb
# 查询安装的 mariadb 包
rpm -qa | grep mariadb
# 卸载 mariadb
rpm -e --nodeps [package_name]
上传压缩包至服务器
使用 FTP 或 rz 命令上传压缩包至 /opt/8.0.30 目录。
mkdir -p /opt/8.0.30
# 使用 FTP 或 rz 命令上传
解压压缩包
cd /opt/8.0.30
tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
安装 RPM 包
rpm -ivh mysql-community-{server,client,common,libs,icu}-*
初始化 MySQL
mysqld --initialize --user=mysql --lower-case-table-names=1
# 记录生成的随机密码
grep "password" /var/log/mysqld.log
编辑配置文件
vi /etc/my.cnf
# 在 [mysqld] 部分添加:
lower-case-table-names=1
启动 MySQL 服务
systemctl start mysqld
修改 root 密码并配置远程访问
mysql -u root -p
# 在 MySQL 命令行中输入:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'QWER1234@';
CREATE USER 'root'@'%' IDENTIFIED BY 'QWER1234@';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
字符集和时区配置
vi /etc/my.cnf
# 在 [client] 和 [mysql] 下增加:
default-character-set=utf8
# 在 [mysqld] 下增加:
character-set-server=utf8
default-time_zone='+8:00'
性能和安全性配置
# 在 [mysqld] 下增加:
max_connections=1000
max_connect_errors=1000
default-authentication-plugin=mysql_native_password
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
log_bin_trust_function_creators=1
重启 MySQL 服务
systemctl restart mysqld
停止 MySQL 服务并创建新的数据目录
service mysqld stop
mkdir -p /home/data/mysql
修改配置文件
vi /etc/my.cnf
# 修改或增加以下行:
datadir=/home/data/mysql
socket=/home/data/mysql/mysql.sock
迁移现有数据文件
mv /var/lib/mysql/* /home/data/mysql/
重新启动 MySQL 服务
service mysqld start
确保客户端配置正确
# 修改 [client] 配置
vi /etc/my.cnf
[client]
socket=/home/data/mysql/mysql.sock
通过以上步骤,您可以在 CentOS 7 上成功安装并配置 MySQL 8.0.30,包括基本安装、初步配置、性能优化和数据迁移。这为您提供了一套全面的 MySQL 安装和配置指南,适合在博客或技术文档中使用。