MySQL 导出数据

MySQL 中你可以使用 SELECT...INTO OUTFILE 语句来简单的导出数据到文本文件上

使用 SELECT ... INTO OUTFILE 语句导出数据

SELECT...INTO OUTFILE 是 MySQL 中用于将查询结果导出到文件的语法

SELECT...INTO OUTFILE 允许你将查询的结果写入一个文本文件,基本的使用方法

SELECT column1, column2, ...
INTO OUTFILE 'file_path'
FROM your_table
WHERE your_conditions;

参数说明:

  • column1, column2, ...: 要选择的列
  • 'file_path': 指定输出文件的路径和名称
  • your_table: 要查询的表
  • your_conditions: 查询条件

示例:

SELECT * FROM username INTO OUTFILE "D:/MySQL_Data/test.txt";

如果出现:

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

首先,你需要查看你的secure_file_priv导出地址

show variables like '%secure%';

结果:

mysql> show variables like '%secure%';
+--------------------------+------------------------------------------------+
| Variable_name            | Value                                          |
+--------------------------+------------------------------------------------+
| require_secure_transport | OFF                                            |
| secure_file_priv         | C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\ |
+--------------------------+------------------------------------------------+
2 rows in set, 1 warning (0.00 sec)

一般来说,都是导出目录出了问题,在它默认的地址(C:\ProgramData\MySQL\MySQL Server 8.0\Uploads)下是不能导出文件的

我们需要修改my.ini这个文件,可能在C:\ProgramData\MySQL\MySQL Server 8.0\

需要修改secure_file_priv的导出路径

# 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="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"

将导出路径进行修改

# 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="D:/MySQL_Data"

然后重新启动MySQL服务

这时就可以成功导出数据

mysqldump 导出表作为原始数据

mysqldump 是 MySQL 提供的用于备份和导出数据库的命令行工具。

mysqldump 是 mysql 用于转存储数据库的实用程序。它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。

使用 mysqldump 导出数据需要使用 --tab 选项来指定导出文件指定的目录,该目标必须是可写的。

mysqldump 基本的用法

mysqldump -u username -p password -h hostname database_name > output_file.sql

参数说明:

  • -u: 指定 MySQL 用户名
  • -p: 提示输入密码
  • -h: 指定 MySQL 主机名
  • database_name: 要导出的数据库名称
  • output_file.sql: 导出数据保存到的文件

示例:

注意:不要在PowerShell下导出数据,在cmd管理员下导出数据,以下窗口是错误的

1. 导出整个数据库

新建一个终端,执行:

mysqldump -u root -p robomaster > robomaster_backup.sql

之后的操作都是一样的

2. 导出特定表

如果你只想导出数据库中的某个表,可以使用以下命令

mysqldump -u root -p robomaster username > username_backup.sql

3. 导出数据库结构

如果只想导出数据库结构而不包括数据,可以使用 --no-data 选项

mysqldump -u root -p --no-data robomaster > robomaster_no_data_backup.sql

导出 SQL 格式的数据

导出 SQL 格式的数据到指定文件

mysqldump -u root -p robomaster username > dump.txt

如果你需要导出整个数据库的数据,可以使用以下命令

mysqldump -u root -p robomaster > dump.txt

如果需要备份所有数据库,可以使用以下命令

mysqldump -u root -p --all-databases > database_dump.txt

results matching ""

    No results matching ""