windows系统mysql8.0更改lower_case_table_names

windows系统mysql8.0更改lower_case_table_names

昨天在百度搜索了…7小时都没解决,今天去google上搜索1小时就解决了…让我慢慢道来…

首先,因为想用kbengine写游戏,就去搞kbengine发现它要求MySQL的lower_case_table_names为0…于是开始漫长的更改…

  1. 其实,windows系统无法改成 lower_case_table_names=0, 因为windows默认是1,就算改也只能改成2,以下截自 MySQL 8.0 Reference Manualwindows系统mysql8.0更改lower_case_table_names_第1张图片

  2. 然后,当我们按照网上方法把 my.ini中的lower_case_table_names强行改成2之后,会发现,mysql server无法启动了!!这是因为(下面还是MySQL 8.0 Reference Manual)

在这里插入图片描述

你会看到错误是,你的data文件默认是1,但是你的lower_case_table_names=2了所以报错。mysql8.0要求我们不能在initialize之后再更改lower_case_table_names的值,所以正确做法是!!!

  1. 清空data文件,我的data文件在programdata\MySQL\XXXXserver 8.0\里面,你就把它删了,然后重新放个空的
  2. 然后把my.ini 里面lower_case_table_names,直接把1改成2
  3. 然后管理员身份运行cmd,在这里插入图片描述
    做这步重新initialize mysql server
  4. 然后…你的mysql server就被重新initialize了

后续:
因为重新initialize了嘛…以前的东西就没了…所以,你重新登陆mysql时候,用户名是root,密码在programdata\MySQL\XXXXserver 8.0\里面搜索一个.err文件,密码会被随机初始化在里面,你用这个密码才能登陆哦。后面自己把他改掉就好啦

下面是我找问题的时候参考的国外网站:
https://bugs.mysql.com/bug.php?id=90814
https://bugs.mysql.com/bug.php?id=90695
https://stackoverflow.com/questions/8550789/where-to-change-the-value-of-lower-case-table-names-2-on-windows-xampp

你可能感兴趣的:(windows系统mysql8.0更改lower_case_table_names)