安装MySQL8最新版(社区版)
一、安装
1、选择安装源(二选一)
1.1 最新版安装
wget https://repo.mysql.com/mysql80-community-release-el8-4.noarch.rpm
rpm -ivh mysql80-community-release-el8-4.noarch.rpm
#yum module disable mysql
yum install mysql-server --disablerepo=appstream -y
--disablerepo=appstream :排除appstream 仓库安装
1.2 指定版本安装(8.0.21) 【推荐】
RockyLinux8.6安装指定版本MySQL8.0.21 - b̶i̶n̶g̶.̶ - 博客园 (cnblogs.com)
1.3 设置开机启动
systemctl enable mysqld.service
2.添加启动默认配置项(开启允许本地导入数据的配置,并设置最大连接数等)
vim /etc/my.cnf
[mysqld]
......
末尾新增
local-infile = 1
max_connections=1000
或者使用MySQL8新特性之持久化修改最大连接数
set persist max_connections=1000;
启动MySQL
systemctl start mysqld.service
查看是否启动
ps -ef|grep mysql
查看root默认密码
cat /var/log/mysqld.log
参考:https://www.cnblogs.com/ttrrpp/p/12173562.html
3.重置root密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
4.开启远程连接
use mysql;
update user set host='%' where user='root';
select host,user from user;
5.刷新
FLUSH PRIVILEGES;
6.查看是否开启本地导入配置
SHOW GLOBAL VARIABLES LIKE '%local%';
7.安装完毕
使用Navicat链接测试,如果连接不上,请先关闭服务器防火墙或添加防火墙出站规则。
二、插件(可选)
1.开启密码策略
安装插件(默认应该已开启)
INSTALL COMPONENT 'file://component_validate_password';
查看策略
SHOW VARIABLES LIKE 'validate_password.%';
修改/etc/my.cnf
在[mysqld]中添加
validate_password.mixed_case_count=0
解释: 由于valiadte_password
策略。密码强度需要非常高,所以有时候密码都无法成功修改。了解完下面变量就能解决了。
-
validate_password.policy
:密码策略,检查用户的密码。0
:(Low)密码长度最少8个字符1
:(Mediumpolicy)至少包含1个数字,1个小写字母,1个大写字母和1个特殊字符组成(默认值)2
:(Strongpolicy)长度为4或更长的密码子字符串不得与字典文件中的单词匹配
-
validate_password.length
:需要密码最小字符数,默认为8 -
validate_password.number_count
:需要密码的最小数字字符数,默认为1 -
validate_password.mixed_case_count
:需要密码的小写和大写的最小字符数,默认为1 -
validate_password.special_char_count
:需要密码的特殊字符的最小字符数,默认为1 -
validate_password.dictionary_file
:用于检查密码的字典文件的路径名,默认没有
三、常用命令
查看最大连接数
show variables like 'max_connections';
查看已使用连接数
show status like 'max%connections';
查看状态
show status like '%下面变量%'
Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。
Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。
Connections 试图连接MySQL服务器的次数。
Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。
Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。
Delayed_writes 用INSERT DELAYED写入的行数。
Delayed_errors 用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。
Flush_commands 执行FLUSH命令的次数。
Handler_delete 请求从一张表中删除行的次数。
Handler_read_first 请求读入表中第一行的次数。
Handler_read_key 请求数字基于键读行。
Handler_read_next 请求读入基于一个键的一行的次数。
Handler_read_rnd 请求读入基于一个固定位置的一行的次数。
Handler_update 请求更新表中一行的次数。
Handler_write 请求向表中插入一行的次数。
Key_blocks_used 用于关键字缓存的块的数量。
Key_read_requests 请求从缓存读入一个键值的次数。
Key_reads 从磁盘物理读入一个键值的次数。
Key_write_requests 请求将一个关键字块写入缓存次数。
Key_writes 将一个键值块物理写入磁盘的次数。
Max_used_connections 同时使用的连接的最大数目。
Not_flushed_key_blocks 在键缓存中已经改变但是还没被清空到磁盘上的键块。
Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数量。
Open_tables 打开表的数量。
Open_files 打开文件的数量。
Open_streams 打开流的数量(主要用于日志记载)
Opened_tables 已经打开的表的数量。
Questions 发往服务器的查询的数量。
Slow_queries 要花超过long_query_time时间的查询数量。
Threads_connected 当前打开的连接的数量。
Threads_running 不在睡眠的线程数量。
Uptime 服务器工作了多少秒。
四、常用的配置项参考
1、配置密码定期更换
在/etc/my.cnf配置文件中增加
[mysqld]
default_password_lifetime=90 # 90天过期