以前一直用的好端端的,此次启动服务忽然就报了这错误。 mysql
更好的阅读体验可访问 这里。sql
原由
为了使用 LOAD_FILE 函数,在数据库配置文件 my.ini
的 [mysqld] 里添加 secure_file_priv=“一个绝对路径” 。以前添加过一次,成功使用完后加了注释,此次不过是再次把注释打开。而后就报了上述那个错误。数据库
解决过程
这是我第二次遇到这个问题了。第一次遇到是由于很长一段时间没有使用mysql(不知道哪里出了问题),而后网上查询了解到一种方法,当时帮助我解决了问题,我还记了笔记。这是当时解决的过程,你们也能够参考一下。函数
方法一
- 先备份。找到MySQL的data文件夹,把data里的数据库名文件夹以及ibdata1文件复制一份。
- 删除data文件夹
- 用管理员身份打开cmd,进入到mysql的bin目录下,输入命令初始化数据库文件(也就是data)。
mysqld --initialize-insecure --user=mysql
- 把刚才复制的文件粘贴到新的data文件夹里替换
- 启动成功
当时主要参考的是这篇文章:解决 本地计算机上的MySQL80服务启动后中止,某些服务在未由其余服务或者程序使用时将自动中止spa
可是,此次我再次使用这种方法却无论用了.net
因为我是在 还处于mysql命令行的状态下,中止了服务,当时怀疑是否是由于这点把文件搞坏了(后来证实并非这样)。 而且上述方法以前确实解决了问题,因此一直想着此次为何不起做用,,在从新删除、初始化好几回都不行的状况下,才把心思再次放回my.ini
上。 而后把 secure_file_priv 那行注释掉,再次启动,居然启动成功了。。无语。而后观察这一行,发现原来是我以前 secure_file_priv 使用的绝对路径,不知何时已经被我改掉了。而后MySQL在启动的时候调用 my.ini 不能正确执行,故启动失败。因而,再次打开注释,更改了正确路径,就成功启动了。下面是总结的方法。命令行
方法二
- 回想本身是否更改了
my.ini
文件。 - 回想本身是否更改过 MySQL 使用的文件夹的路径。
- 去 my.ini 里看下里面使用的绝对路径是否正确。
- 修改完后,保存配置,启动成功。
并不仅有绝对路径这一点,凡是 my.ini 出了问题都不能正确启动,根据本身的状况而定。code
总结
出现这种状况的缘由可能有多种,仔细想下出现这种问题的原由。根据你们的文章,再结合本身的问题通常均可以解决。 中途还发现:mariadb 可直接使用load_file函数,mysql新版本才须要考虑blog