my.ini的路径分隔符
又踩了个坑,今天安装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识别为了制表符
根据官方文档,路径分隔符可以使用/
,\
,\\
但其中\
配合某些字符时将不再是\
,比如\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中的路径建议用/
或\\
作为分隔符,不建议使用\