文章目录[隐藏]
一、什么是MySQL
MySQL是一款开源的关系型数据库管理系统,支持SQL语言。它具备高可用性、可靠性和易用性,适用于各种规模的应用。MySQL特点包括良好的跨平台支持、灵活的插件式存储引擎(如InnoDB提供事务安全),以及高效的查询处理能力。其优点在于性能优越、社区活跃,拥有丰富的文档资源和第三方工具集成,成本效益高,是Web开发和在线应用的首选数据库之一。
二、为什么要离线安装
使用二进制发行包离线安装 MySQL 的主要原因是针对特定行业的云平台,如地方政务云、教育云或其他特种行业云平台,这些平台上的云主机往往由于安全政策或网络隔离的要求,无法直接访问互联网。因此,通过下载 MySQL 的二进制发行包并进行离线安装,可以确保在这些受限环境中顺利部署 MySQL数据库,同时满足安全性和合规性的需求。具体来说,这种方式可以带来以下几个方面的优势:
- 版本控制:包管理器提供的MySQL版本可能不是最新的,或与官方最新发布的版本有延迟。有时操作系统仓库中的MySQL版本可能为了稳定性而滞后于官方发布。使用二进制分发包可以确保你安装的是官方推荐的最新稳定版或特定版本。
- 定制化需求:二进制分发包允许用户根据自己的需求进行更灵活的安装配置,包括选择不同的存储引擎、安装路径等。这对于有特殊要求的应用场景非常重要。
- 独立性:使用二进制分发包安装MySQL可以避免依赖系统包管理器的状态和设置。这意味着即使在没有互联网连接的情况下,或者在一个严格控制网络访问权限的环境中,也能够顺利完成安装。
- 性能优化:官方二进制分发包通常包含了针对不同硬件平台和操作系统的优化,这些优化可能是社区维护的软件仓库所不具备的。此外,某些企业级功能或插件可能只包含在官方分发包中。
- 安全更新:对于一些需要快速响应安全漏洞的企业来说,直接从官方获取二进制分发包可能比等待操作系统供应商推送更新更为及时有效。
- 跨平台支持:如果你需要在一个非标准Linux发行版或其他操作系统上安装MySQL,官方二进制分发包提供了更好的跨平台兼容性,而这些平台可能不受yum或apt的支持。
- 控制依赖关系:使用包管理器安装可能会引入额外的依赖项,这些依赖项可能会与其他已安装的软件产生冲突。通过二进制分发包安装,你可以更好地控制哪些依赖项被安装以及如何解决潜在冲突。
三、安装环境
1、应用和数据目录规划
序号 | 类型 | 位置 | 权限 |
---|---|---|---|
1 | 应用程序 | /Programs/mysql-8.4.3-linux-glibc2.28-x86_64 /Programs/mysql |
mysql:mysql 755 |
2 | 数据 | /data/mysql8.4 | mysql:mysql 755 |
3 | 配置文件 | /Programs/mysql/mysqld.cnf | mysql:mysql 755 |
2、准备软件包和数据目录
mkdir /Programs/
wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz
tar -xf mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz
ln -s /Programs/mysql-8.4.3-linux-glibc2.28-x86_64 /Programs/mysql
mkdir -p /data/mysql8.4
3、准备配置文件
# 添加mysql配置文件
cat >/Programs/mysql/mysqld.cnf<<EOF
[mysqld]
user = mysql
basedir = /Programs/mysql/mysql
pid-file = /data/mysql8.4/mysqld.pid
socket = /data/mysql8.4/mysqld.sock
port = 3306
datadir = /data/mysql8.4
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
key_buffer_size = 1024M
log_error = /data/mysql8.4/error.log
default_storage_engine=InnoDB
character_set_server=utf8mb4
max_connections=2000
table_open_cache = 4000
skip-name-resolve
gtid_mode = ON
enforce_gtid_consistency = ON
binlog_expire_logs_seconds = 604800
max_binlog_size = 100M
slow_query_log = ON
slow_query_log_file = /data/mysql8.4/slow_queries.log
long_query_time = 5
myisam-recover-options = BACKUP
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
EOF
4、处理依赖和环境变量
# 安装处理依赖环境
apt install libaio-dev
ln -s /usr/lib/x86_64-linux-gnu/libaio.so /usr/lib/x86_64-linux-gnu/libaio.so.1
# 处理环境变量
cat >/etc/profile.d/mysqld.sh<< EOF
#/bin/bash
export MYSQL_ROOT=/Programs/mysql
export PATH=\${MYSQL_ROOT}/bin:\${PATH}
EOF
5、添加MySQL服务专用用户并修改权限
# 添加mysql用户,并修改权限
useradd -r -M -s /sbin/nologin mysql
chown mysql:mysql -R /Programs/mysql-8.4.3-linux-glibc2.28-x86_64
chown mysql:mysql -R /Programs/mysql
chown mysql:mysql -R /data/mysql8.4
6、初始化MySQL实例
# 初始化数据库实例
/Programs/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/data/mysql8.4
7、使用systemd管理MySQL进程
# 使用systemd管理mysql
cat > /etc/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Community Server
After=network.target
[Service]
Type=notify
User=mysql
Group=mysql
PIDFile=/data/mysql8.4/mysqld.pid
PermissionsStartOnly=true
ExecStart=/Programs/mysql/bin/mysqld --defaults-file=/Programs/mysql/mysqld.cnf
TimeoutSec=5s
LimitNOFILE = 102400
Restart=on-failure
RuntimeDirectoryMode=755
[Install]
WantedBy=multi-user.target
EOF
8、设置开机启动
# 重载 systemd 服务
systemctl daemon-reload
systemctl enable mysqld --now #设置MySQL开机启动,并立即启动
文章评论