银河麒麟系统中为什么MySQL必须导出文件到这个/var/lib/mysql-files/目录,不能导出到自己指定的目录呢?
网上查的办法就是修改MY.cnf等都做了在[mysqld]下面加上secure_file_priv=或secure_file_priv=''或secure_file_priv='/',都试过,但还是不能导出到自己指定的目录,报错,请各位大咖帮忙解决一下,谢谢。
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secure_file_priv
可以参考官方文档的说明, secure_file_priv的值可以是空串,可以是目录,也可以是Null。 Null值时候禁止导入导出, 空串时候变量失效属于不安全的设置,设置为目录时这个目录必须是存在的,并且是mysql所有的,不能是所有用户都有权限访问的目录。
secure_file_priv='/' 相当于设置根目录是导入导出的目录,应该是系统认为不安全的设置,系统会发出报错。
默认的目录是安装时候指定的,银河麒麟的安装包应该是deb,指定的目录是/var/lib/mysql-files/。
可以模仿上面的方式试一下创建目录, 然后再修改secure_file_priv的值到你想要的目录
该回答内容部分引用GPT,GPT_Pro更好的解决问题
MySQL数据库要想将文件导出到Ivanlibjimysql-fles/目录,需要先在my.cnf文件中设置secure_file_priv属性,该属性可以控制MySQL能够访问哪些文件。默认情况下,secure_file_priv属性是空的,这样就会导致MySQL不能导出文件到指定的目录,我们可以修改my.cnf文件,将secure_file_priv属性设置为指定的目录,如:
[mysqld]
secure_file_priv=/varlib/mysql-files/
修改完之后重启MySQL服务,之后MySQL就可以将文件导出到/varlib/mysql-files/目录下了。
如果回答有帮助,望采纳。