MySQL 5.7安装:my.ini配置文件中哪些参数必填?

你好,当我配置MySQL 5 .7 时,my.ini文件中的basedir和datadir让我非常头疼。
Basedir必须填写正确的路径,否则MySQL无法启动。
我当时一头雾水,就胡乱填写了。
后来发现安装路径必须自己填写。
例如,我的是C:\Program Files\MySQL\MySQL Server 5 .7 这次启动算是成功了。

datadir比较麻烦。
您需要预先创建目录,然后配置正确的路径。
一开始忘记创建了,以为MySQL会自动创建,结果初始化失败。
幸运的是,后来我意识到并手动创建了C:\ProgramData\MySQL\MySQL Server 5 .7 \Data目录。

至于推荐的配置参数,比如字符集、校对规则等,一开始我并没有太在意。
后来发现如果不设置为utf8 mb4 的话,emoji表情可能无法显示,不可以。
所以我设置了character-set-server=utf8 mb4 和collat​​ion-server=utf8 mb4 _unicode_ci,这样不同的字符就可以正常显示了。

还有default-storage-engine=InnoDB,我也推荐这个。
它支持事务并且比其他存储引擎具有更好的性能。

我还配置了客户端的字符集,default-character-set=utf8 mb4 ,这样客户端连接MySQL时就不会出现乱码了。

替换配置文件中的路径时要小心,因为中文字符或空格可能会导致问题。
还要注意目录权限。
MySQL 服务帐户必须具有对 datadir 的读写权限。

一般情况下,虽然basedir和datadir是必须的,但配置其他参数也可以让数据库更加稳定和高效。
配置时要小心,不要让错误的设置影响服务的启动。

MySQL 5.7 my.ini配置文件:哪些参数是必备的?又有哪些常用配置需要了解?

记得上次帮朋友调试数据库时,他向我抱怨启动总是失败。
经过长时间排查,发现datadir没有写正确。
在Windows系统中,如果路径分隔符使用不正确,系统将无法找到数据文件。
这让我想起配置文件看起来很简单,但是每个符号都有它的用武之地。
比如我自己的开发环境,电影电影可以下载的图片之家店,innodb_buffer_pool_size就安全天天小,小就是8 G内存,装设计天天了业也戅不右。
但是客户端服务器有几十G,需要仔细计算。
innodb_flush_log_at_trx_commit设置为2 确实很常见,但是有一个大型并行测试场景,突然发现数据丢失了,当时也吓坏了,赶紧改回1 ,虽然性能下降了,但是数据却乱了。
等等,还有一件事,我接触了max_connections的设置,当应用结果突然膨胀时,新的请求甚至不进去,用户仍然认为服务关闭了,其实只是有限的。
您需要注意这个参数。
不要只看数字,还要了解业务的顶层。

mysql怎么启用innodb数据库引擎

嘿,听了你说了这么多关于MySQL临时表的存储引擎,我觉得它相当复杂。
我自己陷入的陷阱是,在2 02 3 年我负责的一个电商项目中,恰巧遇到了MySQL 5 .7 刚刚上线的阶段。

当时有一个大型促销活动,查询要求非常高,尤其是那种复杂的SQL,需要大量的GROUP BY和JOIN操作。
想一想,本来以为使用InnoDB会带来更好的性能,但是发现它创建了太多临时表,直接导致服务器硬盘超载。
具体来说,某个阿里云ECS实例发生了两次故障,两次都是在半夜。
运维人员急得满头大汗,最后只能强行重启。
第二天查看时,发现日志里全是磁盘空间不足的警告。

所以你看,虽然官方说默认情况下InnoDB是最好的选择,但是在这种高并发,特别是内存密集型查询的情况下,临时表占满磁盘其实是一个现实的问题。
你提到的ibtmp1 文件如果不定期清理或者服务器内存不足的话会不断增长。
官方还表示,该文件在执行查询后会自动删除。
但是,如果查询特别长且复杂或并发性增加,该文件可能会变得可怕。

我还在想一个问题:对于这种类型的分析查询,如果我知道会创建一个很大的临时表,我是应该提前增加innodb_buffer_pool_size,还是应该改回MyISAM或者只是在创建临时表之前添加一个空间检查?每次大甩卖前盯着那个ibtmp1 文件真是太累了……反正你能搞清楚。