一、准备工作

1.1、主机环境

在这里插入图片描述

1.2、下载软件包

下载地址:https://downloads.mysql.com/archives/community/
在这里插入图片描述
上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。

二、基础环境

2.1、关闭防火墙

[root@localhost ~]# systemctl stop firewalld

2.2、关闭内核安全机制

[root@localhost ~]# setenforce 0

2.3、设置yum源

[root@localhost ~]# yum clean all && yum makecache

三、MySQL二进制安装

3.1、安装依赖包

[root@localhost ~]# yum -y install libaio gcc gcc-c++ make autoconf

3.2、创建用户和组

[root@localhost ~]# groupadd mysql 
[root@localhost ~]# useradd -M -s /sbin/nologin mysql -g mysql

3.3、解压软件包

[root@localhost ~]# tar xvf mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz
[root@localhost ~]# mv mysql-8.0.42-linux-glibc2.28-x86_64 /usr/local/mysql

3.4、创建数据目录

[root@localhost ~]# mkdir -p /usr/local/mysql/data
[root@localhost ~]# mkdir -p /usr/local/mysql/logs
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql

3.5、创建配置文件

  • 从 mysql 5.7.18 版本开始在安装包内不提供默认的配置文件my-default.cnf。因此,需要手动创建 MySQL 配置文件。
[root@localhost ~]# vim /etc/my.cnf
[client] 
socket=/usr/local/mysql/data/mysql.sock
default-character-set=utf8mb4

[mysqld] 
socket=/usr/local/mysql/data/mysql.sock
 
#绑定监听地址
bind-address=0.0.0.0
#跳过域名解析,减少mysql对外部连接客户端DNS解析的时间 
skip-name-resolve=1 
#设置端口 
port=3306
#设置时区
default_time_zone='+08:00'
#设置日志时间
log_timestamps=SYSTEM

#设置mysql数据库的安装目录 
basedir=/usr/local/mysql 
#设置mysql数据库数据的存放目录 
datadir=/usr/local/mysql/data
   
#设置最大连接数量 
max_connections=2048 
#设置服务端使用的字符集 
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci 
#创建新表时使用的默认存储引擎 
default-storage-engine=INNODB 
#sql语句不区分大小写 
lower_case_table_names=1 
#设置一次消息传输的最大值 
max_allowed_packet=64M
key_buffer_size=32M

#开启慢查询日志
slow_query_log=1
long_query_time=2
slow_query_log_file=/usr/local/mysql/logs/slow_query.log

#开启错误日志
log_error=/usr/local/mysql/logs/error.log

#开启二进制日志
log_bin=/usr/local/mysql/logs/master-bin
server_id=10
binlog_format=ROW
sync_binlog=1
expire_logs_days=10
max_binlog_size=500M

#开启通用查询日志
general_log=1
general_log_file=/usr/local/mysql/logs/general.log

# InnoDB优化
innodb_buffer_pool_size=2G          # (2C4G配置改成1G,8C16G配置改成8G)
innodb_buffer_pool_instances=2
innodb_buffer_pool_dump_at_shutdown=1
innodb_buffer_pool_load_at_startup=1
innodb_flush_method=O_DIRECT
innodb_log_file_size=512M           # (2C4G配置可改256M,8C16G配置可改2G)
innodb_log_buffer_size=64M
innodb_lock_wait_timeout=50
innodb_io_capacity=2000
innodb_io_capacity_max=4000

3.6、初始化数据库

[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

## 选项:--initialize 生成12位随机密码   --initialize-insecure ##生成空密码

3.7、优化MySQL执行命令

[root@localhost ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile  
[root@localhost ~]# source /etc/profile

3.8、创建MySQL启动的脚本文件

[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld  
[root@localhost ~]# chmod +x /etc/rc.d/init.d/mysqld 

3.9、将MySQL服务添加到系统服务

[root@localhost ~]# vim /lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/init.d/mysqld start
ExecReload=/etc/rc.d/init.d/mysqld restart
ExecStop=/etc/rc.d/init.d/mysqld stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

3.10、启动MySQL数据库

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# systemctl start mysqld

3.11、登录MySQL数据库

# 登录数据库
[root@localhost ~]# mysql -uroot -p         
输入密码:             (输入上面的随机密码)

# 修改密码
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> flush privileges;
mysql> exit
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