基础语法操作
可以执行如下指令,将数据脚本文件中的数据加载到表结构中:
-- 客户端连接服务端时,加上参数 -–local-infile
mysql --local-infile -u root -p
-- 设置全局参数local_infile为1,开启从本地加载文件导入数据的开关
set global local_infile = 1;
-- 执行load指令将准备好的数据,加载到表结构中
load data local infile
'/root/sql1.log'
into table tb_user
fields terminated by ','
lines terminated by '\n' ;
指令/参数 | 描述 |
---|---|
mysql | 启动MySQL客户端的命令,用于连接到MySQL服务器。 |
--local-infile | 允许客户端使用 LOAD DATA LOCAL 语句加载本地文件到服务器上的数据库表中。 |
-u root | 指定登录MySQL的用户名为 root 。 |
-p | 指示登录时需要密码,执行命令后系统将提示输入密码。 |
set global local_infile = 1; | 在MySQL服务器上设置全局系统变量 local_infile 的值为 1 ,开启从本地文件加载数据的功能。 |
load data local infile | SQL命令,用于将本地文件数据加载到数据库表中。 |
'/root/sql1.log' | 指定要加载的本地文件路径和文件名。 |
into table tb_user | 指定数据将要加载到的目标表 tb_user 。 |
fields terminated by ',' | 定义字段分隔符,这里使用逗号 , 。 |
lines terminated by '\n' | 定义记录分隔符,这里使用换行符 \n 。 |
案例
下面是一个具体的操作例子,通过这个步骤,你可以在你的电脑上实验将本地文件导入到MySQL数据库中。请确保你已经在电脑上安装了MySQL服务器,并且有权限执行下面的操作。
步骤 1: 准备数据文件
首先,你需要一个文本文件来作为导入数据库的数据源。比如,创建一个名为 userdata.txt
的文件,内容如下(假设每行记录包含用户名和邮箱,用逗号分隔):
alice,alice@example.com
bob,bob@example.com
carol,carol@example.com
保存该文件到你方便访问的位置,比如 /home/username/userdata.txt
(Linux系统)或 C:\userdata.txt
(Windows系统)。请根据你的操作系统和喜好调整文件路径。
步骤 2: 创建数据库和表
接下来,在MySQL中创建一个数据库和表来存储这些数据。使用以下命令:
CREATE DATABASE IF NOT EXISTS test_db;
USE test_db;
CREATE TABLE IF NOT EXISTS users (
username VARCHAR(255),
email VARCHAR(255)
);
步骤 3: 启用本地文件导入功能
为了从客户端导入本地文件,需要确保MySQL服务器允许这项操作。这通常需要设置 local_infile
为1。你可以在MySQL的配置文件中永久设置这个选项,或者临时通过以下命令启用:
SET GLOBAL local_infile = 1;
步骤 4: 导入数据
现在,你可以使用 LOAD DATA LOCAL INFILE
命令导入本地文件了。打开命令行或终端,连接到MySQL服务器:
mysql --local-infile -u root -p test_db
然后执行以下命令导入数据:
LOAD DATA LOCAL INFILE '/path/to/your/userdata.txt'
INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(username, email);
请将 /path/to/your/userdata.txt
替换为你的实际文件路径。
完成这些步骤后,users
表中应该包含了 userdata.txt
文件中的数据。你可以通过以下命令检查数据是否成功导入:
SELECT * FROM users;