1file20,操作系统环境
统信操作系统iso
uos--20-1070e-amd64.iso
统信官方镜像下载链接
2,执行命令查看版本
cat /etc/os-version
cat /proc/version
uname -r
4.19.90-2403.3.0.0270.84.uel20.x86_64
[root@localhost ~]# uosinfo
#################################################
Release: UOS Server release 20 (fuyu)
Kernel : 4.19.90-2403.3.0.0270.84.uel20.x86_64
Build : UOS Server 20 (1070e) 20240423 amd64
#################################################
3,安装MySQL依赖包
dnf install -y perl-Data-Dumper libaio libaio-devel
dnf install -y openssl openssl-devel openssl-libs
dnf install -y bzip2 bzip2-devel
dnf install -y libtirpc libtirpc-devel
4,MySQL 8.0.41安装
4.1,下载MySQL安装包
打开MySQL官网下载页面,选择正确的筛选条件
4.2,上传MySQL二进制包
将MySQL 8.0.41的二进制包上传到/opt目录并解压到/usr/local目录
cd /opt
tar xvf mysql-8.0.41-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
mv /usr/local/mysql-8.0.41-linux-glibc2.28-x86_64/ /usr/local/mysql
4.3,创建MySQL用户和用户组
groupadd mysql
useradd -M -g mysql -s /sbin/nologin mysql
4.4,创建MySQL目录并授权
(1)创建MySQL数据目录
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql/
(2)创建MySQL日志目录
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql
4.5,MySQL环境变量
(1)创建mysql目录软连接
chown -R mysql.mysql /usr/local/mysql
(2)创建MySQL环境变量配置文件
echo 'MYSQL_HOME=/usr/local/mysql' >> /etc/profile.d/mysql.sh
echo 'export PATH=$PATH:$MYSQL_HOME/bin' >> /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
4.6,创建f配置文件
vim /etc/f
[server]
[mysqld]
# 设置表名大小写转换,1表示所有表名转为小写
lower_case_table_names=1
# 数据库存储的路径
datadir=/data/mysql
# MySQL安装目录
basedir=/usr/local/mysql
# MySQL套接字文件,用于本地连接
socket=/data/mysql/mysql.sock
# 错误日志路径
log-error=/var/log/mysql/mysql.log
# 最大同时连接数
max_connections=500
# 允许的连接错误次数
max_connect_errors=10
# 连接超时时间(秒)
connect_timeout=60
# 非交互式连接的空闲超时时间(秒)
wait_timeout=600
# 交互式连接的空闲超时时间(秒)
interactive_timeout=600
# 事务等待锁的超时时间(秒)
lock_wait_timeout=3600
# 禁用DNS解析,提升连接速度
skip_name_resolve=1
# 禁用外部锁定,减少文件锁竞争
skip_external_locking=1
# 打开的最大文件数
open_files_limit=65535
# MyISAM表索引缓存的内存大小
key_buffer_size=256M
# 顺序读取缓冲区大小
read_buffer_size=4M
# 随机读取缓冲区大小
read_rnd_buffer_size=2M
# 表结构缓存数量
table_open_cache=1024
# 表定义缓存数量
table_definition_cache=1024
# 线程缓存数量
thread_cache_size=512
# 排序缓冲区大小
sort_buffer_size=16M
# 连接缓冲区大小
join_buffer_size=64M
# 批量插入缓冲区大小
bulk_insert_buffer_size=64M
# 临时表的最大内存大小
tmp_table_size=256M
# 堆表的最大内存大小
max_heap_table_size=256M
# 默认存储引擎
default-storage-engine=INNODB
# 启用独立表空间,每个表单独存储
innodb_file_per_table=1
# InnoDB缓冲池大小,用于缓存数据和索引
innodb_buffer_pool_size=4G
# 缓冲池实例数量,减少并发访问竞争
innodb_buffer_pool_instances=8
# 事务日志文件大小
innodb_log_file_size=256M
# 事务日志缓冲区大小
innodb_log_buffer_size=32M
# 事务日志文件组数量
innodb_log_files_in_group=2
# 每次事务提交刷盘策略,1表示每次提交都刷盘(安全)
innodb_flush_log_at_trx_commit=1
# 事务锁等待超时时间(秒)
innodb_lock_wait_timeout=600
# 自增锁模式,2表示最优化的并发插入
innodb_autoinc_lock_mode=2
# 关闭双写机制,减少I/O操作
innodb_doublewrite=OFF
# 直接将数据写入磁盘,避免双重缓存
innodb_flush_method=O_DIRECT
# InnoDB的I/O容量,模拟磁盘IOPS
innodb_io_capacity=2000
# InnoDB的最大I/O容量,处理I/O高峰
innodb_io_capacity_max=4000
# 写入I/O线程数量
innodb_write_io_threads=32
# 读取I/O线程数量
innodb_read_io_threads=16
# 事务撤销线程数量
innodb_purge_threads=4
# 页面清理线程数量
innodb_page_cleaners=4
# InnoDB可以打开的文件数量
innodb_open_files=65535
# 缓冲池中允许的最大脏页比例
innodb_max_dirty_pages_pct=50
# 慢查询日志,记录长时间运行的查询
slow_query_log=0
# 慢查询日志路径和文件名
slow_query_log_file=/var/log/mysql/slow.log
# 关闭通用日志,提升性能
general-log=0
# 最大数据包大小,防止因大数据传输失败
max_allowed_packet=512M
# 监听所有网络接口的连接
bind-address=0.0.0.0
# 禁用符号链接,提高安全性
symbolic-links=0
[client]
socket=/data/mysql/mysql.sock
[mysql]
socket=/data/mysql/mysql.sock
[mysqladmin]
4.7,初始化数据库
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --initialize basedir=/usr/local/mysql --datadir=/data/mysql --lower-case-table-names=1
4.8,配置 服务
vim /usr/lib///.
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE=10000
Restart=on-failure
RestartPreventExitStatus=1
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
4.9,启动mysql服务
启动mysqld服务
systemctl start mysqld
查看mysqld服务状态
systemctl status mysqld
开机启动mysqld服务
systemctl enable mysqld
5,登录MySQL
在MySQL初始化()完成后会自动为MySQL的root用户生成一个随机初始化密码,记录在MySQL的error.log文件中
(1)查找初始化密码
grep password /var/log/mysql/mysql.log
(2)登录数据库
mysql -uroot -p
(3)修改root密码
初始化密码登录MySQL后只能执行修改密码的操作,其它任何操作是不能执行的,使用以下命令修改密码
alter user 'root'@'localhost' identified by "P@ssw0rd@2025";
flush privileges;
6,配置数据库用户权限
(1)查看user表中用户远程登录授权,host字段是,说明用户只能本地登录
select host,user,plugin from mysql.user;
(2)设置数据库远程连接
update mysql.user set host='%' where user='root';
刷新权限
FLUSH PRIVILEGES;
7file20,更新用户账户密码的存储方式 默认使用d
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
8,查看数据存储目录
show global variables like "%datadir%";
9,创建数据库,创建用户并授权
登录数据库
mysql -uroot -p
创建zabbix 数据库
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
创建zabbix 用户
mysql> create user 'zabbix'@'%' identified by 'password';
授权主机访问
mysql> grant all privileges on zabbix.* to 'zabbix'@'%';
开启log_bin_trust_function_creators
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
刷新策略
flush privileges;
退出
mysql> quit;
10,MySQL忘记root密码重置密码
停止mysqld服务
systemctl stop mysqld.service
使用mysqld_safe命令启动MySQL 服务,跳过权限检查
mysqld_safe --skip-grant-tables &
登录 MySQL服务,无需密码
mysql -uroot
刷新权限
flush privileges;
更新root密码
alter user 'root'@'localhost' identified by "P@ssw0rd@2025";
退出 MySQL
exit
停止mysqld_safe命令启动的服务
kill -9 pid
启动mysql服务
systemctl start mysql
密码登录
mysql -u root -p
11,MySQL密码管理策略
(1)查看密码管理策略
mysql> show variables like 'password%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| password_history | 0 |
| password_require_current | OFF |
| password_reuse_interval | 0 |
+--------------------------+-------+
3 rows in set (0.00 sec)
SET GLOBAL password_history = 3;
SET GLOBAL password_require_current = ON;
SET GLOBAL password_reuse_interval = 3600;
(2)配置文件持久化设置
vim /etc/f
[mysqld]
password_history=3
password_require_current=ON
password_reuse_interval=3600
12,MySQL 密码安全策略
MySQL密码密码策略默认状态为NOT
(1)查看密码策略显示为空
mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set (0.00 sec)
(2)使用命令加载'.so'密码策略插件
install plugin validate_password soname 'validate_password.so';
(3)查看返回状态,说明密码策略已启用
mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name='validate_password';
+-------------------+---------------+
| plugin_name | plugin_status |
+-------------------+---------------+
| validate_password | ACTIVE |
+-------------------+---------------+
1 row in set (0.00 sec)
(4)查看密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
(5)密码强度要求(0或low代表最低要求)
set global validate_password_policy=0;
(6)密码长度要求
set global validate_password_length=6;
密码至少要包含的小写字母个数和大写字母个数
set global validate_password_mixed_case_count=0;
密码至少要包含的数字个数
set global validate_password_number_count=0;
密码至少要包含的特殊字符数
set global validate_password_special_char_count=0;
(7)查看修改后的密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 0 |
| validate_password_number_count | 0 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 0 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
13, 防火墙设置
(1)放行指定端口
[ ]
(2)重载防火墙策略
[ ]
(3)查看防火墙策略列表
[ ]
(4)指定源地址访问策略
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
MySQL 8.0 官方初始化文档
MySQL 软件包glibc 版本选择
rhel7以及之后的操作系统一般都同时支持了.12与.17,rhel 8系列已经可以支持到.28,统信uos--20-1070e最低2.2.5到最高2.28各个版本支持。
查看系统支持的GLIBC库列表,可以执行如下命令:
strings /usr/lib64/libc.so.6 | grep GLIBC
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh