# MySQL 8.0.45 Linux 二进制包详细安装教程---以下为 **mysql-8.0.45-linux-glibc2.17-x86_64** 通用二进制包的完整安装步骤,适用于 CentOS 7/8、RHEL、Ubuntu 等主流 Linux 发行版,生产环境可用。
## 一、安装前准备
### 1. 系统环境要求
- 操作系统:Linux x86_64 架构,glibc ≥ 2.17(CentOS 7+、Ubuntu 18.04+ 均满足)
- 内存:建议 ≥ 2G
- 磁盘:数据目录建议预留足够空间
- 权限:需要 root 用户执行
### 2. 卸载系统自带的 MariaDB/MySQL
CentOS 7 默认自带 MariaDB,必须先卸载,否则会冲突:
# 检查是否安装
rpm -qa | grep -E "mariadb|mysql"
# 卸载(CentOS/RHEL)
rpm -e --nodeps mariadb-libs mariadb-server mariadb 2>/dev/null
yum remove -y mariadb* mysql* 2>/dev/null
# Ubuntu/Debian 卸载
apt remove -y mysql* mariadb* 2>/dev/null
### 3. 安装依赖库
# CentOS/RHEL
yum install -y libaio libaio-devel numactl-devel wget
# Ubuntu/Debian
apt install -y libaio1 libnuma1 wget
### 4. 创建 MySQL 用户和用户组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql ----- `-r` 创建系统用户,`-s /bin/false` 禁止该用户登录系统,提升安全性。
## 二、下载并解压安装包
### 1. 下载 MySQL 8.0.45 二进制包
cd /usr/local
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.45-linux-glibc2.17-x86_64.tar.xz ----如果下载慢,可以用国内镜像,或者先下载到本地再上传服务器。
### 2. 解压并重命名
tar -Jxvf mysql-8.0.45-linux-glibc2.17-x86_64.tar.xz
ln -s mysql-8.0.45-linux-glibc2.17-x86_64 mysql
安装路径最终为:`/usr/local/mysql`
### 3. 创建数据目录并授权
建议数据目录和程序分离,这里放在 `/data/mysql`:
mkdir -p /data/mysql/{data,logs,tmp}
chown -R mysql:mysql /data/mysql
chmod 750 /data/mysql
## 三、配置 my.cnf 配置文件
创建 `/etc/my.cnf` 配置文件,这是 MySQL 的核心配置:
[mysqld]
# 基础设置
user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql/data
socket = /tmp/mysql.sock
pid-file = /data/mysql/mysql.pid
# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
# 连接设置
max_connections = 500
max_connect_errors = 100
wait_timeout = 86400
interactive_timeout = 86400
# InnoDB 引擎设置
default-storage-engine = INNODB
innodb_buffer_pool_size = 1G # 建议设置为物理内存的 50%-70%
innodb_log_file_size = 256M
innodb_log_buffer_size = 64M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
# 日志设置
log-error = /data/mysql/logs/error.log
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 2
# 其他
tmpdir = /data/mysql/tmp
explicit_defaults_for_timestamp = true
lower_case_table_names = 1 # 表名不区分大小写,0 为区分
[mysql]
default-character-set = utf8mb4
socket = /tmp/mysql.sock
[client]
default-character-set = utf8mb4
socket = /tmp/mysql.sock
保存后执行:
chown mysql:mysql /etc/my.cnf
## 四、初始化数据库
### 1. 配置环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile
验证:`mysql --version`
### 2. 执行初始化
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
### 3. 记录初始密码
初始化完成后,在错误日志中查看临时密码:
grep 'temporary password' /data/mysql/logs/error.log
输出类似:
2024-01-01T00:00:00.000000Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: abc123!@#
`abc123!@#` 就是初始密码,先记下来。
## 五、配置 systemd 系统服务
### 1. 创建服务文件
vi /usr/lib/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=notify
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 65535
Restart=on-failure
RestartSec=3
TimeoutSec=0
### 2. 重载系统服务
systemctl daemon-reload
## 六、启动 MySQL 并修改密码
### 1. 启动服务
systemctl start mysqld
systemctl enable mysqld # 设置开机自启
### 2. 检查运行状态
systemctl status mysqld
显示 `active (running)` 即为启动成功。
### 3. 登录并修改 root 密码
使用初始密码登录:
mysql -uroot -p
# 输入刚才记录的临时密码
登录后必须先修改密码,否则无法执行其他操作:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
> 密码要求:长度 ≥ 8 位,包含大小写字母、数字、特殊字符。
### 4. 开启远程访问(可选)
如果需要外网 / 其他服务器连接:
use mysql;
update user set host='%' where user='root';
FLUSH PRIVILEGES;
> 生产环境不建议 root 开启远程访问,建议创建专用账号。

1335

被折叠的 条评论
为什么被折叠?



