mysql倒出某一列数据

1. 环境

  • mysql 5.7.17
  • centos7

2. 背景

mysqldump通常是倒出全部的列,今天有个需求是要倒出某一列,查了些资料整理一下

3. 语法

mysql -h192.168.1.100 -uroot -pyourpassword -P3306 demo -e "SELECT user_name from user_04 INTO OUTFILE '/var/lib/mysql-files/user_04.sql'";

4.注意点

如果数据倒出到指定路径,有可能会报错如下:

ERROR 1290 (HY000) at line 1: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

这个应该是mysql的某种安全策略,不去细看了。

登录mysql

show variables like '%secure%';

可以得到如下的内容:

Variable_name Value
require_secure_transport OFF
secure_auth ON
secure_file_priv /var/lib/mysql-files/

倒出的路径就是这么来的。

如果是用docker创建的mysql,则需要登录到docker里面看

docker exec -it mysql-demo bash

或者直接拷贝出来

docker cp mysql-demo:/var/lib/mysql-files/* .

如果发现值为空,可以尝试修改下my.cnf配置:

[mysqld]
secure_file_priv = 指定目录

results matching ""

    No results matching ""