mysql二进制安装

mysql二进制安装

一、系统基础设置

1.查看系统环境

#查询系统版本
cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Halberd)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Halberd)"
ANSI_COLOR="0;31"

#查询glibc版本
rpm -qa |grep glibc
glibc-2.28-98.p02.ky10.x86_64
glibc-common-2.28-98.p02.ky10.x86_64

2.防火墙设置(可选)

#关闭防火墙
systemctl stop firewalld.service 
systemctl disable  firewalld.service

#查看selinux
getenforce 

#关闭selinux
setenforce 0  

#永久关闭selinux
sed -i  's#SELINUX=enforcing#SELINUX=disabled#g'   /etc/selinux/config

#清除iptables 规则
iptables -F

3.swap关闭交换区

# 尽量不使用交换区,默认60
echo '0' > /proc/sys/vm/swappiness

# 永久修改 尽量不使用交换区,默认60
cat >>/etc/sysctl.conf<<'EOF'
vm.swappiness=0
vm.overcommit_memory = 1
EOF

#加载配置文件
sysctl -p

4.同步系统时间

ntpdate  -u  ntp.aliyun.com  # 时间同步
hwclock -w                   # 更新BIOS时间

5.安装软件包依赖

yum install   -y  net-tools lrzsz  vim  libaio-devel ntpdate  epel-release \
tree  libaio-devel lsof sysstat  bash-completion  bash-completion-extras jemalloc wget bc

6.配置Limits

cat>>/etc/security/limits.conf<<EOF
mysql   soft   nofile    4096
mysql   hard   nofile    65536
mysql   soft   nproc     4095
mysql   hard   nproc     16384
mysql   soft   stack     10240
mysql   hard   stack     32768
EOF

7.系统内核参数调整(可选)

系统内核参数调整
vim /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 965317
kernel.shmmax = 3163150745
fs.aio-max-nr = 1048576
vm.swappiness= 0
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 1024 65500
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_max_tw_buckets = 8000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10

kernel.shmall 的值可以通过如下命令计算:
echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` / (`getconf PAGESIZE` / 1024)" | bc
kernel.shmmax 的值可以通过如下命令计算:
echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` * 1024 * 0.8" | bc  | sed 's#\..*$##'

8.卸载默认数据库

#查询数据库软件包
rpm -qa | grep mysql
rpm -qa | grep mariadb
 mariadb-connector-c-3.0.6-9.ky10.x86_64

#卸载数据库
yum remove  mariadb*  -y

9.创建MySQL软件及数据目录

mkdir -p /opt/mysql/database                                             
#历代mysql实例程序的安装根路径。所有的mysql不同版本实例、data数据、pid、日志、bin-log文件、sock文件全部存于此路径。

mkdir -p /opt/mysql/database/{data,log,binlog,mysql_data_back,mysql_loaddata,tmp}   

#log-error,mysql的日志路径,注意这个不是bin-log
#log-bin,mysql的binlog存储路径,用于保存数据操作日志,用于库的恢复或者主从同步
#mysql_data_back,mysql备份、导入导出等相关数据文件存储的路径
#mysql_loaddata,mysql的数据装载与导出路径。用于业务场景,有时候直接装载文件比insert要快
#data,数据库数据文件存放文件夹。初始化二进制安装程序时,指定该路径,之后初始化过程中会自动创建。

touch /opt/mysql/database/my.cnf
#mysql实例的配置文件,手动创建编写。

10.创建mysql用户及用户组

groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

11.配置环境变量

cat >> /etc/profile.d/mysql.sh << 'EOF'
export PATH=/usr/local/mysql/bin:$PATH
EOF

#修改权限
chmod +x /etc/profile.d/mysql.sh

#生效环境变量
source /etc/profile.d/mysql.sh

二、MySQL安装

1.选择下载产品

img

2.选择社区版,可以选择下载最新版本和历史版本。

img

img

3.选择历史版本并下载mysql8.0

img

4.选择产品版本和操作系统类型,下载对应的数据库安装包。

  • 上传至/opt/mysql/database/目录下

image-20250517223238135

5.md5验证包的完整性

md5sum mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz
 dcf2702f953d1969be44083f4f063f18  mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz

6.解压MySQL包,创建软链接

tar -xvf mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz
ln -s /opt/mysql/database/mysql-8.0.40-linux-glibc2.28-x86_64/ /usr/local/mysql

7.编辑my.cnf

 vim > /opt/mysql/database/my.cnf << EOF
[mysqld]
# 基本设置
user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /opt/mysql/database/data
socket = /opt/mysql/database/mysql.sock
pid-file = /opt/mysql/database/mysql.pid

# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

# 连接设置
max_connections = 1000
max_connect_errors = 1000
wait_timeout = 28800
interactive_timeout = 28800

# 内存优化(8GB内存配置)
innodb_buffer_pool_size = 4G
innodb_buffer_pool_instances = 4
innodb_log_buffer_size = 16M
innodb_redo_log_capacity = 1G
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT

# 临时表设置
tmpdir = /opt/mysql/database/tmp
max_heap_table_size = 64M
tmp_table_size = 64M

# 日志设置
slow_query_log = 1
slow_query_log_file = /opt/mysql/database/log/slow.log
long_query_time = 2
log_error = /opt/mysql/database/log/error.log

# 其他优化
sort_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 8
table_open_cache = 2000
table_definition_cache = 1400

[client]
port = 3306
socket = /opt/mysql/database/mysql.sock
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

EOF


8.授权mysql数据目录

 chown -R mysql:mysql /opt/mysql /usr/local/mysql

9.初始化MySQL

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/opt/mysql/database/data
#注意:初始化后会生成临时root密码,请记录在安全的地方

10.生成启动脚本

 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

11.创建systemd服务文件

cat > /etc/systemd/system/mysqld.service << EOF
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/opt/mysql/database/my.cnf
LimitNOFILE=65535
Restart=on-failure
RestartSec=5
PrivateTmp=true

[Install]
WantedBy=multi-user.target

EOF

12.启动MySQL服务

# 重新加载systemd配置
systemctl daemon-reload

# 启动MySQL服务
systemctl start mysqld

# 设置开机自启
systemctl enable mysqld

# 查看服务状态
systemctl status mysqld

13.修改登录密码

# 使用临时密码登录
mysql -uroot -p

#修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

14.防火墙配置

# 开放MySQL端口
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

15.验证安装

# 检查MySQL版本
mysql -V

# 检查MySQL状态
systemctl status mysqld

# 检查端口监听
netstat -tlnp | grep mysql
posted @ 2025-05-20 10:13  茨格  阅读(127)  评论(0)    收藏  举报