工具/原料
- MySQL数据库安装包下载地址:https://dev.mysql.com/downloads/mysql/
本次实验版本:mysql‑8.0.28‑linux‑glibc2.12‑x86_64.tar.xz
- 统信UOS服务器版操作系统ISO下载(按CPU架构选择版本)
AMD64版本:
https://cdimage-download.chinauos.com/uniontechos-server-20-1021a-amd64.iso?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NDUwNjc1NjQsImZpbGVfbmFtZSI6InVuaW9udGVjaG9zLXNlcnZlci0yMC0xMDIxYS1hbWQ2NC5pc28ifQ.ZuW86r_LbEHKf6EMVQKrI70HgY9z2YY2Qvi9V8lp1bk
关闭系统防火墙(测试环境使用,生产环境建议配置防火墙放行3306端口,不要直接关闭防火墙)
# 临时关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机自启
systemctl disable firewalld
操作步骤
1. 解压、重命名并移动MySQL程序包
将MySQL压缩包上传到服务器,执行解压:
tar -xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
重命名文件夹:
mv mysql-8.0.28-linux-glibc2.12-x86_64/ mysql
移动到 /usr/local 目录:
cp -r mysql /usr/local/
2. 创建mysql用户组与用户
# 创建mysql用户组
groupadd mysql
# 创建mysql系统用户,归属mysql组
useradd -r -g mysql mysql
3. 创建数据存放目录并修改权限
# 创建数据目录
mkdir -p /data/mysql
# 设置目录归属用户组为mysql
chown mysql:mysql -R /data/mysql
4. 编辑MySQL配置文件 /etc/my.cnf
vim /etc/my.cnf
写入如下配置:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#字符集配置
character_set_server=utf8mb4
symbolic-links=0
lower-case-table-names=1
5. 初始化MySQL数据库
注意:初始化会生成root临时密码,务必保存输出日志
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --lower-case-table-names=1 --user=mysql --initialize
查看生成的root初始密码:
cat /data/mysql/mysql.err
在日志中找到
A temporary password is generated for root@localhost: xxxxx,后面字符串即为初始密码。
6. 配置MySQL服务脚本并启动服务
复制服务脚本到系统服务目录:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动MySQL服务:
service mysql start
# 查看运行状态
service mysql status
7. 修改root密码 & 开启远程访问权限
进入mysql二进制目录登录数据库,使用上面获取的临时密码登录:
cd /usr/local/mysql/bin/
./mysql -u root -p
登录成功后修改root密码(示例密码123456,生产环境请使用强密码):
alter user 'root'@'localhost' identified by '123456';
开启root账号允许任意地址远程访问:
use mysql;
update user set host = '%' where user = 'root';
flush privileges;
至此,可使用Navicat、MySQL Workbench等客户端进行远程连接。
8. 设置MySQL开机自启
复制服务脚本到rc.d初始化目录:
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
增加脚本执行权限:
chmod +x /etc/rc.d/init.d/mysqld
添加到系统服务:
chkconfig --add mysqld
查看开机启动状态:
chkconfig --list
若3、4、5级别为off,执行开启命令:
chkconfig --level 345 mysqld on
测试重启服务器验证开机启动:
reboot
重启后验证:查看mysql服务状态,确认3306端口正常监听,MySQL启动成功。
重要注意事项
- 生产环境不建议直接关闭防火墙,建议放行3306端口:
firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload - root使用简单密码存在安全风险,线上环境务必设置复杂密码;
root@%允许所有IP访问,公网环境建议限定指定IP访问,提升安全性。

