mysql-8.0.34安装

一、基础配置

1. 下载安装包

Mysql官网下载地址
在这里插入图片描述
注意下载glibc-2.12或者2.17的就行,2.28的可能服务器还需要做升级。
在这里插入图片描述

2. 将安装包传到服务其中,并建立数据目录和日志目录

mkdir -p /data/app/mysql
mkdir -p /data/app/mysql/data
mkdir -p /data/app/mysql/logs

在这里插入图片描述

3. 创建mysql用户并授权

groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /data/app/mysql

4. 创建配置文件

vim /etc/my.cnf
[mysqld]
server-id=1
port=7001
basedir=/data/app/mysql/mysql-8.0.34
datadir=/data/app/mysql/data
lower_case_table_names=1
sql-mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
log_bin = mysql-bin
binlog_format = ROW
max_connections=10000
skip_name_resolve=1
innodb_buffer_pool_size = 6G
# 设置全局字符集
character-set-server=utf8mb4
# 设置错误日志
log-error =/data/app/mysql/logs/mysql-error.log
# 指定密码复杂度插件
plugin-load=validate_password.so
# 指定密码复杂度策略
validate_password_policy=STRONG
# 指定连接失败处理插件
plugin-load-add=connection_control.so
connection-control=FORCE_PLUS_PERMANENT
connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT
# 配置连接失败策略
connection_control_failed_connections_threshold=3
connection_control_min_connection_delay=1000
connection_control_max_connection_delay=90000
# 超时时间配置
wait_timeout = 1800
interactive_timeout=1800
# 开启日志
general-log=1
# 加载审计日志插件
[client]
port=7001
default-character-set=utf8mb4

4. 初始化数据库

cd /data/app/mysql/mysql-8.0.34/bin
./mysqld --initialize --datadir=/data/app/mysql/data --user=mysql

5. 查看默认密码

6 设置开机自启

cp /data/mysql/mysql-8.0.34/support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig --list

赋予权限
chmod +x /etc/init.d/mysql
1
添加服务
chkconfig --add mysql

二、以下是安全相关配置,也是参考等保三级配置

1. mysql数据库密码复杂度配置

1.1 查询配置

show variables like 'validate_password%';
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'validate_password';

1.2 安装配置插件

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

1.3 持久化配置

/etc/my.cnf 的[mysqld]下进行配置

plugin-load=validate_password.so
validate_password.policy=STRONG

1.4 安装之后

mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | ON     |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | STRONG |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

1.5 配置说明

validate_password_dictionary_file:密码策略文件,策略为 STRONG 才需要
validate_password_length:密码长度
validate_password_mixed_case_count:大小写字母
validate_password_number_count :数字
validate_password_special_char_count:特殊字符

1.6 测评参考要求

一般要求密码长度不小于 6 位,密码复杂度至少包括数字、大小写字母、特殊字符至少两种
以上

2. 配置mysql数据库密码有效期

2.1 查看当前有效期

show global variables like 'default_password_lifetime';

2.2 配置密码有效期

临时配置,单位为天,配置90天

SET GLOBAL default_password_lifetime = 90;

持久化配置,在/etc/my.cnf 的[mysqld]下进行配置,单位为天,配置90天

default_password_lifetime=90

配置完成后

mysql> show global variables like 'default_password_lifetime';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| default_password_lifetime | 90    |
+---------------------------+-------+
1 row in set (0.01 sec)

3. 配置数据库登录失败处理措施

3.1 查询当前配置

max_connect_errors:最大请求连接失败次数,当 mysql 数据库收到来自同一主机的连接请求,但请求失败次数超设定的次数后,mysql 会拒绝后续这一主机后续的连接请求。

mysql> show variables like '%max_connect_errors%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 100   |
+--------------------+-------+
1 row in set (0.00 sec)

3.2 检查是否可以进行设置(插件是否安装)

如下显示则为没有安装

mysql> show variables like '%connection_control%';
Empty set (0.01 sec)

3.3 安装插件

