基于CentOS Stream 9平台安装MySQL8.4.0 LTS


1. 安装之前

1.1 查看系统版本

root@coisini /# cat /etc/redhat-release

CentOS Stream release 9


1.2 查看cpu架构

root@coisini /# lscpu

架构: x86_64

CPU 运行模式: 32-bit, 64-bit


2. MySQL官方下载https://dev.mysql.com/downloads/mysql/


或者在线下载 wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.0-1.el9.x86_64.rpm-bundle.tar

等下载完(推荐先更换yum源再下载,快很多,CentOS9换源看我这篇文章 点我跳转


3. 解压

我这放在 /opt/coisini 目录下:

powershell 复制代码
mkdir /opt/coisini/
cd /opt/coisini/

3.1 tar包先拆分

powershell 复制代码
tar -xvf mysql-8.4.0-1.el9.x86_64.rpm-bundle.tar 

3.2 再安装

powershell 复制代码
yum install -y libaio

rpm -ivh --nodeps mysql*rpm 

3.3 添加插件:

powershell 复制代码
yun install vim


vim /etc/my.cnf

3.4 在 mysqld 下添加

默认密码策略:必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

powershell 复制代码
mysql_native_password=ON
#add by password secure
validate_password.policy=LOW
#add by password length
validate_password.length=1

esc :wq 保存退出


my.cnf 部分配置参考(这个可跳过):

sql 复制代码
# 官方文档
# http://dev.mysql.com/doc/refman/8.4/en/server-configuration-defaults.html

[client]
# 设置默认端口
port = 3306
# 设置默认字符集
default-character-set = utf8mb4

[mysql]
# 设置mysql命令行客户端默认字符集
default-character-set = utf8mb4
# 设置命令行客户端提示符格式(用户名、主机名、数据库、时、分、秒)
prompt="\\u@\\h :\\d \\R:\\m:\\s>" 

[mysqld]
# 根据服务器内存调整 InnoDB 缓冲池大小。对于专用服务器,建议设置为总内存的 70%,对于其他服务器建议为 10%。此配置项用于优化 InnoDB 的性能。
innodb_buffer_pool_size = 512M
# 调整缓冲区大小优化报表服务器性能。
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M

# MySQL 数据库文件存储的目录。
datadir=/var/lib/mysql
# MySQL 进程的套接字文件位置,用于本地连接。
socket=/var/lib/mysql/mysql.sock
# 错误日志文件的位置
log-error=/var/log/mysqld.log
# MySQL 服务的 PID 文件位置,用于记录当前 MySQL 进程的 ID。
pid-file=/var/run/mysqld/mysqld.pid

# 解决 MySQL 登录时出现的认证插件问题
# default_authentication_plugin = mysql_native_password
# 解决ERROR 2002 (HY000): Can't connect to MySQL server on '192.168.31.16'
mysql_native_password=ON
# 密码验证策略为 LOW,表示较低的密码强度要求。
validate_password.policy=LOW
# 密码最小长度未为1
validate_password.length=1


# MySQL 服务的系统用户
#user=mysql
# 服务器默认字符集
character-set-server = utf8mb4
# 字符集排序规则
collation-server = utf8mb4_general_ci
# 客户端连接MySQL的字符集
init_connect='SET NAMES utf8mb4' 

# 二进制mysql binlog日志文件保存的过期时间7天,单位秒
binlog_expire_logs_seconds=604800
# 限制单个二进制日志文件大小
max_binlog_size = 1G 

# 把未使用到索引的sql记录到慢查询日志
log_queries_not_using_indexes = 1
# 启用慢查询sql日志记录
slow_query_log = 1
# 慢查询的阈值为 3 秒,超过这个时间的查询将被记录到慢查询日志
long_query_time = 3

# 设置临时表空间文件的路径及大小,初始大小为 12MB,自动扩展,最大大小为 1GB。
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:1G
# 设置服务器默认时区
default_time_zone="+8:00"
# 日志时间戳为系统时间
log_timestamps = system 

# MySQL 进程可以打开的最大文件数量为 65535
open_files_limit = 65535
# 连接数达到 max_connections 时的等待连接数,超过此数将不被授予连接资源。
back_log=600
# 避免Too many connections错误,最大并发连接数为 1000,过小会影响连接数量,此参数过大会导致资源用完。
max_connections = 1000
# 单个用户的最大连接数为 1000,设置为 0 表示不限制。
max_user_connections=1000
# 同时打开的表数量为 1024
table_open_cache = 1024
# 缓存数量
table_definition_cache = 1024
# 线程栈大小
thread_stack = 512K
# 线程缓存
thread_cache_size = 1500
# 排序缓冲区
sort_buffer_size = 12M
# 连接缓冲区
join_buffer_size = 12M
# 顺序扫描缓冲区
read_buffer_size = 24M
# 随机读缓冲区
read_rnd_buffer_size = 8M
# 大批量插入缓冲区
bulk_insert_buffer_size = 4M
# 交互式和非交互式会话的超时时间为 600 秒
interactive_timeout = 600
wait_timeout = 600
# 临时表大小
tmp_table_size = 48M
max_heap_table_size = 32M
# 二进制日志缓存的大小为 12MB 和最大 50MB。
binlog_cache_size = 12M
max_binlog_cache_size = 50M
# 索引缓冲区大小
key_buffer_size=384M

# 事务提交时将日志缓冲区中的重做日志写入日志文件,但不会立即写入磁盘,值为 2 表示每秒写入一次。
innodb_flush_log_at_trx_commit = 2 
# 设置 InnoDB 日志缓冲区大小为 64MB。
innodb_log_buffer_size=64M
innodb_redo_log_capacity=52428800

# 最大允许的包
max_allowed_packet = 48M

# 连接空闲超过一定时间后的超时时间为 300 秒
interactive_timeout = 300
# 与interactive_timeout参数同时配置生效
wait_timeout = 300

# 禁用域名解析以提高性能,值为 1 表示启用
skip_name_resolve = 1

# 禁用符号链接以防止安全风险,值为 no 表示不禁用。
skip-symbolic-links=no

# 设置 InnoDB 为每个表使用独立的表空间文件,值为 1 表示启用
innodb_file_per_table = 1

# 设置 InnoDB 缓冲池块大小为 256MB,缓冲池总大小为 512M。
innodb_buffer_pool_chunk_size= 256M
innodb_buffer_pool_size = 512M

# 设置不显示的警告列表
log_error_suppression_list='MY-013712'

3.5 启动MySQL服务 并设置开机自启:

powershell 复制代码
systemctl start mysqld

systemctl enable mysqld

3.6 查询默认账号密码:

powershell 复制代码
grep -i root /var/log/mysqld.log

3.7 登录MySQL

powershell 复制代码
mysql -u root -p

然后输入刚刚获取的密码


3.8 更改密码:

powershell 复制代码
set password for root@localhost = '123456';

3.9 开放远程连接

  1. 选择 mysql 数据库
  2. 创建一个名为 root 的用户,并允许从任何主机登录
  3. 设置用户密码永不过期
  4. 刷新权限
  5. 授予用户 root 完全的权限
  6. 再次刷新权限
powershell 复制代码
use mysql;
create user 'root'@'%' identified with mysql_native_password by '123456';
alter user 'root'@'%'  password expire never;
FLUSH PRIVILEGES;
grant all privileges on *.*  to   'root'@'%' with grant option;
FLUSH PRIVILEGES;

3.10 退出

powershell 复制代码
exit; 

4. 端口开放:

powershell 复制代码
sudo firewall-cmd --permanent --add-port=3306/tcp

firewall-cmd --reload

4.1 连接工具测试连接MySQL

END 到这就完成安装了







5. 删除MySQL:


5.1使用 rpm 命令的方式查看已安装的mysql

powershell 复制代码
rpm -qa|grep mysql

5.2 停止MySQL服务

powershell 复制代码
systemctl stop mysqld

5.3 复制文件名,一个个来删

powershell 复制代码
rpm -ev 对应文件名

报这个被需要,没关系,继续删下一个


END,搞定!

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式