1. 下载
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.4.10-linux-glibc2.28-x86_64.tar.xz
2. 解压
tar -xJvf mysql-8.4.10-linux-glibc2.28-x86_64.tar.xz
3. 重命名
mv mysql-8.4.10-linux-glibc2.28-x86_64 mysql8
4. 移动程序目录到/data
sudo mv mysql8 /data/
5. 创建mysql系统用户组
sudo groupadd mysqlsudo useradd -r -g mysql -s /bin/false mysql
6. 创建独立数据目录、日志文件 + 统一授权
# 仅创建数据目录,/data/mysql8程序目录已存在,无需mkdirsudo mkdir -p /data/mydata# 预先创建日志文件sudo touch /data/mysql8/mysqld.log /data/mysql8/slow.log# 全部目录归属mysql用户sudo chown -R mysql:mysql /data/mysql8 /data/mydata# 严格权限sudo chmod -R 700 /data/mysql8sudo chmod -R 700 /data/mydata
7. 配置 /etc/my.cnf
sudo nano /etc/my.cnf
[mysqld]basedir=/data/mysql8datadir=/data/mydatasocket=/data/mysql8/mysql.sockport=3306user=mysqlbind-address = 0.0.0.0log-error=/data/mysql8/mysqld.logpid-file=/data/mysql8/mysqld.pidmax_connections=500innodb_buffer_pool_size=1Ginnodb_file_per_table = 1innodb_log_file_size = 256Minnodb_flush_log_at_trx_commit = 1character-set-server=utf8mb4collation-server=utf8mb4_0900_ai_cidefault-time-zone = '+08:00'skip-name-resolvewait_timeout = 600interactive_timeout = 600# binlog主从配置log_bin = /data/mysql8/mysql-binserver-id = 1binlog_format = ROWbinlog_row_image = FULLbinlog_row_metadata = FULLsync_binlog = 1binlog_expire_logs_seconds = 604800max_binlog_size = 512M# 慢查询日志slow_query_log = 1slow_query_log_file = /data/mysql8/slow.loglong_query_time = 2secure-file-priv = /tmpperformance_schema = OFFopen_files_limit = 65535max_allowed_packet = 128M[client]socket=/data/mysql8/mysql.sockdefault-character-set=utf8mb4[mysql]auto-rehashdefault-character-set=utf8mb4
保存:Ctrl+O 回车,Ctrl+X
8. 安装全套依赖
sudo apt updatesudo apt install libaio1 libnuma1 libncurses6 libncursesw6 libtinfo6 openssl -y
9. 初始化数据库
sudo /data/mysql8/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
10. 查看临时root密码
sudo grep 'temporary password' /data/mysql8/mysqld.log
11. 配置systemd自启服务
sudo nano /etc/systemd/system/mysqld.service
优化完整版(增加生产安全参数):
[Unit]Description=MySQL Community Server 8.4.10After=network.target[Service]User=mysqlGroup=mysqlExecStart=/data/mysql8/bin/mysqld --defaults-file=/etc/my.cnfRestart=on-failureRestartSec=3LimitNOFILE=65535LimitMEMLOCK=infinityPrivateTmp=true[Install]WantedBy=multi-user.target
重载服务、启动、设置开机自启
sudo systemctl daemon-reloadsudo systemctl start mysqldsudo systemctl enable mysqld# 查看运行状态systemctl status mysqld
12. 客户端登录
sudo /data/mysql8/bin/mysql -u root -p
13. 修改本地root密码
ALTERUSER'root'@'localhost'IDENTIFIEDBY'YourStrongPassword123!';CREATEUSER'root'@'127.0.0.1'IDENTIFIEDBY'YourStrongPassword123!';GRANTALLPRIVILEGESON *.* TO'root'@'127.0.0.1'WITHGRANTOPTION;FLUSHPRIVILEGES;exit;
14. 创建远程管理员账号(按需执行)
CREATEUSER'admin'@'%'IDENTIFIEDBY'Admin@2026Sql';GRANTALLPRIVILEGESON *.* TO'admin'@'%'WITHGRANTOPTION;FLUSHPRIVILEGES;
15. 放行防火墙3306端口(远程访问必备)
sudo apt install ufw -ysudo ufw allow 3306/tcpsudo ufw reload# 查看开放端口sudo ufw status