INSTALL PLUGIN connection_control SONAME 'connection_control.so';
install plugin connection_control_failed_login_attempts soname 'connection_control.so';

持久化配置,在/etc/my.cnf的[mysqld]下添加如下配置

plugin-load-add=connection_control.so
connection-control=FORCE_PLUS_PERMANENT
connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT
connection_control_failed_connections_threshold=3
connection_control_min_connection_delay=1000
connection_control_max_connection_delay=90000

3.4 参数说明

connection_control_failed_connections_threshold:单个用户登录失败(由于密码错误引起)次数上限,默认 3 次
connection_control_max_connection_delay:失败上限之后再次尝试登录前最小等待时间,单位 ms
connection_control_min_connection_delay:失败上限之后再次尝试登录前最小等待时间,默认 1 秒(1000ms)

3.5 配置完成后

mysql> show variables like '%connection_control%';
+-------------------------------------------------+-------+
| Variable_name                                   | Value |
+-------------------------------------------------+-------+
| connection_control_failed_connections_threshold | 3     |
| connection_control_max_connection_delay         | 90000 |
| connection_control_min_connection_delay         | 1000  |
+-------------------------------------------------+-------+
3 rows in set (0.01 sec)

3.6 测评参考要求

一般建议登录失败次数不大于 5 次,锁定时间不小于 1 分钟

4. 设置数据库超时时间

4.1 检查当前设置

mysql> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800 |
+---------------+-------+
1 row in set (0.00 sec)

mysql> show variables like '%timeout';
+-----------------------------------+----------+
| Variable_name                     | Value    |
+-----------------------------------+----------+
| connect_timeout                   | 10       |
| delayed_insert_timeout            | 300      |
| have_statement_timeout            | YES      |
| innodb_flush_log_at_timeout       | 1        |
| innodb_lock_wait_timeout          | 50       |
| innodb_rollback_on_timeout        | OFF      |
| interactive_timeout               | 28800    |
| lock_wait_timeout                 | 31536000 |
| mysqlx_connect_timeout            | 30       |
| mysqlx_idle_worker_thread_timeout | 60       |
| mysqlx_interactive_timeout        | 28800    |
| mysqlx_port_open_timeout          | 0        |
| mysqlx_read_timeout               | 30       |
| mysqlx_wait_timeout               | 28800    |
| mysqlx_write_timeout              | 60       |
| net_read_timeout                  | 30       |
| net_write_timeout                 | 60       |
| replica_net_timeout               | 60       |
| rpl_stop_replica_timeout          | 31536000 |
| rpl_stop_slave_timeout            | 31536000 |
| slave_net_timeout                 | 60       |
| ssl_session_cache_timeout         | 300      |
| wait_timeout                      | 28800    |
+-----------------------------------+----------+
23 rows in set (0.01 sec)

4.2 参数解释

Connect_time:mysql 客户端在尝试与 mysql 服务器建立连接时,mysql 服务器返回错误握手协议前等待客户端数据包的最大时限。默认 10 秒。
Wait_timeout:等待超时时间、默认值 28800 秒(8 小时)
interactive_timeout:交互式连接超时时间(mysql 工具、mysqldump 等)
wait_timeout:非交互式连接超时时间

4.3 测评要求

一般建议等待超时时间不大于 30 分钟。

4.4 设置时间(目前这两个参数设置还在存疑,没有理解)

修改配置文件[mysqld]模块下添加,设置为30分钟
wait_timeout:设置连接超时时间(等待超时时间)
interactive_timeout: 设置查询超时时间。
interactive_timeout对交互式客户端连接生效,wait_timeout对非交互式客户端连接生效。一旦会话登陆成功如果想要会话级别修改超时参数,不管交互式还是非交互式都是修改wait_timeout(set wait_timeout)参数才会生效。只有在新建立连接时,interactive_timeout 才有可能覆盖 wait_timeout的值,同时也只有 新建连接时,interactive_timeout才有用。其他任何情况,控制空闲连接超时的都是wait_timeout。

