!!!所有导入导出操作都是在cmd中进行的,而非mysql中
1. 备份库(导出)
❤1. 备份用户名下的所有的数据库
用dos命令进入mysql的bin目录下
mysqldump -u用户名 -p密码 --all-databases > sqlAllFile.sql
eg: mysqldump -uroot -p123456 --all-databases > sqlAllFile.sql
注意:all前面是两个减号(–),databases前面是一个减号(-) --all-databases
会在bin目录下生成一个sqlAllFile.sql文件,即备份root用户下所有的数据库文件(导出操作均在bin目录下生成备份文件)
❤2. 导出某个数据库所有表结构及表数据
mysqldump -u用户名 -p -h 127.0.0.1 数据库名称> db.sql;
eg: mysqldump -uroot -p -h 127.0.0.1 students > students.sql;
-h 是否添加影响不大
mysqldump -u用户名 -p 数据库名称 > db.sql;
eg: mysqldump -uroot -p students > students.sql;
命令含义:
- mysqldump :使用mysql导出的命令
- -h:后面是紧跟着你要导入的ip:本地要么是127.0.0.1或者是localhost
- -u:mysql的用户名:一般我们安装上默认是root,密码要么是123或者是123456 即-uroot
- -p: 此处是密码,可以不用写。整个命令输入完成之后回车,即可看到输入密码的地方,输入密码后回车即可导入
- database_name : 数据库名,就是你要往哪个数据库导入数据
- > :固定写法
- sqlFileName.sql : 就是你要导出的sql文件名称
2. 导出表(test)
❤1. 导出数据库库dbname某张表(test)结构
mysqldump -u用户名 -p -d dbname test>table.sql;
eg: mysqldump -uroot -p -d students course>course.sql;
--回车输入密码
❤2. 导出数据库dbname某张表结构及表数据(不加-d)
mysqldump -u用户名 -p密码 dbname test>db.sql;
eg: mysqldump -uroot -p shop test>test.sql;
--回车输入密码
❤3. 导出数据库dbname所有表结构及表数据(不加-d)
mysqldump -u用户名 -p密码 dbname >db.sql;
eg:mysqldump -uroot -p shop >db.sql;
--回车输入密码
❤4. 导出数据中dbname多张表(test1,test2,test3)结构及表数据
mysqldump -u用户名 -p密码 dbname test1 test2 test3>db.sql;
eg: mysqldump -uroot -p shop test1 test2 test3>db.sql;
--回车输入密码
3. 导入库
mysql -h127.0.0.1 -u用户名 -p 数据库名 < sqlFileName.sql
eg :mysql -h127.0.0.1 -uroot -p database_name < sqlFileName.sql
命令如何使用:
-
mysql :使用mysql命令
-
-h:后面是紧跟着你要导入的ip:本地要么是127.0.0.1或者是localhost,或者远程公网能访问到的ip地址
-
-u:mysql的用户名:一般我们安装上默认是root,密码要么是123或者是123456 即-uroot
-
-p:此处是密码,可以不用写。整个命令输入完成之后回车,即可看到输入密码的地方,输入密码后回车即可导入
-
database_name :数据库名,就是你要往哪个数据库导入数据
-
< :固定写法
-
sqlFileName.sql : 就是你要导入的sql文件名称(此sql文件里面既可以是整个库,也可以是某张表的sql语句)
注意:在导入的时候需要事先要有数据库,不能导入到未拥有的数据库
4. 将表中的数据导出到txt,或者xls中
如下语句在mysql中执行
❤1. 导出到 .txt文件中
select * from 表名 into outfile "文件名.txt"
eg:select * from test into outfile "file.txt"
❤2. 导出到 .xls文件中
select * from 表名 into outfile "文件名.xls"
eg:select * from test into outfile "file.xls"
5. 将txt中或xls中的数据导入数据库
在导入之前要准备数据表,即自己先创建好数据库中的表
❤1. 导入 .txt文件
load data local infile "要导入的文件路径" into table 表名
eg: load data local infile "C:\\file.txt" into table test
❤2. 导入 .xls文件
load data local infile "要导入的文件路径" into table 表名
eg: load data local infile "C:\\file.xls" into table test
6. 以上操作的各种报错:
The MySQL server is running with the –secure-file-priv option so it cannot execute this statement. 报错
在mysql文件的配置文件my.ini中添加如下代码,并重启。
[mysqld]
secure_file_priv=""
Loading local data is disabled; this must be enabled on both the client and server sides
在mysql中执行
set global local_infile=on;
LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.
登录的时候使用
mysql --local-infile=1 -uroot -p
-
File 'C:Program Filesmysql-8.0.23-winx64Dataspjj.txt' not found (OS errno 2 - No such file or directory)
由于目录结构太深了,导致的报错 -
ERROR 1146 (42S02): Table 'test' doesn't exist
要先创建表结构才能导入