Chinaunix首页 | 论坛 | 博客
  • 博客访问: 517682
  • 博文数量: 137
  • 博客积分: 3170
  • 博客等级: 中校
  • 技术积分: 1455
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-17 11:47
文章分类

全部博文(137)

文章存档

2015年(2)

2013年(1)

2012年(6)

2011年(5)

2010年(62)

2009年(61)

我的朋友

分类: Mysql/postgreSQL

2010-01-06 11:19:41


1.命令行登录mysql数据库
mysql -h host -uName -pNamepasswd
-h host之间的空格可有可无。
2.数据库导入导出数据
2.1导出数据
2.1.1导出数据库
db1到db1.sql
mysqldump -h 192.168.0.2 -uroot -proot db1  > db1.sql
2.1.2导出多个数据库到db_all.sql
mysqldump -h192.168.0.17 -P3310 -uroot -proot -c --opt -B  db1 db2 db3 > db_all.sql
经过实验,目标数据库有无db_all.sql中的数据库并无关系。
2.1.3导出一个表(结构+数据)到sql文件
 mysqldump -uroot -p123 -h192.168.0.31 -P3310 DB_name tablename > bak.sql

mysqldump导出含有text字段的表以后,粘贴到其他sql文件一起执行的话,
可能会出现不能insert进数据的问题,单独执行导出的文件是没有问题的,解决方法:删除无关insert的语句可以成功执行。
若在导出时显示乱码,可以考虑加入参数
--default-character-set=gbk 或--default-character-set=utf8,视具体情况吧。
注意:mysqldump导出的东西不受这个character-set设置的影响。保持存入的格式。
一般情况,tbl1用mysqldump出来是utf8的,tbl2用mysqldump出来是gbk的,我们可以把
tbl2的sql文件转化为utf8格式的,再导入数据库,这样一起把这两个表导出的话不会出现乱码,字符集统一了。
2.1.4 清空整个数据库。
目前策略是:先导出数据库结构,再删除数据库,再创建,再把数据库结构导入数据库。
导出数据库结构用-d(--no-data)选项。
2.1.5  导出表的符合一定条件的记录:
mysqldump -uroot -proot -P3307 -h192.168.0.30 db_name   --no-create-db=TRUE --no-create-info=TRUE --add-drop-table=FALSE  tbl_name  -w"id = 92013 or id =92020 "  > db_tbl.sql
2.1.6 导出数据同时数据压缩:
 
mysqldump -uroot -proot -P3307 -h192.168.0.30 db_name  | gzip -9 > db_name.sql.gz
tar好像不行,gzip可以。

2.2导入
db1.sql到mysql中
2.2.1 若mysql中没有
db1数据库,首先创建数据库db1
    CREATE DATABASE
db1;
2.2.2  将
db1.sql导入数据库user5
mysql -uroot -proot
user5 < user5.sql
2.2.3 若我们清除所有数据库,可以在数据目录中删除,但要注意删除ibdata1,否则导入数据可能有问题。
3.sql文件导入在shell中导入到数据库时,用/*comment*/或#方式作注释一般没有问题,用--作注释要注意至少加一个空格后再写注释!!!否则会报错。
/*! */ 所包含内容在mysql中为注释(非通用注释符)。
/*comment*/可以在语句内作注释。
/*! MySQL-specific code */,这种注释方法使得其他sql server不执行,
而mysql执行。

好文章:
http://hi.baidu.com/xinghoney/blog/item/aa30e37f1be0ac0229388aa5.html

4.字符集方面的命令:
4.1.显示数据库可用的字符集:
    SHOW CHARACTER SET;

4.2.显示latin1的COLLATION
    SHOW COLLATION LIKE 'latin1%';

    utf8_general_ci  大小写不敏感。
4.3.显示数据库和表的字符集:
  show create database  db1 ;
  show create table  tbl1 ;
  show full columns from tbl_tst ;
5.修改表的注释命令:

alter table `tbl_name` modify column `colname` int UNSIGNED DEFAULT '0' NOT NULL COMMENT '注释' ;

6.删除字段:

ALTER TABLE table_name DROP field_name;


阅读(1235) | 评论(0) | 转发(0) |
0

上一篇:thttpd源码剖析

下一篇:内存管理

给主人留下些什么吧!~~