基于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,搞定!

相关推荐
良许Linux6 分钟前
0.96寸OLED显示屏详解
linux·服务器·后端·互联网
蜜獾云17 分钟前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小屁不止是运维18 分钟前
麒麟操作系统服务架构保姆级教程(五)NGINX中间件详解
linux·运维·服务器·nginx·中间件·架构
Hacker_Oldv23 分钟前
WPS 认证机制
运维·服务器·wps
bitcsljl32 分钟前
Linux 命令行快捷键
linux·运维·服务器
ac.char35 分钟前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Youkiup1 小时前
【linux 常用命令】
linux·运维·服务器
qq_297504611 小时前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i1 小时前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore