ITPUB论坛-中国专业的IT技术社区

 找回密码
 注册
查看: 711|回复: 9

[原创] MYSQL导入导出问题求助

[复制链接]
认证徽章
论坛徽章:
1
蒙奇·D·路飞
日期:2016-08-10 14:54:03
跳转到指定楼层
1#
发表于 2017-11-16 15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
mysql版本:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.37    |
+-----------+
1 row in set (0.00 sec)

系统版本:
[root@mysql02 mysql]# uname -a
Linux mysql02 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

my.cnf配置文件:
[root@mysql02 mysql]# cat my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/ ... ation-defaults.html

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
datadir=/data/mysql/data/
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
secure_file_priv=/

问题:
在执行导入时报错:
mysql> load data infile '/root/test/t_test.txt' into table t_test charset utf8 fields terminated by ',';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

[root@mysql02 test]#  mysqlimport -uroot -proot  -S /tmp/mysql.sock test --default-character-set=utf8 --fields-terminated-by=',' /root/test/t_test.txt
Warning: Using a password on the command line interface can be insecure.
mysqlimport: Error: 1290, The MySQL server is running with the --secure-file-priv option so it cannot execute this statement, when using table: t_test

请问这个问题怎么解决,求帮助,谢谢

认证徽章
论坛徽章:
20
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29秀才
日期:2018-06-21 10:08:00ITPUB15周年纪念
日期:2018-03-20 15:45:33ITPUB15周年纪念
日期:2018-03-20 15:25:18托尼托尼·乔巴
日期:2018-02-05 08:12:49蒙奇·D·路飞
日期:2018-01-31 16:03:23秀才
日期:2018-01-02 15:35:05技术图书徽章
日期:2018-01-02 15:30:09技术图书徽章
日期:2017-12-21 14:05:31娜美
日期:2017-12-15 13:56:33
2#
发表于 2017-11-16 15:38 | 只看该作者
设置的 secure_file_priv=/  
只能在 / 目录导入导出

使用道具 举报

回复
认证徽章
论坛徽章:
1
蒙奇·D·路飞
日期:2016-08-10 14:54:03
3#
发表于 2017-11-16 15:58 | 只看该作者
guocun09 发表于 2017-11-16 15:38
设置的 secure_file_priv=/  
只能在 / 目录导入导出

my.cnf配置文件改了
如下:

[root@mysql02 mysql]# cat my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
datadir=/data/mysql/data/
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
secure_file_priv=/root/test/

/root/test文件权限如下:
[root@mysql02 ~]#
[root@mysql02 ~]# ll
total 26100
drwxr-xr-x. 2 root  root      4096 Nov  6 16:50 employees_db
-rwxr--r--. 1 root  root  26715056 Nov  6 16:49 employees_db-full-1.0.6.tar.bz2
drwxr-xr-x. 2 mysql mysql     4096 Nov 16 14:26 test
[root@mysql02 ~]#
[root@mysql02 ~]#
[root@mysql02 ~]#
[root@mysql02 ~]# pwd
/root
[root@mysql02 ~]#
[root@mysql02 ~]# cd test
[root@mysql02 test]#
[root@mysql02 test]# ll
total 4
-rwxrwxrwx. 1 mysql mysql 69 Nov 16 14:04 t_test.txt
[root@mysql02 test]#
[root@mysql02 test]#

还是报哪个错误。。。

使用道具 举报

回复
认证徽章
论坛徽章:
1
蒙奇·D·路飞
日期:2016-08-10 14:54:03
4#
发表于 2017-11-16 16:00 | 只看该作者
mysql> load data infile '/root/test/t_test.txt' into table t_test charset utf8 fields terminated by ',';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
mysql>
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t_test         |
+----------------+
1 row in set (0.00 sec)

mysql>


使用道具 举报

回复
认证徽章
论坛徽章:
20
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29秀才
日期:2018-06-21 10:08:00ITPUB15周年纪念
日期:2018-03-20 15:45:33ITPUB15周年纪念
日期:2018-03-20 15:25:18托尼托尼·乔巴
日期:2018-02-05 08:12:49蒙奇·D·路飞
日期:2018-01-31 16:03:23秀才
日期:2018-01-02 15:35:05技术图书徽章
日期:2018-01-02 15:30:09技术图书徽章
日期:2017-12-21 14:05:31娜美
日期:2017-12-15 13:56:33
5#
发表于 2017-11-16 16:07 | 只看该作者
司马辽太杰 发表于 2017-11-16 16:00
mysql> load data infile '/root/test/t_test.txt' into table t_test charset utf8 fields terminated by  ...

show variables like '%secure_file_priv'; 看看?

使用道具 举报

回复
认证徽章
论坛徽章:
1
蒙奇·D·路飞
日期:2016-08-10 14:54:03
6#
发表于 2017-11-16 16:07 | 只看该作者
guocun09 发表于 2017-11-16 16:07
show variables like '%secure_file_priv'; 看看?

