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 开放远程连接
- 选择 mysql 数据库
- 创建一个名为 root 的用户,并允许从任何主机登录
- 设置用户密码永不过期
- 刷新权限
- 授予用户 root 完全的权限
- 再次刷新权限
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,搞定!