简单记录一下在windows下安装MySQL,防止下次又忘了还得搜。
声明:
本文档的一切内容均为本地测试结果,受限于本人知识与能力,仅供参考,如因参照本文档操作而发生任何问题,无论是否严格参照本文档操作,请恕本人概不负责。
文档中的任何观点受限于本人知识、能力及眼界,不保证理智,公正,客观。如本文档中观点与您相左,以您的意见为准。
参考文档
在 Windows 上采用ZIP压缩包安装 MySQL 8
下载地址
官方下载地址
创建my.ini文件
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
47
48
49
50
51
52
53
54
55
56
57
58
|
[client]
port = 3309
socket = D:\Program OOTB\mysql8\mysql-8.0.32-winx64/data/mysqld.sock
[mysqld]
port = 3309
basedir = D:\Program OOTB\mysql8\mysql-8.0.32-winx64
datadir = D:\Program OOTB\mysql8\mysql-8.0.32-winx64/data
log-error = D:\Program OOTB\mysql8\mysql-8.0.32-winx64/data/error.log
pid-file = D:\Program OOTB\mysql8\mysql-8.0.32-winx64/data/mysqld.pid
#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"
#设置client连接mysql时的字符集,防止乱码
init_connect ='SET NAMES utf8mb4'
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M
server-id = 110
#开启bin log 功能
log-bin=mysql-bin
#binlog 记录内容的方式,记录被操作的每一行
binlog_format = ROW
#对于binlog_format = ROW模式时,FULL模式可以用于误操作后的flashBack。
#如果设置为MINIMAL,则会减少记录日志的内容,只记录受影响的列,但对于部分update无法flashBack
binlog_row_image = FULL
#bin log日志保存的天数
#如果 binlog_expire_logs_seconds 选项也存在则 expire_logs_days 选项无效
#expire_logs_days 已经被标注为过期参数
#expire_logs_days = 7
binlog_expire_logs_seconds = 1209600
log_replica_updates
relay_log_recovery = 1
replica_skip_errors = ddl_exist_errors
#控制 redolog 写磁盘频率 默认为1
innodb_flush_log_at_trx_commit = 1
#控制 binlog 写磁盘频率
sync_binlog = 1
[mysqldump]
quick
max_allowed_packet = 128M
|
初始化+设置密码
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#无密码初始化
mysqld --initialize-insecure --console
#在powershell执行此行命令没有输出可能是缺少dll
#换到cmd执行会弹出提示框,提示缺少的dll
#如果下次给遇到这种问题会把下载dll的链接放过来
#https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170
#以上为可能的解决网址
#启动mysql
mysqld --console
#无密码登录
mysql -u root --skip-password
|
设置密码
1
2
|
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
mysql> FLUSH PRIVILEGES;
|
设置新用户和数据库并给予权限
1
2
3
4
|
mysql> CREATE DATABASE mytest;
mysql> CREATE USER 'mydev'@'%' IDENTIFIED BY 'mydev123';
mysql> grant all on mytest.* to 'mydev'@'%' with grant option;
mysql> FLUSH PRIVILEGES;
|
注册为windows服务
1
2
3
4
5
6
7
8
9
10
|
#注册为服务
mysqld --install mysql8
#启动命令(二选一)
sc start mysql8
net start mysql8
#删除服务(二选一)
sc delete mysql8
mysqld --remove
|