| 一般是因为my.ini的“secure-file-priv”的设置导致loaddata失败,网上查了许多资料,大部分都是要求注释掉my.ini的:  
 secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.6/Uploads
 mysql5.7没有my.ini,只有mydefault.ini,复制改一个就ok了。 注释完不起效果,于是stack-over-flow上查看到这样一个解决方案: http://stackoverflow.com/questions/32737478/mysql-how-to-tackle-secure-file-priv 用命令SHOW VARIABLES LIKE "secure_file_priv";查看一下uploads设置,结果uploads文件夹压根不存在,手动创建之。 loadfile尝试仍然失败。 于是想重启mysql服务,net stop后发现mysql服务压根没起来,net start mysql提示无法启动,服务器没有报告任何错误。 这种情况一般是缺少data目录,那就进入到mysql5.7的bin目录,用mysqld --initialize重建之,出现错误,提示data目录中有文件存在,可是我mysql5.7目录下没有文件存在啊?这种问题网上压根找不到答案,抓耳挠腮找了半天也不知道错误在哪, 突然发现my.ini中有个设置:datadir=D:/MySql/data    # 设置mysql数据库的数据的存放目录,必须是data,或者是//xxx/data   寻思有没有可能是my.ini捣鬼,于是把my.ini改了个名字,再次mysqld --initialize,data目录初始化成功。 net start mysql 再次报错,无服务器没有提示任何错误 于是用mysqld --console查看详细信息,提示有服务占用了3306端口 进到系统服务里挨个看,发现有个服务名为mysql5.7,关闭掉 再次net start mysql,启动成功。 把my.ini名字改回来,顺利导入数据到表中,至此问题解决。   |