1. 首页 > 软件安装教程 > 正文

MySQL安装-MySQL 8.0安装配置 FOR 国产麒麟Kylin v10详细过程

1. 硬件环境要求

MySQL是关系型数据库,对硬件环境有一定要求,特别是内存和CPU。更多学习教程www.fgedu.net.cn

生产环境建议:
– 最小内存:8GB(测试环境),生产环境建议32GB以上
– CPU:至少4核心,生产环境建议8核心以上
– 磁盘:SSD存储,数据盘至少500GB(几百GB数据量需要更大)
– 网络:千兆网卡,生产环境建议万兆网卡

# 检查硬件环境
# 检查内存大小
# free -h
total used free shared buff/cache available
Mem: 64G 2.1G 60G 8.5M 1.8G 61G
Swap: 32G 0B 32G

# 检查CPU核心数
# nproc
8

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 8.5M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 50G 15G 36G 30% /
/dev/sdb1 1.0T 20G 980G 2% /mysql

# 检查网络状态
# ethtool eth0 | grep -i speed
Speed: 1000Mb/s

2. 操作系统准备

在安装MySQL之前,需要对操作系统进行准备,包括关闭SELinux、防火墙配置、安装依赖包等。学习交流加群风哥微信: itpux-com

# 检查操作系统版本
# cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Tercel)

# 检查内核版本
# uname -r
4.19.90-24.4.v2101.ky10.x86_64

# 关闭SELinux
# vi /etc/selinux/config
SELINUX=disabled

# 使SELinux配置生效
# setenforce 0

# 检查SELinux状态
# getenforce
Disabled

# 关闭防火墙(生产环境建议开放特定端口)
# systemctl stop firewalld
# systemctl disable firewalld

# 安装依赖包
# yum install -y libaio numactl libnuma-devel perl-Data-Dumper

3. MySQL安装步骤

本文以MySQL 8.0.28为例,从官方网站下载安装包进行安装。

# 下载MySQL安装包
# cd /tmp
# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28-el7-x86_64.tar.gz

# 解压安装包
# tar -zxvf mysql-8.0.28-el7-x86_64.tar.gz

# 移动到安装目录
# mv mysql-8.0.28-el7-x86_64 /mysql

# 创建符号链接
# ln -s /mysql/mysql-8.0.28-el7-x86_64 /mysql/current

# 创建MySQL用户和组
# groupadd -g 27018 mysql
# useradd -u 27018 -g mysql -m -d /mysql mysql

# 创建数据目录
# mkdir -p /mysql/data

# 设置目录权限
# chown -R mysql:mysql /mysql
# chmod 755 /mysql/data

# 初始化MySQL
# cd /mysql/current
# bin/mysqld –initialize-insecure –user=mysql –basedir=/mysql/current –datadir=/mysql/data

# 复制配置文件
# cp support-files/my-default.cnf /mysql/current/my.cnf

# 编辑配置文件
# vi /mysql/current/my.cnf

# 配置文件内容
[mysqld]
basedir=/mysql/current
datadir=/mysql/data
port=3306
socket=/mysql/mysql.sock
user=mysql
bind-address=192.168.1.51

# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 日志设置
log-error=/mysql/log/mysql-error.log
slow-query-log=1
slow-query-log-file=/mysql/log/mysql-slow.log
long-query-time=1

# 性能设置
max_connections=2000
innodb_buffer_pool_size=48G
innodb_log_file_size=2G
innodb_flush_method=O_DIRECT

# 安全设置
symbolic-links=0
skip-external-locking

[client]
socket=/mysql/mysql.sock

# 创建日志目录
# mkdir -p /mysql/log
# chown -R mysql:mysql /mysql/log
风哥提示:初始化MySQL时使用–initialize-insecure参数会创建无密码的root用户,后续需要设置密码。

4. 配置文件优化

MySQL的配置文件对性能和稳定性有重要影响,需要根据硬件环境进行优化。学习交流加群风哥QQ113257174

# 编辑配置文件
# vi /mysql/current/my.cnf

# 优化配置
[mysqld]

# 基本配置
basedir=/mysql/current
datadir=/mysql/data
port=3306
socket=/mysql/mysql.sock
user=mysql
bind-address=192.168.1.51

# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 日志设置
log-error=/mysql/log/mysql-error.log
slow-query-log=1
slow-query-log-file=/mysql/log/mysql-slow.log
long-query-time=1
general-log=0
general-log-file=/mysql/log/mysql-general.log

# 性能设置
max_connections=2000
max_connect_errors=1000000
wait_timeout=300
interactive_timeout=300

# InnoDB设置
innodb_buffer_pool_size=48G
innodb_buffer_pool_instances=8
innodb_log_file_size=2G
innodb_log_files_in_group=2
innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit=1
innodb_file_per_table=1
innodb_max_dirty_pages_pct=75
innodb_io_capacity=2000
innodb_io_capacity_max=4000

# MyISAM设置
key_buffer_size=256M
myisam_sort_buffer_size=128M

# 连接设置
max_allowed_packet=64M
net_buffer_length=16384

# 查询缓存设置
query_cache_type=0
query_cache_size=0

# 安全设置
symbolic-links=0
skip-external-locking
skip-name-resolve

[client]
socket=/mysql/mysql.sock
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

5. 服务管理

为了方便管理MySQL服务,我们需要创建系统服务文件。更多学习教程公众号风哥教程itpux_com

# 创建MySQL服务文件
# vi /etc/systemd/system/mysql.service

[Unit]
Description=MySQL Server
After=network.target