wait_timeout = 1800
interactive_timeout = 1800

4.5 设置完成后

mysql> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 1800  |
+---------------+-------+
1 row in set (0.00 sec)

5. 设置mysql 数据库用户及用户允许登录的 IP

5.1 查询当前设置

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.01 sec)

5.2 参数说明

(1) Host 列指定了允许用户登录所使用的 IP,比如 user=root Host=192.168.1.1。
(2) 这里的意思,就是说 root 用户只能通过 192.168.1.1 的客户端去访问。
(3) 而%是个通配符,如果 Host=192.168.1.%,那么就表示只要是 IP 地址前缀为“192.168.1.”,的客户端都可以连接。
(4) 如果 Host=%,表示所有 IP 都有连接权限

5.3 修改连接IP

比如,修改mysql用户只能192.168.101段的IP可以连接

update user set Host='192.168.101.%' where User='root';
flush privileges;

6. 设置mysql日志

6.1 查看当前是否开启

general_log:记录所有到达 MySQL Server 的 SQL 语句记录,VALUE 值为 ON,说明已开。

mysql> show variables like 'general_log%';
+------------------+------------------------------------+
| Variable_name    | Value                              |
+------------------+------------------------------------+
| general_log      | OFF                                |
| general_log_file | /data/app/mysql/data/localhost.log |
+------------------+------------------------------------+
2 rows in set (0.01 sec)

6.2 开启日志

临时开启

set global general_log=on;

持久化,修改配置文件

general-log=1

6.3 查看bin_log日志状态

记录了所有的 DDL 和 DML(除了数据查询语句)语句,VALUE 值为 ON,说明已开。

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.01 sec)

持久化配置,修改配置文件

log_bin = mysql-bin
binlog_format = ROW

7. 查看数据库审计功能是否开启

数据库未安装 audit 审计插件,返回值为空

mysql> show variables like '%audit%';
Empty set (0.00 sec)
mysql> 

8. 查询是否通过加密方式进行远程管理

mysql> show variables like '%have_ssl%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl      | YES   |
+---------------+-------+
1 row in set (0.00 sec)

9. mysql创建用户

CREATE USER 'admin'@'%' IDENTIFIED BY 'Masterpassw0rd!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';

三、主从配置

从节点加入

注意: mysql8 必须要有GET_MASTER_PUBLIC_KEY=1这个配置

CHANGE MASTER TO MASTER_HOST='master_host',MASTER_PORT=master_port,MASTER_USER='slave_user',MASTER_PASSWORD='password', GET_MASTER_PUBLIC_KEY=1, MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=4557;

停止从节点

STOP SLAVE;

清除从节点配置

RESET SLAVE;

开启从节点

START SLAVE;
  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
安装和配置MySQL 8.0.34的步骤如下: 步骤1:下载MySQL安装文件。你可以从MySQL官方网站的下载页面中选择下载社区版MySQL。根据你的操作系统选择合适的安装文件。 步骤2:运行安装程序。双击安装文件,然后按照提示进行安装。在安装过程中,你可以选择自定义安装路径。你可以将路径设置为C:\Program Files\MySQL\MySQL Server 8.0\bin 。 步骤3:配置MySQL。在安装过程中,你会被要求设置root用户的密码。请确保你设置一个强密码来保护你的数据库安装完成后,你可以使用MySQL的可视化工具如MySQL Workbench、DataGrip或Navicat来连接到你的数据库。 步骤4:测试连接。打开MySQL的可视化工具,并使用root用户和你设置的密码进行连接。如果连接成功,你就可以开始使用MySQL了。 总结一下,安装和配置MySQL 8.0.34的步骤包括下载安装文件,运行安装程序,配置MySQL并测试连接。希望这些步骤能帮助到你。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [一、Mysql8.0.34-安装教程](https://blog.csdn.net/qq_40689436/article/details/131937989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Mysql超详细安装配置教程(保姆级)](https://blog.csdn.net/weixin_47406082/article/details/131867849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

synda@hzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值