MySQL没有默认my.ini文件

mysql不同的安装方式会导致是否生成my.ini文件,一般情况下使用ZIP安装时,安装好之后默认是没有my.ini配置文件。

当我们想修改数据库的配置信息,若没有my.ini文件会很麻烦。

当前情况如下:

数据库安装在E:Program FilesMySQLMySQL Server 5.7,该文件夹下没有my.ini,但是有my-default.ini。

根据网上的方式,把my-default.ini移除,复制一个my.ini文件放在当前安装目录下,my.ini内容如下(根据自己的实际情况进行配置):

# 
#此数据库没有my.ini文件,当前文件为后来增加的
#
#
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_bin
init_connect='SET NAMES utf8mb4'
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.

#该参数指定了安装 MySQL 的安装路径,填写全路径可以解决相对路径所造成的问题。
basedir = E:/Program Files/MySQL/MySQL Server 5.7
#该参数指定了 MySQL 的数据库文件放在什么路径下。数据库文件即我们常说的 MySQL data 文件。
datadir = E:/Program Files/MySQL/MySQL Server 5.7/Data


port = 3306
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 16M
read_rnd_buffer_size = 16M 

#定义应该支持的sql语法,对数据的校验等等
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


max_allowed_packet=300M

注意问题:

根据自己的情况修改basedir和datadir;
特别是datadir,这台服务器有三个data文件夹,分别为
C:/ProgramData/MySQL/MySQL Server 5.7/Data
E:/ProgramData/MySQL/MySQL Server 5.7/Data
E:/Program Files/MySQL/MySQL Server 5.7/Data
也不知道为什么会这么乱,尝试着来吧,
datadir设置第一个,重启服务成功,但是其他配置没生效;
第二个,重启服务成功,配置生效,但是竟然丢失部分表数据,why?
第三个,重启服务成功,配置生效,数据正常。

说明datadir的值应该是数据库安装目录中data文件夹的路径,

另外两个应该是某位好心的同事重装或者删除数据库没整干净

发现一个挺不错的处理方式,但是我的服务器上运行的系统比较多,十几个库,算了算了,能跑就行。。。。

原文地址:https://www.cnblogs.com/lijianchuan/p/13863172.html