MySQL安装及加固(ZIP压缩包)-windows

MySQL安装及加固(ZIP压缩包)-windows

下载

在MySQL官网下载安装:MySQL :: Download MySQL Community Server

安装

  1. 将压缩包解压到指定目录下。

  2. 在解压后的MySQL目录下,创建配置文件my.ini

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    
    [mysqld]
    # 3306端口
    port = 3306
    
    # 设置mysql的安装目录
    basedir = D:Program Filesmysql-5.7.44-winx64
     
    # 设置mysql数据库的数据的存放目录
    datadir = D:Program Filesmysql-5.7.44-winx64data
     
    # 允许最大连接数
    max_connections=200
     
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
     
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
     
    # 创建模式
    sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'
    
    # InnoDB引擎相关配置
    innodb_buffer_pool_size = 128M    # InnoDB缓冲池大小,根据物理内存适当调整
    innodb_log_file_size = 50M        # InnoDB日志文件大小
    
    # 其他性能优化相关的配置
    max_connections = 100             # 最大并发连接数
    query_cache_size = 0              # 查询缓存大小(MySQL 8.0中已废弃查询缓存功能)
    tmp_table_size = 32M              # 临时表的最大大小
    thread_cache_size = 8             # 线程缓存大小
    

    在这里插入图片描述

  3. 初始化MySQL。在MySQL的bin目录下摁住shift,然后点击鼠标右键,选择在此处打开Powershell窗口(S),或者通过cmd命令行进入到MySQL的bin目录,执行下面的命令(根据自己所用窗口,选择一个执行):

    #cmd窗口
    mysqld --initialize-insecure --user=mysql
    
    #Powershell窗口
    .mysqld.exe --initialize-insecure --user=mysql
    

    在这里插入图片描述

  4. 执行上面的初始化命令后,可以看到MySQL目录下新增了一个data目录:

    在这里插入图片描述

  5. 安装MySQL为服务。此时需要以管理员打开cmd窗口,进入MySQL的bin目录,执行下面的命令

    #cmd窗口
    mysqld install
    

    在这里插入图片描述

  6. 此时查看windows的服务下,多了一个MySQL的服务

    在这里插入图片描述

  7. 右键启动MySQL服务。启动后可用工具,使用root账户直接连接,上面的初始化时,root账户是没有密码的,需要马上设置密码。

等保二级加固

MySQL安装完成后,在某此场景下,要对其进行进行安全加固,修改my.ini,添加等保二级要求的加固措施,完整的my.ini如下:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
# 3306端口
port = 3306

# 设置mysql的安装目录
basedir = D:Program Filesmysql-5.7.44-winx64
 
# 设置mysql数据库的数据的存放目录
datadir = D:Program Filesmysql-5.7.44-winx64data
 
# 允许最大连接数
max_connections=200
 
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
 
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
 
# 创建模式
sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'

# InnoDB引擎相关配置
innodb_buffer_pool_size = 128M    # InnoDB缓冲池大小,根据物理内存适当调整
innodb_log_file_size = 50M        # InnoDB日志文件大小

# 其他性能优化相关的配置
max_connections = 100             # 最大并发连接数
query_cache_size = 0              # 查询缓存大小(MySQL 8.0中已废弃查询缓存功能)
tmp_table_size = 32M              # 临时表的最大大小
thread_cache_size = 8             # 线程缓存大小

# 等保二级加固配置
# 密码策略插件
plugin-load-add=validate_password.dll
validate-password=FORCE_PLUS_PERMANENT
## 密码最小8位长度
validate_password_length=8
## 密码至少要包含1个大小写字母
validate_password_mixed_case_count=1
## 密码至少要包含1个数字
validate_password_number_count=1
## 密码强度检查等级 1/MEDIUM
validate_password_policy=1

# 登录失败处理插件
plugin-load-add=connection_control.dll
connection-control=FORCE_PLUS_PERMANENT
connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT
connection_control_failed_connections_threshold=5
connection_control_min_connection_delay=108000

## 超时30分钟,默认是8小时
wait_timeout=1800
interactive_timeout=1800

## 此项配置后对所有用户有效,慎用!要求是密码过期不得超过90天
default_password_lifetime=90