--------------------------------------------------------- 小路原创 ------------------------------------------------
一、MySQL数据库维护
1、数据库备份
备份数据库时,执行mysqldump命令会将包含数据的表结构和数据内容保存在相应的文本文件中,首先先检查所需要备份数据的表结构,
在相应的文本文件中生成create语句。然后检查数据内容,在相应的文本文件中生成insert into语句。在还原数据库时只需要执行文
本文件中的create语句和insert into语句即可。
备份一个数据库:
mysqldump -u username -p dbname
table1,table2……tablen
>backupname.sql
如果没有table参数,则备份整个数据库,备份文件以.sql为后缀名。
example:
执行dos命令备份school.students表:
mysqldump -u root -p school students >c:\school.students.sql
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img0.ph.126.net/Ju7Vo-kOg6ETfUJ6kDbnjQ==/6597806439448674105.png)
将会在C盘下看到一个school.students.sql文件,用记事本打开将看到create和insert into 语句还有关于MySQL的版本等信息。
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img2.ph.126.net/lBcyRN0x7MUJHfGdNHaaOg==/1874904819969847229.png)
注意:在还原数据库时,如果版本比备份时的高,则备份文件中的/*! */间的代码将作为SQL命令来执行,如果版本比备份时的低
则备份文件中的/*! */间的代码将作为注释部分。
备份多个数据库:
mysqldump -u username -p --databases
dbname1 dbname2 …… dbnamen
>backupname.sql
注意数据库名字之间用空格隔开。
example:
执行dos命令备份school和test两个数据库:
mysqldump -u root -p --databases school test >c:\school_test.sql
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img2.ph.126.net/-Eg0oV_9rMlXJloIAwvE2w==/904379100271508258.png)
将在c盘看到一个school_test.sql文件
同样将在备份文件中看到两个数据库的创建和数据库中表的创建信息以及插入数据的信息:
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img0.ph.126.net/Cf1gIT3hNCiUiGPC45PGQA==/3297197877288741972.png)
备份所有数据库:
mysqldump -u username -p --all-databases
>backupname.sql
注意--all和-databases之间没有空格
example:
执行dos命令备份所有数据库:
mysqldump -u root -p --all-databases >c:\alldatabase.sql
将在c盘下看到alldatabase.sql文件,将生成所有数据库的信息:
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img0.ph.126.net/vx78udGBUVI9G1sbc5O24A==/3856207181036077212.png)
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img1.ph.126.net/pcmcROgn-0sj7WJ_qPo2ow==/3291568377754519675.png)
可见备份所有数据库将花费很长时间,而且生成的sql文件也比较大。
2、数据库还原
mysql -u username -p [dbname] <backupname.sql
注意:指定dbname时表示还原该数据库下的表,不指定dbname时表示还原备份文件中的所有数据库
example:
执行dos命令,还原school.students表:
mysql -u root -p school <c:\school.students.sql
执行dos命令,还原所有数据库:
mysql -u root -p <c:\alldatabse.sql
3、将表的导出到文本文件
通过表的导入和导出可以实现数据库之间移动数据,导出是将数据从MySQL数据库表中赋值到文本文件中,导入是将文本文件中的数据加载到MySQL数据库表中。
执行“select …… into outfile”命令导出
select [file_name] from table_name
[where condition]
into outfile 'file_name'[option]
其中option可以取以下值:
fields terminated by 'string':设置字段的分隔符为字符串对象string,默认为"\t"
fields enclosed by 'char':设置括上字段值的字符符号,默认不使用任何符号
fields optionally enclosed by 'char':设置括上char varchar text等字段值的字符符号,默认不使用任何符号
fields escaped by 'char':设置转义字符的符号,默认是"\"
lines starting by 'char':设置每行开头字符,默认不使用任何符号
lines terminated by 'string':设置每行结束的字符串符号,默认使用"\n"字符串
example:
将school数据库中教师的信息导出到D盘下的teachers.txt文件中:
use school;
select * from teachers
into outfile 'd:/teachers.txt';
将在d盘下看到一个teachers.txt文件,其内容如下:
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img1.ph.126.net/2cFncsvjeb8-AYd0t42DLA==/1910370667035391972.png)
use school;
select * from teachers
into outfile 'd:/tc.txt'
fields terminated by '\|'
optionally enclosed by '\"'
lines starting by '\<'
terminated by '\>\r\n';
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img1.ph.126.net/n33sYgeogc51Ia9NAKIydA==/3388395769742985427.png)
执行mysqldunp导出表到文件
mysqldump -u root -pPassword -T file_directory dbname table_name[option];
注意T必须大写!
其中option可以取以下值:
--fields-terminated-by=string:用来设置字段的分隔符为字符串string对象,默认为“\t”
--fields-terminated-by=char:设置括上字段值得字符符号,默认不使用任何符号
--fields--optionally-enclosed-by=char:设置括上char varchar text等字段值的字符符号,默认不使用任何符号
--lines-terminated-by=string:设置每行结束符号,默认使用“\n”字符串
example:
将school中的teachers表导出到D盘下:
mysqldump -u root -p -T d:\ school teachers
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img2.ph.126.net/iBMqezg79yx7AVd6oBpyiw==/6598280328960026402.png)
将会看到D盘下生成了两个文件,一个是teachers表的备份文件,一个是teachers表的数据文本。
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img1.ph.126.net/nCLWaHcGEaIXUQ2Mf9PCVg==/1966665662377523227.png)
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img0.ph.126.net/ArYHVA9qJefvLwOoqrkpVA==/6598101108564696351.png)
执行mysql命令导出到文本文件
mysq -u root -pPassword -e "select [file_name] from table_name " dbname>file_name;
example:
把teachers表导出到D盘:
mysql -u root -p -e "select * from teachers" school>d:/tc.txt
将看到D盘生成了一个tc.txt文件,其中保存了teachers表中的数据
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img0.ph.126.net/_Stp9KVPfzOqpATj_elbdw==/6597893300867270202.png)
![十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫 十四、MySQL数据库维护 - 水到绝境是飞瀑 - 谁的青春不迷茫](http://img2.ph.126.net/qpCkrTvjWNUHN2d9xIlFPw==/298644950390175815.png)
4、将文本文件导入到表
利用load data infile命令将文本导入到表
load data [local] infile file_name into table table_name [option];
其中option可以取以下值:
fields terminated by 'string':设置字段的分隔符为string,默认“\t”
fileds enclosed by 'char':括上字段值的符号,默认无
fields optionall enclosed by 'char':设置括上char varchar text等字段值的符号,默认无
fields escaped by 'char':设置转义字符,默认\
lines starting by 'cahr':设置每行开头字符,默认无
lines terminated by 'string':设置每行结尾字符,默认\n
ignore n lines:设置忽略文件前n行记录
(字段列表):根据字段列表字段顺序加载记录
set column=expr:设置列的转换条件,指定的列经过转换后会被加载
执行mysqlimport命令导入文本文件到表
mysqlimport -u root -p [--local] dbname file_name[option]
数据库迁移
相同版本的MySQL数据库之间的迁移:
mysqldump -h hostname1 -u root -password = password -all-databses
|
mysql -h hostname2 -u root -password = password
|命令将mysqldump备份的文件传送给mysql命令进行还原
--------------------------------------------------------- 小路原创 ------------------------------------------------