mysql 表数据备份和恢复
假定表tbl_name具有一个PRIMARY KEY或UNIQUE索引,备份一个数据表的过程如下:
1、锁定数据表,避免在备份过程中,表被更新
mysql>LOCK
TABLES READ tbl_name;
关于表的锁定的详细信息,将在下一章介绍。
2、导出数据
mysql>SELECT
* INTO OUTFILE ‘tbl_name.bak’ from tbl_name;
3、解锁表
mysql>UNLOCK
TABLES;
相应的恢复备份的数据的过程如下:
1、为表增加一个写锁定:
mysql>LOCK
TABLES tbl_name WRITE;
2、恢复数据
mysql>LOAD
DATA INFILE ‘tbl_name.bak’
->REPLACE INTO TABLE tbl_name;
如果,你指定一个LOW_PRIORITY关键字,就不必如上要对表锁定,因为数据的导入将被推迟到没有客户读表为止:
mysql>LOAD
DATA LOW_PRIORITY INFILE ‘tbl_name’
->REPLACE INTO TABLE tbl_name;
3、解锁表
mysql->UNLOCAK
TABLES;
相关文档:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
该语句能创建新的视图,如果给定了OR REPLACE子句,该语句还能替换已有的视图。select_st ......
对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。
这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:
mysql> SELECT something from table
WHERE TO_DAYS(NOW())&nbs ......
先看下面注意内容
整整弄了一天,终于解决了jdbc(mysql-connector-java-5.0.30)和mysq通信中文乱码的问题!我的系统是
linux(ubuntu)。在java中(Myeclipse环境)使用hibernate连接mysql。存储英文没问题,写(insert
into)和读(select)都能正确显示,但是若其中带有中文字符就成乱码了。到网上查找了半天资� ......
LAST_INSERT_ID
自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里
The ID that was generated is maintained in the server on a per-connection basis.
LAST_INSERT_ID是基于单个connection的, 不可能被其它的客户端连接改变。
可以用 SELECT LAST_INSERT_ID(); 查询LAST ......
mysql执行sql语句时有时会出现CR_COMMANDS_OUT_OF_SYNC错误(2014)
提示语为
commands out of sync; you can't run this command now
网上对此错误的描述很少,而且没有给出解决方法。
其实这是因为上一个sql执行返回了多个结果集,但没有把结果都取出来,就执行了新的sql语句,就会产生这个错误。
应在sql语句执行后 ......