MySQL 8.0.45 Linux 二进制包详细安装教程

# 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 开启远程访问,建议创建专用账号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值