免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 906 | 回复: 0

mysql常用经典操作 [复制链接]

论坛徽章:
0
发表于 2006-02-16 13:04 |显示全部楼层

               
               
               
               
               
               
               
                .连接服务器
mysql -u   cnscn
      -h   192.168.0.1
      [-D  dbname]
      [-P  3306]
       [--protocol=name]    The protocol of connection (tcp,socket,pipe,memory)
      [-S, --socket=name]  连接所用的套接字文件
      [--character-sets-dir=name]  字符集所位于的目录
                     
      [--default-character-set=name]   默认的字符集
      [-E, --vertical]  垂直地打列出查询输出
                        
.创建数据库
Mysql>create database dbname;
.显示数据库列表
mysql>show databases;
.显示数据表列表
mysql>show tables;
.查看mysql设置参数
$mysqladmin  -u root -p variables;
.开启服务器
$/etc/rc.d/init.d/mysqld start

$mysqld_safe  --user=mysql &
$/etc/rc.d/init.d/mysqld stop

$mysqladmin  shutdown  -u root -p
.优化表
mysql>optimize  table  tblA,tblB;
或 [进行优化并检查修复任务]
$mysqlcheck  -o  dbname  tblA tblB  tblC   -u root  -p
.对表进行分析
mysql>analyze  table  tblA;

$mysqlcheck  -a dbname [tblA  tblB tblC ] -u root -p
.对表进行检查
mysql>check table tblA,tblB,tblC;
.
.赋权
mysql>grant all on dbname.* to username@ identified by 'localhostpassword'
刷新权限表
mysql>flush privileges;
.从txt文本文件向数据库导入文件
1)用select into做备份
select * from table where ... order... group by ...
         into outfile '/tmp/data.dat'
         [fields  
                 [terminated  by '\t']
                 [[optionally] enclosed by '']
                 [escaped  by '\\']
         ]
         [lines  terminated by '\n']
         [ignore  number  lines]
         [(col_name,...)]
                 
mysql>select * from tblName where id
2)用load data恢复
load  data  [low_priority | concurrent]
            [local]
            infile  'a.dat'
            [fields  
                 [terminated  by '\t']
                 [[optionally] enclosed by '']
                 [escaped  by '\\']
            ]
            [lines  terminated by '\n']
            [ignore  number  lines]
            [(col_name,...)]
mysql>load data         
           infile 'a.dat'
           into table tblName
           fields terminated by '|'
           lines terminated by '\n';
3)mysqlimport---load data的等价命令
mysqlimport  
             dbname
             -u root
             -h localhost
             -password
             [--fields-terminated-by=...]
             [--fields-enclosed-by=...]
             [--fields-optionally-enclosed-by=...]
             [--fields-escaped-by=...]
             [--lines-terminated-by=...]
             [--port=3306]
             [--socket=/path/to/socket]
             [--character-sets-dir=name]
             [-d,--delete]       输入文件前,清空表
             ]-l,--lock-tables]  锁定准备写入的表
%mysqlimport  dbname  -u root -password  a.dat
.导出成.sql语句
1)用mysqldump备份
--add-locks         加上锁表语句,建议使用,将加快速度,以加快insert时的速度
--add-drop-table    添加drop table
-A, --all-databases 导出所有的数据库
--allow-keywords    为避免不允许列名与关键字名不同,而在列名前加表名
-c,--complete-insert 使用完整的插入语句
-C,--compress        压缩数据
-B,--databases       存储指定的几个库
-e,--extended-insert 利用多行insert方式使结果更紧凑,速度更快,因为索引缓存器只在每个insert命令后刷新
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--lines-terminated-by=...
-h, --host=...        主机
-l,--lock-tables      锁表
-K,--disable-keys     在insert前使索引无效,之后有效,使插入有效
--opt等效于--quick  --add-drop-table  --add-locks  --extened-insert  --lock-tables的组合    这是最快的恢复
--password            提示输入密码
-P portnumber,--port=portnumber   指明TCP/IP端口号
-q,--quick            不对表进行暂存,但直接存储在stdout.用mysql_use_result()去做,对于大的表,必须这样做
-Q,--quote-names      把表和列的名放入单引号里
-r,--result-file=...  输出到指定文件.这在DOS中有用,因为它可以阻止UNIX的新行\n符被转换成\n\r
-S /tmp/socket,       指定socket文件
--socket=/tmp/socket
-T,--tab=path-to-some-directory    为每一个表创建两个文件tblname.sql, tblname.txt
-u username,          连接的用户名
--user=username
-w,--where='where-condition'   导出的条件
-X,--xml              以符合方法的XML形式存储数据库
-O net_buffer_length=n    当创建多行插入语句时,该数创建行数的大小最多为n(-e或-opt参数,n必须小于16MB)
%mysqldump  
            --where='id>5'      #只备份id大于5的记录
            dbname
            [tblname]
            >/tmp/a.sql
2)导出到mysql_db.xml
%mysqldump  mysql -X > mysql_db.xml
3)最快导出方式
%mysqldump mysql --opt >msyql.sql
4)恢复用mysqldump备份的数据库
%mysql dbname

mysql>source /tmp/a.sql
.查询参数
1) \g  在语句尾,同;
2) \G  在语句尾,使查询结果以竖形输出
3) \c  在语句尾,使当前语句不执行
.ALTER 更改表结构
1)更改表名
ALTER TABLE `autoid` CHANGE `id` `parent_id` INT( 10 ) UNSIGNED NULL DEFAULT NULL ;
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13329/showart_75307.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP