MYSQL备份恢复
因为MySQL表保存为文件方式,很容易备份。要想保持备份的一致性,对相关表执行LOCK TABLES操作,然后对表执行FLUSH TABLES。你只需要读锁定;这样当你复制数据库目录中的文件时,允许其它客户继续查询表。需要FLUSH TABLES语句来确保开始备份前将所有激活的索引页写入硬盘。
备份方法:
A.备份的是SQL脚本
1.导出结构不导出数据
cmd>mysqldump -B repltest -d --opt > xxx.sql
2.导出数据不导出结构
cmd>mysqldump -B repltest -t --opt > xxx.sql
3.导出数据和表结构
cmd>mysqldump repltest --opt > xxx.sql
cmd>mysqldump -B repltest --opt > xxx.sql
cmd>mysqldump --databases repltest --opt > xxx.sql
4.导出特定表
cmd>mysqldump -B repltest --table t1 t2 --opt > xxx.sql
5.导出跳过特定表
cmd>mysqldump -B repltest --ignore-table=repltest.t1 --ignore-table=repltest.t2 --opt > xxx.sql
B.备份的是纯数据
6.导出数据,从特定表
mysql>select * into outfile 'xxx.txt' fields terminated by ',' from t1
7.导出表结构的SQL脚本及数据文件
cmd>mysqldump repltest --tab=q:\dbbackup
恢复方法:
A.针对SQL脚本类的备份执行恢复
1.恢复并覆盖现有数据库。针对完整的数据库备份(SQL脚本包含CREATE DATABASE)
CMD>mysql -u root -p <xxx.sql
2.恢复到新的数据库。针对完整的数据库备份(SQL脚本包含CREATE DATABASE)
首先,删除SQL脚本里CREATE DATABASE的部分
然后,CMD>mysql -u root -p newDB<xxx.sql
3.恢复特定的SQL脚本备份
CMD>mysql -u root -p <xxx.sql
B.针对纯数据类的备份执行恢复
4.导入数据到特定表(针对select into outfile)
mysql>load data infile 'xxx.txt' into table db.t1. fields terminated by ',';
5.导入数据到特定表(使用mysqlimport)
cmd>mysqlimport DB -u root -p -l -d 't1.txt'
MySQLimport的常用选项介绍:
相关文档:
MySQL重新安装的时候出现了问题:Could not start the service MySQL. Error:0,原因是没有对旧的MySQL完全卸载掉。
在你从电脑里卸载旧的MYSQL数据库服务时,首先先在WINDOWS服务里停掉MYSQL的服务。再到控制面板里的增加删除程序内进行删除,然后手动删除原安装文件,但是你并不能完整的把MYSQL服务删 ......
使用临时表的好处:
使用临时表存放中间结果,加速查询,或存放临时结果.
(1)
创建临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)
(2)
临时表将在你连接MySQL期间存在。当你断开时,MySQL ......
(1)
存储过程是数据库服务器端的一段程序.
mysql的存储过程,只有版本是mysql5.0或以上的才有此特性.
(2)
什么时候需要用存储过程
存储过程通常是一些经常要执行的任务,这些任务往往是针对大量的记录而进行的。在服务器上执行存储过程,可以
改善应用程序的性能。这是因为:
2.1.
服务器往往具有强大的计算能力和速 ......
导出
select field1,field2,field3 from tablename into outfile '/home/output1.csv' fields terminated by ','optionally enclosed by ''lines terminated by '\n';
导入
load data local infile '/home/output1.csv' into table tablename fields terminated by ','lines terminated by '\n'(field1,f ......
注意:mysql中的用户变量的生命周期是会话级的,不是语句级的!
存储过程--------------------------------------------------
drop procedure if exists usp_simple;
delimiter //
create procedure usp_simple(in ip int, out op int, inout iop int)
begin
select count(*) into op from t1;
set op ......