ubuntu中,txt导入mysql数据库文件

第一种方式是,在导入的mysql命令中,需要有local选项

newbooks.txt的内容为(字段之间用Tab键隔开):

1111    罗琳    哈利波特    50

---------------------------------------------------------

gedit /etc/apparmor.d/usr.sbin.mysqld中加入

/home/appleyuchi/datatosql r,
/home/appleyuchi/datatosql* rw,

---------------------------------------------------------------

编辑/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]下面增加

secure_file_priv="/home/appleyuchi/datatosql"

-----------------------------------------------------

/etc/init.d/apparmor reload

service mysql restart

然后进入数据库导入

mysql>use books;

mysql>load data local infile "/home/appleyuchi/datatosql/newbooks.txt" into table books;


第二种方式是,在导入的mysql命令中,不需要有local选项


步骤一:

chmod o+rx /home/appleyuchi/datatosql
chmod o+r /home/appleyuchi/datatosql/data.txt

步骤二:

sudo apt install apparmor-utils

sudo aa-complain /usr/sbin/mysqld

sudo /etc/init.d/apparmor reload

然后进入数据库导入

mysql>use books;

mysql>load data  infile "/home/appleyuchi/datatosql/newbooks.txt" into table books;

参考文献:

https://ubuntuforums.org/showthread.php?t=822084

https://bugs.launchpad.net/ubuntu/+source/mysql-dfsg-5.0/+bug/244406

《PHP和Mysql Web开发》(原书第四版)234页(提供了第二种不带local的导入方式,但是完全没有提到需要设置apparmor,太坑)

你可能感兴趣的:(MySQL数据库)