my.ini的路径分隔符

时间:2021-06-02 04:42:48

又踩了个坑,今天安装mysql,路径为F:\test\mysql于是我配置my.ini如下

[mysqld]
basedir=F:\test\mysql
datadir=F:\test\mysql\data

看着好像没问题,于是执行命令mysqld --initialize-insecure,然而奇怪的事发生了

mysqld: Can't create/write to file 'F:    est\mysql\data\is_writable'(Errorcode: 2 - No such file or directory)

注意这行报错的路径是重点,路径中的的F:\test中的\t消失了,变成了tab(这里用4空格代替了因为我不知道markdown怎么显示tab。。。),当时我还以为是cmd的bug显示错误,后来才反应过来mysql把\t识别为了制表符

my.ini的路径分隔符

根据官方文档,路径分隔符可以使用/,\,\\但其中\配合某些字符时将不再是\,比如\test会被理解为制表符加上est

这里将my.ini改成这样即可

[mysqld]
basedir=F:\\test\mysql
datadir=F:\\test\mysql\data

不过为了防止再踩这种无聊的坑,我选择这样

[mysqld]
basedir=F:/test/mysql
datadir=F:/test/mysql/data

结论:my.ini中的路径建议用/\\作为分隔符,不建议使用\

mysql ref

*上的类似问题