我在课堂中进行Dao层单元测试后出现了eclipse和MySQL数据库字符集不一样导致了添加字段不成功问题。
我到eclipse中的Window->Preferences->General->Workspace里的文本文件编码(Text file encoding)勾选的是GBK。
我的MySQL数据库字符集查看(SHOW VARIABLES LIKE 'character%';)结果是Latin1。它是不支持中文的,所以导致插入数据中含有中文时会出现乱码。
我的想法是干脆全改为UTF-8吧,也就是eclipse和MySQL数据库都一起改了(当然,如果想保留默认的GBK也是可以的,后面做法相适用)
找到my.ini文件:ProgramData文件夹是隐藏项目,可从查看里边勾选后可看到。
my.ini文件以记事本方式打开,修改添加两个地方:找个空位添加就好,保存并退出。
在服务中重启MySQL(Win+R -> services.msc),重启电脑
进入MySQL(Win+R -> CMD -> mysql -u root -p -> Enter password:***)查看数据库字符集:SHOW VARIABLES LIKE 'character%'
这就算是字符集统一了。
但是,我出现了问题。在修改了my.ini文件并重启后,我的数据库字符集并没有改变,所以我就找到了bin目录下的MySQLInstanceConfig.exe
如果你没有MySQLInstanceConfig.exe那么卸载掉MySQL重新自定义安装。
以下是我出现问题的解决过程,如果上述步骤没有出现问题,那么下面的部分是不需要的。
双击打开 -> Next
这里是为InnoDB数据库文件选择一个空间,如果想要更改的话,点击Modify。我这里不需要,直接Next。
Concurrent connections:选15-30即可
到这里,就是选择数据库字符集的地方了,默认是Latin1。我只要改和eclipse一样的字符集UTF8即可,如果你的eclipse文本文件编码是GBK,那么选中gbk即可。
这里设置好你的管理员密码
这里Execute点击后就开始配置了
至此配置完成那么你的MySQL数据库字符集就设置好了。
但你如果和我一样,在配置过程中出现问题,即重新启动服务失败,那么重新卸载数据库,在重新下载即可。注意的是在卸载过程中,别忘了删除注册表。(ControlSetXXX,只要是ControlSet都要逐个去找MySQL并删除掉)
如果配置过程缓慢迟迟没有反应,关掉->卸载->重新下载
我在安装MySQL数据库的过程中基本上各种问题都出现过了,如有错漏之处,欢迎指正。