zoukankan      html  css  js  c++  java
  • --secure-file-priv option so it cannot execute this statement

    MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this statement


    mysql> show variables like '%secure%';
    +--------------------------+-----------------------+
    | Variable_name            | Value                 |
    +--------------------------+-----------------------+
    | require_secure_transport | OFF                   |
    | secure_auth              | ON                    |
    | secure_file_priv         | /var/lib/mysql-files/ |
    +--------------------------+-----------------------+
    3 rows in set (0.27 sec)

     
    如果value值为null,则为禁止;如果有文件夹目录,则只允许改目录下文件(测试子目录也不行);如果为空,则不限制目录;

    重启mysql: 

    关闭mysql:mysqladmin -uroot shutdown -p

    启动mysql:

    su root

    ./bin/mysqld_safe --basedir=/usr/local/mysql/ --datadir=/home/common/mysql_data/ --user=mysql &

    set global secure_file_priv='';
    ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable
    报错原因:
    参数为只读参数,需要在配置文件/etc/my.cnf或windows下的my.ini中更改该参数,之后重启数据库


    secure_file_priv参数说明
    这个参数用来限制数据导入和导出操作的效果,例如执行LOAD DATA、SELECT ... INTO OUTFILE语句和LOAD_FILE()函数。这些操作需要用户具有FILE权限。
    如果这个参数为空,这个变量没有效果;
    如果这个参数设为一个目录名,MySQL服务只允许在这个目录中执行文件的导入和导出操作。这个目录必须存在,MySQL服务不会创建它;
    如果这个参数为NULL,MySQL服务会禁止导入和导出操作。这个参数在MySQL 5.7.6版本引入。 


    重新导入:

    load data infile '/home/xxx/Desktop/3333/head.csv' 
    -> into table `table` 
    -> character set utf8 
    -> fields terminated by ' '
    -> lines terminated by ' ';

    导入数据时出错:

    ERROR 1261 (01000): Row 1 doesn't contain data for all columns

    修改 sql_mode:

    set global sql_mode='';

    导入数据可能出现的问题及解决方案:

    Error 1261(01000):Row XX doesn't contain data for all columns

    Method:本错误信息提示第XX行数据不足,查看你数据库表中建立的字段和数据中提供的字段数目是否相同,只有二者数目一致,才可以导入。

    Error 1366(HY000):Incorrect string value: 'x95FxBExF4xC6xFB...' for column 'enterprise' at row XX

    Method:本错误信息提示第XX行‘enterprise’字段出现不正确的字符,查找之后发现我在这个字段的数据含有2个比较复杂的汉字“旻爵”,可能无法识别,把这2个字去掉之后这个错误便消失了。

    Error 1366(HY000):Incorrect integer value: ' ' for column 'money' at row XX

    Method:本错误信息提示第XX行出现不正确的int值,可能原因是数据库“money”字段定义的数据类型是int型,而数据中存储的却不是int型(可能是double型、float型之类的)--这种情况一般是数据类型出现不一致的问题。

    Error 1265(01000):Data truncated for column 'money' at row XX

    Method:本错误信息提示第XX行数据被截断,可能原因是数据库中‘money’字段是double型或者float型,但是数据文件中可能存在null值,即这个数据值可能是不存在的,解决方案是将这个缺失的字段补‘0’。

  • 相关阅读:
    python基础之====函数对象、函数嵌套、名称空间与作用域、装饰器
    python基础之函数基础
    pytho基础之文件处理
    python基础之字符编码
    python基础之数据类型与变量
    python基础之核心风格
    函数
    数据类型、字符编码、文件处理
    MongoDB
    Shell学习(三)——Shell条件控制和循环语句
  • 原文地址:https://www.cnblogs.com/timssd/p/9530175.html
Copyright © 2011-2022 走看看