mysql> show variables like '%secure_file_priv';
+------------------+-------------+
| Variable_name    | Value       |
+------------------+-------------+
| secure_file_priv | /root/test/ |
+------------------+-------------+
1 row in set (0.00 sec)

使用道具 举报

回复
认证徽章
论坛徽章:
20
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29秀才
日期:2018-06-21 10:08:00ITPUB15周年纪念
日期:2018-03-20 15:45:33ITPUB15周年纪念
日期:2018-03-20 15:25:18托尼托尼·乔巴
日期:2018-02-05 08:12:49蒙奇·D·路飞
日期:2018-01-31 16:03:23秀才
日期:2018-01-02 15:35:05技术图书徽章
日期:2018-01-02 15:30:09技术图书徽章
日期:2017-12-21 14:05:31娜美
日期:2017-12-15 13:56:33
7#
发表于 2017-11-16 16:20 | 只看该作者
/root/test 目录权限也赋予 mysql 用户试试

使用道具 举报

回复
认证徽章
论坛徽章:
1
蒙奇·D·路飞
日期:2016-08-10 14:54:03
8#
发表于 2017-11-16 16:27 | 只看该作者
guocun09 发表于 2017-11-16 16:20
/root/test 目录权限也赋予 mysql 用户试试

该了 还是不行。。。。
我看网上说都要5.7以上版本才有这个特性,我的是5.6的啊,怎么也有这限制。。。

使用道具 举报

回复
认证徽章
论坛徽章:
1
蒙奇·D·路飞
日期:2016-08-10 14:54:03
9#
发表于 2017-11-16 16:36 | 只看该作者
搞定了,我给数据文件所在的目录执行chown -R mysql:mysql . 就ok了

唉,看上去很简单的哦事,搞了一下午。。。

使用道具 举报

回复
认证徽章
论坛徽章:
20
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29秀才
日期:2018-06-21 10:08:00ITPUB15周年纪念
日期:2018-03-20 15:45:33ITPUB15周年纪念
日期:2018-03-20 15:25:18托尼托尼·乔巴
日期:2018-02-05 08:12:49蒙奇·D·路飞
日期:2018-01-31 16:03:23秀才
日期:2018-01-02 15:35:05技术图书徽章
日期:2018-01-02 15:30:09技术图书徽章
日期:2017-12-21 14:05:31娜美
日期:2017-12-15 13:56:33
10#
发表于 2017-11-16 16:49 | 只看该作者
司马辽太杰 发表于 2017-11-16 16:27
该了 还是不行。。。。
我看网上说都要5.7以上版本才有这个特性,我的是5.6的啊,怎么也有这限制。。。

针对5.6 版本:
在5.34 之前默认是empty
从5.34 之后默认是platform specific

  • secure_file_priv
    Command-Line Format--secure-file-priv=dir_name
    System VariableNamesecure_file_priv
    ScopeGlobal
    DynamicNo
    Permitted Values (<= 5.6.33)Typestring
    Defaultempty
    Valid Valuesempty
    dirname
    Permitted Values (>= 5.6.34)Typestring
    Defaultplatform specific
    Valid Valuesempty
    dirname
    NULL

    This variable is used to limit the effect of data import and export operations, such as those performed by the LOAD DATA and SELECT ... INTO OUTFILE statements and the LOAD_FILE() function. These operations are permitted only to users who have the FILE privilege.
    secure_file_priv may be set as follows:
    • If empty, the variable has no effect. This is not a secure setting.
    • If set to the name of a directory, the server limits import and export operations to work only with files in that directory. The directory must exist; the server will not create it.
    • If set to NULL, the server disables import and export operations. This value is permitted as of MySQL 5.6.34.


    Before MySQL 5.6.34, this variable is empty by default. As of 5.6.34, the default value is platform specific and depends on the value of the INSTALL_LAYOUT CMake option, as shown in the following table. To specify the default secure_file_priv value explicitly if you are building from source, use the INSTALL_SECURE_FILE_PRIVDIR CMake option.
    INSTALL_LAYOUT ValueDefault secure_file_priv Value
    STANDALONE, WINNULL
    DEB, RPM, SLES, SVR4/var/lib/mysql-files
    Otherwisemysql-files under the CMAKE_INSTALL_PREFIX value
    To set the default secure_file_priv value for the libmysqld embedded server, use the INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR CMake option. The default value for this option is NULL.
    As of MySQL 5.6.34, the server checks the value of secure_file_priv at startup and writes a warning to the error log if the value is insecure. A non-NULL value is considered insecure if it is empty, or the value is the data directory or a subdirectory of it, or a directory that is accessible by all users. If secure_file_priv is set to a nonexistent path, the server writes an error message to the error log and exits.


使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表
http://www.vxiaotou.com