windows下二进制安装mysql后没有my.ini的解决方法

默认情况下使用解压安装的mysql没有mysql.ini文件,可正常启动使用,变更配置重启mysql会失效。
040821_1221_windowsmy1.png
解决思路是:删除mysql服务并重新初始化数据库,在初始化数据库时指定配置文件。

删除服务

1
sc delete mysql

040821_1221_windowsmy2.png

创建配置文件

在自己希望的位置上创建my.ini,并写入下列内容,其中basedir和datadir需根据实际路径修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
init_connect=’SET NAMES utf8mb4′
innodb_buffer_pool_size = 128M
basedir = C:\mysql-5.7.32-winx64
datadir = C:\mysql-5.7.32-winx64\data
port = 3306
join_buffer_size = 128M
sort_buffer_size = 128M
read_rnd_buffer_size = 128M
sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
transaction-isolation = READ-COMMITTED
max_allowed_packet = 256M
collation-server = utf8mb4_unicode_ci
ft_min_word_len=2
max_connections = 1000
lower_case_table_names=1

040821_1221_windowsmy3.png

重新生成数据文件

此操作会清空数据路径,如有数据需备份。

1
mysqld --initialize-insecure --user=mysql

040821_1221_windowsmy4.png

重新安装mysql服务

mysql57是服务名称
defaults-file是配置文件路径,相对路径和绝对路径都可使用

1
mysqld --install "mysql57" --defaults-file="C:\Program Files\mysql-5.7.32-winx64\my.ini"

040821_1221_windowsmy5.png
040821_1221_windowsmy6.png

启动服务

1
sc start mysql57

040821_1221_windowsmy7.png