因项目需要搭建一个Mysql数据库,为了方便日常运维操作开始选择了Windows Server 2012R2(已有的虚拟机),考滤到要300G空间,原来的盘空间不够了,就是给虚拟机加了磁盘,Mysql 8.0.26社区版安装路径没得选择,默认就装在C:盘了。然后必须要把mysql的数据文件放到新盘去。
结果整了大半天,重装了好几次,换了两个版本,都一修改my.ini文件,mysql服务就跑不起来。开始以为是新文件夹授权问题,根据网上的搜索信息,在文件夹添加NetWork Service用户的所有控制权限,但mysql仍旧是启动不起来。折腾了大半天,修改回原来的配置项内容,也启动不起来。。。。。印象中有点记忆可能是文件字符集影响到了(以前遇到过类似的场景)。
于是百度了一下,有人推荐Notepad++,下载了里面真有转换保存格式,由UTF8转换为ANSI。Mysql配置文件my.ini 默认是使用ANSI格式,但用系统的记事本修改后会被保存为UTF8编码格式,导致服务启动不起来。使用Notepad++重新转换保存后,mysql服务重启成功了。
跟接着又是第二个坑出现了,Mysql 8.0.26版本后,默认使用了cacjomg_sha2_password加密方式,旧的连接查询客户端工具SQLgoy10.2版本连接不上来。
为了兼容其它同事的工具,搜索到一个解决方案,增加一个新用户,使用旧的加密方式mysql_native_password:
create user 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
然后客户端可以连接进数据库了。