抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

记录绿色版MySQL5.7的安装、配置

先决条件

本次实验环境如下:

项目 版本 备注
OS Windows Server 2022 Datacenter IP地址192.168.31.165
MySQL 5.7.44 mysql-5.7.44-winx64.zip
微软运行库 微软常用运行库合集 2023.11.13 注册服务需要使用

Snipaste_2023-11-30_23-05-33

安装、注册

mysql-5.7.44-winx64.zip解压到目录C:\opt\mysql

配置文件my.ini放到bin目录下,注意其中的两个路径需要修改。

Snipaste_2023-11-30_23-11-57

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录
basedir=C:\opt\mysql\mysql-5.7.44-winx64

# 设置mysql数据库的数据的存放目录

datadir=C:\opt\mysql\mysql-5.7.44-winx64\Data

# 允许最大连接数

max_connections=200

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

# 服务端使用的字符集默认为UTF8

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证

default_authentication_plugin=mysql_native_password

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8mb4

[client]

# 设置mysql客户端连接服务端时默认使用的端口

port=3306

default-character-set=utf8

并在系统环境变量添加bin路径,以供全局命令行使用。

Snipaste_2023-11-30_23-13-50

管理员权限打开cmd,进行注册:

1
2
3
4
5
6
7
8
9
10
###安装服务
mysqld --install
###生成data
mysqld --initialize
###启动服务
net start mysql
###尝试登录
mysql -u root
###修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

开启远程访问

在配置3306端口的windows防火墙规则后,需要开启MySQL服务的远程访问权限。

Host列指定了允许用户登录所使用的IP,比如user=root、Host=192.168.111.101。这里的意思就是说root用户只能通过192.168.111.101的客户端去访问。

user=root、Host=localhost,表示只能通过本机客户端去访问。而%是个通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
###登录mysql
mysql -u root -p
###进行配置
mysql> use mysql;
Database changed
mysql> select Host,User from user;
+-----------+---------------+
| Host | User |
+-----------+---------------+
| 127.0.0.1 | halodb |
| localhost | halodb |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
5 rows in set (0.00 sec)

mysql> update user set host = '%' where user ='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;

评论