基于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://img-blog.csdnimg.cn/direct/620baf9fc97f45edb5e5fbc9b710e0b7.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b0294f927df24563a778ba0dd8fcf5e4.png) > 或者在线下载 `wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.0-1.el9.x86_64.rpm-bundle.tar` > > 等下载完(推荐先更换yum源再下载,快很多,CentOS9换源看我这篇文章 [点我跳转](https://blog.csdn.net/qq_44870331/article/details/121462277)) *** ** * ** *** ### 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 ``` ![l](https://img-blog.csdnimg.cn/direct/31fb827272ea460b88b415dc18b46be8.png) *** ** * ** *** #### 3.2 再安装 ```powershell yum install -y libaio rpm -ivh --nodeps mysql*rpm ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/107d370b08d34a779eacb9996af66be8.png) *** ** * ** *** #### 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 ``` ![1](https://img-blog.csdnimg.cn/direct/ecea789bd065403d92026b03fa4debc9.png) `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 ``` ![默认账号密码](https://img-blog.csdnimg.cn/direct/2755c79068b04f4fb23966e700a52af1.png) *** ** * ** *** #### 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 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/29133d35e0c0443f82d349196ff50eba.png) > END 到这就完成安装了 *** ** * ** *** *** ** * ** *** *** ** * ** *** *** ** * ** *** *** ** * ** *** *** ** * ** *** ### 5. 删除MySQL: *** ** * ** *** #### 5.1使用 rpm 命令的方式查看已安装的mysql ```powershell rpm -qa|grep mysql ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/099d2732184642b6a297370a76835e22.png) *** ** * ** *** #### 5.2 停止MySQL服务 ```powershell systemctl stop mysqld ``` *** ** * ** *** #### 5.3 复制文件名,一个个来删 ```powershell rpm -ev 对应文件名 ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b666c1b7ddf24ea1960f3601ca273905.png) 报这个被需要,没关系,继续删下一个 *** ** * ** *** END,搞定!

相关推荐
南风与鱼10 分钟前
Linux 线程池
linux·线程池
HX科技10 分钟前
Debian系统_主板作为路由器_测试局域网设备间网速
运维·debian
Mazy.v29 分钟前
Linux图形化界面
linux·运维·数据库
Linux技术芯30 分钟前
#Linux内存管理# 在ARM32系统中,页表是如何映射的?在ARM64系统中,页表又是如何映射的?
linux
小王努力学编程39 分钟前
【Linux网络编程】UDP Echo Server的实现
linux·运维·服务器·网络·c++·学习·udp
想睡hhh39 分钟前
Leetcode12 13——罗马数字与整数之间的转换
linux·运维·服务器
二狗哈42 分钟前
go游戏后端开发31:麻将游戏的碰牌与胡牌逻辑
服务器·游戏·golang
阿里云云原生43 分钟前
如何使用通义灵码玩转Linux - AI编程助手提升效率
linux
Peter_chq44 分钟前
selenium快速入门
linux·开发语言·chrome·python·selenium
·云扬·1 小时前
【BUG】远程连接阿里云服务器上的redis报错
服务器·阿里云·bug