[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=/mysql/data/fgedudb01.pid
ExecStart=/mysql/current/bin/mysqld –defaults-file=/mysql/current/my.cnf
ExecStop=/mysql/current/bin/mysqladmin -u root -p shutdown
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 重新加载系统服务
# systemctl daemon-reload

# 启动MySQL服务
# systemctl start mysql

# 查看服务状态
# systemctl status mysql
● mysql.service – MySQL Server
Loaded: loaded (/etc/systemd/system/mysql.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2026-03-31 11:30:00 CST; 1min ago
Main PID: 12345 (mysqld)
Tasks: 38
Memory: 2.0G
CGroup: /system.slice/mysql.service
└─12345 /mysql/current/bin/mysqld –defaults-file=/mysql/current/my.cnf

# 设置开机自启
# systemctl enable mysql
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /etc/systemd/system/mysql.service.

6. 性能调优

MySQL的性能调优包括操作系统参数调优和MySQL配置调优两个方面。

# 操作系统参数调优
# 编辑sysctl.conf文件
# vi /etc/sysctl.conf

# 添加以下参数
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
vm.overcommit_memory = 1
vm.swappiness = 0
fs.file-max = 6815744
fs.aio-max-nr = 1048576

# 使参数生效
# sysctl -p

# 调整文件描述符限制
# vi /etc/security/limits.conf

# 添加以下内容
* soft nofile 65535
* hard nofile 65535
mysql soft nofile 65535
mysql hard nofile 65535

生产环境建议:
– net.core.somaxconn设置为65535,提高TCP连接队列长度
– vm.overcommit_memory设置为1,允许MySQL使用更多内存
– vm.swappiness设置为0,减少使用swap
– 文件描述符限制设置为65535,支持更多连接
– innodb_buffer_pool_size设置为物理内存的70%-80%

7. 备份策略

MySQL的备份策略包括mysqldump命令和物理备份,需要定期进行备份。from:www.itpux.com

# 创建备份目录
# mkdir -p /backup/mysql

# 编写备份脚本
# vi /backup/mysql/backup.sh

#!/bin/bash

# 备份时间
BACKUP_TIME=$(date +”%Y-%m-%d-%H-%M-%S”)

# 备份目录
BACKUP_DIR=”/backup/mysql/${BACKUP_TIME}”

# 创建备份目录
mkdir -p ${BACKUP_DIR}

# 执行备份
/mysql/current/bin/mysqldump –all-databases –single-transaction –master-data=2 –flush-logs –triggers –routines –events -u root -p”fgedudb123″ > ${BACKUP_DIR}/all_databases.sql

# 保留最近7天的备份
find /backup/mysql -type d -mtime +7 -exec rm -rf {} \;

# 输出备份信息
echo “MySQL backup completed: ${BACKUP_DIR}”

# 设置脚本执行权限
# chmod +x /backup/mysql/backup.sh

# 添加到定时任务
# crontab -e

# 每天凌晨2点执行备份
0 2 * * * /backup/mysql/backup.sh >> /backup/mysql/backup.log 2>&1

8. 安全设置

MySQL的安全设置包括密码设置、用户管理、权限控制等。

# 连接MySQL
# /mysql/current/bin/mysql -u root

# 设置root密码
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘fgedudb123’;
Query OK, 0 rows affected (0.00 sec)

# 创建远程连接用户
mysql> CREATE USER ‘root’@’%’ IDENTIFIED BY ‘fgedudb123’;
Query OK, 0 rows affected (0.00 sec)

# 授权
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

# 创建应用用户
mysql> CREATE DATABASE fgedudb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER ‘fgedu’@’%’ IDENTIFIED BY ‘fgedudb123’;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON fgedudb.* TO ‘fgedu’@’%’;
Query OK, 0 rows affected (0.00 sec)

# 刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

# 退出MySQL
mysql> exit

生产环境建议:
– 设置强密码,定期更换
– 限制用户的访问权限,遵循最小权限原则
– 启用SSL加密传输
– 定期更新MySQL版本,修复安全漏洞
– 开启防火墙,限制MySQL端口的访问

9. 安装验证

安装完成后,需要验证MySQL服务是否正常运行。

# 连接MySQL
# /mysql/current/bin/mysql -u root -p

# 测试命令
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sys |
| fgedudb |
+——————–+
5 rows in set (0.00 sec)

mysql> use fgedudb;
Database changed

mysql> create table fgedu_users (
-> id int primary key auto_increment,
-> name varchar(50) not null,
-> age int,
-> email varchar(100)
-> ) engine=InnoDB default charset=utf8mb4;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into fgedu_users (name, age, email) values (‘测试用户’, 25, ‘test@fgedu.net.cn’);
Query OK, 1 row affected (0.00 sec)

mysql> select * from fgedu_users;
+—-+———–+—–+———————+
| id | name | age | email |
+—-+———–+—–+———————+
| 1 | 测试用户 | 25 | test@fgedu.net.cn |
+—-+———–+—–+———————+
1 row in set (0.00 sec)

mysql> status;
————–
/mysql/current/bin/mysql Ver 8.0.28 for Linux on x86_64 (MySQL Community Server – GPL)

Connection id: 8
Current database: fgedudb
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ”
Using delimiter: ;
Server version: 8.0.28 MySQL Community Server – GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /mysql/mysql.sock
Binary data as: Hexadecimal
Uptime: 3600 sec

Threads: 2 Questions: 15 Slow queries: 0 Opens: 131 Flush tables: 3 Open tables: 48 Queries per second avg: 0.004
————–

mysql> exit

风哥提示:验证MySQL安装是否成功,需要测试基本命令、数据插入、查询和服务状态等方面。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息