操作系统:AnolisOS-8.10
mysql版本:mysql-8.4.5-linux-glibc2.28-x86_64.tar.xz
准备篇
1、关闭SELINUX
#AnolisOS-8.10默认是关闭的,可以不用操作
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
2、开启防火墙
系统默认使用的是firewall作为防火墙,这里改为iptables防火墙。
开启mysql默认端口3306
2.1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl mask firewalld
systemctl stop firewalld
yum remove firewalld
2.2、安装iptables防火墙
yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑防火墙配置文件
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
/usr/libexec/iptables/iptables.init restart #重启防火墙
安装篇
1、下载安装包
1.1下载mysql:https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.5-linux-glibc2.28-x86_64.tar.xz
1.2下载mysql依赖包(初始化mysql数据库、进入mysql控制台需要)
1.2.1rpm包安装
#下载地址
https://mirrors.openanolis.cn/anolis/8.10/BaseOS/x86_64/os/Packages/libaio-0.3.112-1.0.1.an8.x86_64.rpm
https://mirrors.openanolis.cn/anolis/8.10/BaseOS/x86_64/os/Packages/libaio-devel-0.3.112-1.0.1.an8.x86_64.rpm
https://mirrors.openanolis.cn/anolis/8.10/BaseOS/x86_64/os/Packages/ncurses-compat-libs-6.1-10.20180224.0.1.an8.x86_64.rpm
#安装
rpm -ivh libaio-0.3.112-1.0.1.an8.x86_64.rpm
rpm -ivh libaio-devel-0.3.112-1.0.1.an8.x86_64.rpm
rpm -ivh ncurses-compat-libs-6.1-10.20180224.0.1.an8.x86_64.rpm
1.2.2使用yum源安装
yum install tar telnet
yum install libaio-devel libaio
yum install ncurses-compat-libs
2、安装mysql
2.1创建mysql运行用户和组以及安装目录
groupadd mysql
useradd -g mysql mysql -s /bin/false
2.2创建mysql安装目录以及数据库存放目录并赋权
mkdir -p /data/server/mysql #mysql安装目录
mkdir -p /data/server/mysql/data #mysql数据库存放目录
chown -R mysql:mysql /data/server/mysql
chown -R mysql:mysql /data/server/mysql/data
2.3安装mysql
#解压二进制版本mysql安装包到安装目录
cd /usr/local/src/
tar -xvf mysql-8.4.5-linux-glibc2.28-x86_64.tar.xz -C /data/server/mysql --strip-components 1
2.4设置my.cnf配置文件
vi /data/server/mysql/my.cnf #编辑添加
[client]
port = 3306
socket = /data/server/mysql/data/mysql.sock
[mysqld]
# 基础路径设置
user = mysql
port = 3306
basedir = /data/server/mysql
datadir = /data/server/mysql/data
socket = /data/server/mysql/data/mysql.sock
pid-file = /data/server/mysql/data/mysql.pid
# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 日志相关
log-error = /data/server/mysql/data/error.log
server-id = 1
# 默认引擎和连接数
default-storage-engine = InnoDB
max_connections = 1000
# 性能相关(可根据内存调整)
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
key_buffer_size = 32M
# 其他推荐配置
tmpdir = /tmp
explicit_defaults_for_timestamp = true
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error = /data/server/mysql/data/error.log
:wq! #保存退出
2.5添加mysql系统环境变量
vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
#set mysql environment
export PATH=$PATH:/data/server/mysql/bin
:wq! #保存退出
source /etc/profile #使配置立即生效
2.6初始化mysql数据库
/data/server/mysql/bin/mysqld --defaults-file=/data/server/mysql/my.cnf --user=mysql --initialize-insecure --basedir=/data/server/mysql --datadir=/data/server/mysql/data --socket=/data/server/mysql/data/mysql.sock --pid-file=/data/server/mysql/data/mysql.pid
2.7启动mysql-8.4.5数据库
/data/server/mysql/bin/mysqld_safe --defaults-file=/data/server/mysql/my.cnf --user=mysql --port=3306 --basedir=/data/server/mysql --datadir=/data/server/mysql/data --socket=/data/server/mysql/data/mysql.sock --pid-file=/data/server/mysql/data/mysql.pid &
2.8添加软连接
ln -s /data/server/mysql/data/mysql.sock /tmp/mysql.sock
2.9设置MySQL管理员root密码,根据提示设置密码
/data/server/mysql/bin/mysql_secure_installation --socket=/data/server/mysql/data/mysql.sock
y使用密码验证插件
选择密码规则(一般选择第二项:1 = MEDIUM)
LOW Length >= 8 #长度大于等于8
MEDIUM Length >= 8, numeric, mixed case, and special characters #长度大于等于8,数字、大小写字母、特殊符号
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file #长度大于等于8,数字、大小写字母、特殊符号和字典文件(慎选!)
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
设置新密码:12345678Abc++
y删除匿名用户
y禁止root远程登录
y删除测试数据库
y重新加载权限表
2.10关闭mysql-8.4.5数据库
/data/server/mysql/bin/mysqladmin -uroot -S /data/server/mysql/data/mysql.sock shutdown -p
#根据提示输入上面设置的密码即可关闭数据库
2.11设置mysql启动脚本
cp /data/server/mysql/support-files/mysql.server /data/server/mysql/mysql.sh
vi /data/server/mysql/mysql.sh #编辑修改
basedir=/data/server/mysql #MySQL程序安装路径
datadir=/data/server/mysql/data #MySQl数据库存放目录
conf=/data/server/mysql/my.cnf #mysql配置文件my.cnf路径
:wq! #保存退出
#添加执行权限
chmod +x /data/server/mysql/mysql.sh
#添加开机启动
vi /etc/rc.d/rc.local
/bin/sh /data/server/mysql/mysql.sh start
:wq! #保存退出
#默认/etc/rc.local没有执行权限,需要手动添加执行权限
chmod +x /etc/rc.d/rc.local
sh /data/server/mysql/mysql.sh start #启动mysql
3、配置mysql
3.1创建mysql数据库和用户
#创建数据库和用户
数据库名:dbtest
数据库用户名:usertest
数据库密码:12345678Abc++
进入mysql-8.4.5控制台
/data/server/mysql/bin/mysql -uroot -p -S /data/server/mysql/data/mysql.sock
Create DATABASE IF NOT EXISTS dbtest default charset utf8mb4 COLLATE utf8mb4_general_ci; #创建数据库dbtest
CREATE USER 'usertest'@'192.168.21.%' IDENTIFIED BY '12345678Abc++'; #创建用户usertest
GRANT ALL PRIVILEGES ON dbtest.* TO 'usertest'@'192.168.21.%'; #授权访问数据库
flush privileges; #刷新系统授权表
exit; #退出控制台
#创建管理员
CREATE USER 'admin'@'127.0.0.1' IDENTIFIED BY '12345678Abc++'; #创建mysql数据库管理员admin
CREATE USER 'admin'@'localhost' IDENTIFIED BY '12345678Abc++'; #创建mysql数据库管理员admin
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1'; #授权访问数据库
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost'; #授权访问数据库
flush privileges; #刷新系统授权表
3.2导出数据库
#导出数据库dbtest到/tmp/dbtest.sql
/data/server/mysql/bin/mysqldump -u root -p --default-character-set=utf8mb4 --opt -Q -R --skip-lock-tables dbtest > /tmp/dbtest.sql
备注:在导出之前可以先进入MySQL控制台执行下面命令
flush tables with read lock; #数据库只读锁定命令,防止导出数据库的时候有数据写入
unlock tables; #解除锁定
3.3导入数据库
进入mysql-8.4.5控制台
/data/server/mysql/bin/mysql -uroot -p -S /data/server/mysql/data/mysql.sock
use dbtest #进入数据库
source /tmp/dbtest.sql #导入备份文件到数据库
exit; #退出控制台
至此,Linux系统安装部署 MySQL-8.4.5 LTS版本完成。



