1file20,操作系统环境

统信操作系统iso

uos--20-1070e-amd64.iso

统信官方镜像下载链接

2,执行命令查看版本

cat /etc/os-versioncat /proc/version
uname -r4.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_64Build  :  UOS Server 20 (1070e) 20240423 amd64#################################################

3,安装MySQL依赖包

dnf install -y perl-Data-Dumper libaio libaio-develdnf install -y openssl openssl-devel openssl-libsdnf install -y bzip2 bzip2-develdnf install -y libtirpc libtirpc-devel

4,MySQL 8.0.41安装

4.1,下载MySQL安装包

打开MySQL官网下载页面,选择正确的筛选条件

file200_file20_file2023年预估

4.2,上传MySQL二进制包

将MySQL 8.0.41的二进制包上传到/opt目录并解压到/usr/local目录

cd /opttar  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 mysqluseradd -M -g mysql -s /sbin/nologin mysql

4.4,创建MySQL目录并授权

(1)创建MySQL数据目录

mkdir -p /data/mysqlchown -R  mysql:mysql /data/mysql/

(2)创建MySQL日志目录

mkdir  -p /var/log/mysqlchown  -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.shecho  'export PATH=$PATH:$MYSQL_HOME/bin' >>  /etc/profile.d/mysql.shsource  /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容量,模拟磁盘IOPSinnodb_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 ServerDocumentation=man:mysqld(8)Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlType=notify# Disable service start and stop timeout logic of systemd for mysqld service.TimeoutSec=0# Execute pre and post scripts as rootPermissionsStartOnly=true# Start main serviceExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/etc/my.cnf# Use this to switch malloc implementationEnvironmentFile=-/etc/sysconfig/mysql# Sets open_files_limitLimitNOFILE=10000Restart=on-failureRestartPreventExitStatus=1# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.Environment=MYSQLD_PARENT_PID=1PrivateTmp=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 -创建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";退出 MySQLexit停止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=3password_require_current=ONpassword_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代表最低要求)

mysql> set global validate_password_policy=0;

(6)密码长度要求

mysql> set global validate_password_length=6;

密码至少要包含的小写字母个数和大写字母个数

mysql> set global validate_password_mixed_case_count=0;

密码至少要包含的数字个数

mysql> set global  validate_password_number_count=0;

密码至少要包含的特殊字符数

mysql> 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)放行指定端口

[root@localhost ~]# firewall-cmd    --add-port=3306/tcp  --permanent

(2)重载防火墙策略

[root@localhost ~]# firewall-cmd    --reload

(3)查看防火墙策略列表

[root@localhost ~]# firewall-cmd    --list-all

(4)指定源地址访问策略

[root@localhost ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.16.100.100" port protocol="tcp" port="3306" accept'[root@localhost ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.16.10.0/24" port protocol="tcp" port="3306" accept'[root@localhost ~]# firewall-cmd    --reload

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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注