MySQL 8.0.35 二进制包安装笔记
MySQL 8.0.35 二进制包安装笔记 — 192.168.195.141
环境信息
| 项目 | 值 |
|---|---|
| 主机IP | 192.168.195.141 |
| 操作系统 | Kylin Linux Advanced Server V10 (Halberd) |
| 内核 | 4.19.90-89.11.v2401.ky10.x86_64 |
| glibc | 2.28 |
| 内存 | 2.8G |
| MySQL版本 | 8.0.35(二进制包,glibc2.17) |
1. 确认操作系统支持
MySQL 8.0 支持 Oracle Linux / Red Hat / CentOS / Rocky Linux 等 x86_64 架构,glibc2.17 及以上版本。
# 查看glibc版本$ ldd--version|head-1ldd(GNU libc)2.282. 确认MySQL版本
选择MySQL版本的原则:
- 选择 GA 版本。
- 选择20之后的小版本。
- 新业务可以直接上MySQL 8.0了。
3. 创建用户
# groupadd mysql# useradd -g mysql mysql# 验证$idmysql 用户id=1002(mysql)组id=1000(mysql)组=1000(mysql)4. 解压二进制包
# cd /usr/local/# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz# tar xvf mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz# ln -s mysql-8.0.35-linux-glibc2.17-x86_64 mysql# 验证$ls-la/usr/local/mysql lrwxrwxrwx1root root357月1822:02 /usr/local/mysql ->mysql-8.0.35-linux-glibc2.17-x86_64 $ /usr/local/mysql/bin/mysql--version/usr/local/mysql/bin/mysql Ver8.0.35forLinux on x86_64(MySQL Community Server - GPL)5. 编辑配置文件
# vim /etc/my.cnf配置文件内容如下(最小化配置):
[client] socket = /data/mysql/3306/data/mysql.sock [mysqld] basedir = /usr/local/mysql datadir = /data/mysql/3306/data user = mysql port = 3306 socket = /data/mysql/3306/data/mysql.sock log_error = /data/mysql/3306/data/mysqld.err log_timestamps = system log-bin = mysql-bin server-id = 16. 创建数据目录
# mkdir -p /data/mysql/3306/data# chown mysql.mysql /data/mysql/3306/data/# 验证$ls-la/data/mysql/3306/ 总用量0drwxr-xr-x3root root187月1822:03.drwxr-xr-x3root root187月1822:03..drwxr-xr-x2mysql mysql67月1822:03 data7. 初始化实例
# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize如果没有错误输出,就意味着实例初始化成功。错误日志输出:
2026-07-18T22:03:27.228710+08:00 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2026-07-18T22:03:27.379765+08:00 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2026-07-18T22:03:28.161397+08:00 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: .Fit6lgH2*oP8. 配置systemd服务
# vim /etc/systemd/system/mysqld.service[Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql Type=forking PIDFile=/data/mysql/3306/data/mysqld.pid # Disable service start and stop timeout logic of systemd for mysqld service. TimeoutSec=0 # Start main service ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --pid-file=/data/mysql/3306/data/mysqld.pid --daemonize $MYSQLD_OPTS # Use this to switch malloc implementation EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit LimitNOFILE = 65535 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false创建环境变量文件:
# vim /etc/sysconfig/mysqlMYSQLD_OPTS=9. 启动实例
# systemctl daemon-reload# systemctl start mysqld# 查看状态$ systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded(/etc/systemd/system/mysqld.service;disabled;vendor preset: disabled)Active: active(running)since Sat2026-07-1822:05:14 CST;5ms ago Docs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.html Process:75078ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --pid-file=/data/mysql/3306/data/mysqld.pid--daemonize$MYSQLD_OPTS(code=exited,status=0/SUCCESS)Main PID:75080(mysqld)Tasks:38Memory:365.8M CGroup: /system.slice/mysqld.service └─75080 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --pid-file=/data/mysql/3306/data/mysqld.pid--daemonize错误日志确认启动成功:
2026-07-18T22:05:14.507876+08:00 0 [System] [MY-010931] [Server] /usr/local/mysql/bin/mysqld: ready for connections. Version: '8.0.35' socket: '/data/mysql/3306/data/mysql.sock' port: 3306 MySQL Community Server - GPL.10. 登录实例
# grep password /data/mysql/3306/data/mysqld.err2026-07-18T22:03:28.161397+08:006[Note][MY-010454][Server]A temporary password is generatedforroot@localhost: .Fit6lgH2*oP# /usr/local/mysql/bin/mysql -uroot -S /data/mysql/3306/data/mysql.sock -pEnter password:11. 修改密码
mysql>alteruseruser()identifiedby'Root@123456';12. 设置开机自启动
# systemctl enable mysqldCreated symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /etc/systemd/system/mysqld.service.# 验证$ systemctl is-enabled mysqld enabled13. systemd服务管理命令
# systemctl daemon-reload# systemctl start mysqld# systemctl stop mysqld# systemctl status mysqld# systemctl enable mysqld如何判断实例是否启动成功
- 查看错误日志。
- 查看mysqld进程是否启动。
如何定位实例启动失败的原因
- 查看错误日志。
- 通过mysqld启动。
# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &- 只指定几个必要的参数启动。
# /usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data/ --user=mysql如果还是不行,可通过strace查看MySQL启动过程中的系统调用情况。
