MySQL8.4 tar.xz安装

安装 MySQL 8.4

下载并解压 MySQL 8.4 安装包到 /opt 目录,创建符号链接以便后续管理:

bash 复制代码
useradd -r -s /bin/false mysql
cd /opt
tar xvf /tmp/mysql-8.4.9-linux-glibc2.28-x86_64.tar.xz
ln -s /opt/mysql-8.4.9-linux-glibc2.28-x86_64 /opt/mysql

配置环境变量,确保 MySQL 命令可执行:

bash 复制代码
vi ~/.bash_profile
export PATH=/opt/mysql/bin:$PATH

source ~/.bash_profile

创建安全目录结构

为数据、日志和文件导入导出操作创建专用目录,并设置正确的权限:

bash 复制代码
cd /data
mkdir -p /data/mysql_3306
chown mysql:mysql mysql_3306
cd mysql_3306
mkdir mysql-files data logs
chown mysql:mysql mysql-files data logs
chmod 750 mysql-files data logs

配置 MySQL 服务器选项

编辑配置文件 /data/mysql_3306/my.cnf,包含以下基本配置:

ini 复制代码
[mysqld]
server-id       =71013306
basedir         =/opt/mysql
datadir         =/data/mysql_3306/data
socket          =/data/mysql_3306/logs/mysql.sock
pid-file        =/data/mysql_3306/logs/mysql.pid
log-error       =/data/mysql_3306/logs/mysql_error.log
user            =mysql
port            =3306
secure_file_priv=/data/mysql_3306/mysql-files
local_infile=OFF

初始化数据目录并启动服务

使用 mysqld 初始化数据目录,注意记录生成的临时密码:

bash 复制代码
mysqld --defaults-file=/data/mysql_3306/my.cnf --initialize --user=mysql
grep "temporary password" /data/mysql_3306/logs/mysql_error.log

启动 MySQL 服务并连接到服务器:

bash 复制代码
mysqld --defaults-file=/data/mysql_3306/my.cnf --user=mysql &
mysql -S /data/mysql_3306/logs/mysql.sock -uroot -p

修改 root 用户密码:

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql';

配置 systemd 服务管理

创建 systemd 服务文件 /usr/lib/systemd/system/mysqld.service

cd /usr/lib/systemd/system

touch mysqld.service

chmod 644 mysqld.service

ini 复制代码
[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
TimeoutSec=0
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/mysql_3306/my.cnf $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

启用并启动 MySQL 服务:

bash 复制代码
systemctl enable mysqld.service
systemctl start mysqld
systemctl status mysqld
相关推荐
Database_Cool_5 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
Database_Cool_6 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白7 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
liuxiaowei38 小时前
【绝版教程】新版MySQL DBA高级实战进阶班 MySQL8.0 姜承尧-腾讯数据库总监
数据库·mysql·dba
sg_knight10 小时前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
Database_Cool_12 小时前
企业级多模态分析计算引擎选型:首选 AnalyticDB MySQL 向量 + SQL + 实时一体化方案
数据库·sql·mysql
宇宙第一小趴菜14 小时前
五、Oracle vs MySQL 架构深度对比笔记
mysql·oracle·架构
Database_Cool_16 小时前
云数据仓库开通指南:阿里云 AnalyticDB MySQL 10 分钟从 0 到分析实战教程
数据仓库·mysql·阿里云
—Miss. Z—18 小时前
计算机二级MySQL——简单应用题(事件&视图)
android·mysql·adb
会编程的土豆19 小时前
MySQL 中的 IN 和 EXISTS(零基础笔记)
数据库·笔记·mysql