Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2160891
  • 博文数量: 317
  • 博客积分: 5670
  • 博客等级: 大校
  • 技术积分: 3677
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-10 17:51
文章分类

全部博文(317)

文章存档

2016年(2)

2015年(44)

2014年(68)

2013年(42)

2012年(23)

2011年(51)

2010年(67)

2009年(17)

2008年(3)

分类: LINUX

2010-10-21 17:23:19

mysql 命令行你知多少

张映 发表于 2010-10-19

分类目录: mysql

mysql -u root -p 等这些常用的参数外,你知道多少?来测试一下吧

一,mysql命令行参数

  1. Usage: mysql [OPTIONS] [database]   //命令方式   
  2.  -?, --help          //显示帮助信息并退出   
  3.  -I, --help          //显示帮助信息并退出   
  4.  --auto-rehash       //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子   
  5.   
  6.  -A, --no-auto-rehash  //默认状态是没有自动补全功能的。-A就是不要自动补全功能   
  7.  -B, --batch         //ysql不使用历史文件,禁用交互   
  8.  (Enables --silent)   
  9.  --character-sets-dir=name   //字体集的安装目录                       
  10.  --default-character-set=name    //设置数据库的默认字符集   
  11.  -C, --compress      //在客户端和服务器端传递信息时使用压缩   
  12.  -#, --debug[=#]     //bug调用功能   
  13.  -D, --database=name //使用哪个数据库   
  14.  --delimiter=name    //mysql默认命令结束符是分号,下面有例子   
  15.  -e, --execute=name  //执行mysql的sql语句   
  16.  -E, --vertical      //垂直打印查询输出   
  17.  -f, --force         //如果有错误跳过去,继续执行下面的   
  18.  -G, --named-commands   
  19.  /*Enable named commands. Named commands mean this program's  
  20.  internal commands; see mysql> help . When enabled, the  
  21.  named commands can be used from any line of the query,  
  22.  otherwise only from the first line, before an enter.  
  23.  Disable with --disable-named-commands. This option is  
  24.  disabled by default.*/  
  25.  -g, --no-named-commands   
  26.  /*Named commands are disabled. Use \* form only, or use  
  27.  named commands only in the beginning of a line ending  
  28.  with a semicolon (;) Since version 10.9 the client now  
  29.  starts with this option ENABLED by default! Disable with  
  30.  '-G'. Long format commands still work from the first  
  31.  line. WARNING: option deprecated; use  
  32.  --disable-named-commands instead.*/  
  33.  -i, --ignore-spaces //忽视函数名后面的空格.   
  34.  --local-infile      //启动/禁用 LOAD DATA LOCAL INFILE.   
  35.  -b, --no-beep       //sql错误时,禁止嘟的一声   
  36.  -h, --host=name     //设置连接的服务器名或者Ip   
  37.  -H, --html          //以html的方式输出   
  38.  -X, --xml           //以xml的方式输出   
  39.  --line-numbers      //显示错误的行号   
  40.  -L, --skip-line-numbers  //忽略错误的行号   
  41.  -n, --unbuffered    //每执行一次sql后,刷新缓存   
  42.  --column-names      //查寻时显示列信息,默认是加上的   
  43.  -N, --skip-column-names  //不显示列信息   
  44.  -O, --set-variable=name  //设置变量用法是--set-variable=var_name=var_value   
  45.  --sigint-ignore     //忽视SIGINT符号(登录退出时Control-C的结果)   
  46.  -o, --one-database  //忽视除了为命令行中命名的默认数据库的语句。可以帮跳过日志中的其它数据库的更新。   
  47.  --pager[=name]      //使用分页器来显示查询输出,这个要在linux可以用more,less等。   
  48.  --no-pager          //不使用分页器来显示查询输出。   
  49.  -p, --password[=name] //输入密码   
  50.  -P, --port=#        //设置端口   
  51.  --prompt=name       //设置mysql提示符   
  52.  --protocol=name     //使用什么协议   
  53.  -q, --quick         //不缓存查询的结果,顺序打印每一行。如果输出被挂起,服务器会慢下来,mysql不使用历史文件。   
  54.  -r, --raw           //写列的值而不转义转换。通常结合--batch选项使用。   
  55.  --reconnect         //如果与服务器之间的连接断开,自动尝试重新连接。禁止重新连接,使用--disable-reconnect。   
  56.  -s, --silent        //一行一行输出,中间有tab分隔   
  57.  -S, --socket=name   //连接服务器的sockey文件   
  58.  --ssl               //激活ssl连接,不激活--skip-ssl   
  59.  --ssl-ca=name       //CA证书   
  60.  --ssl-capath=name   //CA路径   
  61.  --ssl-cert=name     //X509 证书   
  62.  --ssl-cipher=name   //SSL cipher to use (implies --ssl).   
  63.  --ssl-key=name      //X509 密钥名   
  64.  --ssl-verify-server-cert //连接时审核服务器的证书   
  65.  -t, --table         //以表格的形势输出   
  66.  --tee=name          //将输出拷贝添加到给定的文件中,禁时用--disable-tee   
  67.  --no-tee            //根--disable-tee功能一样   
  68.  -u, --user=name     //用户名   
  69.  -U, --safe-updates  //Only allow UPDATE and DELETE that uses keys.   
  70.  -U, --i-am-a-dummy  //Synonym for option --safe-updates, -U.   
  71.  -v, --verbose       //输出mysql执行的语句   
  72.  -V, --version       //版本信息   
  73.  -w, --wait          //服务器down后,等待到重起的时间   
  74.  --connect_timeout=# //连接前要等待的时间   
  75.  --max_allowed_packet=# //服务器接收/发送包的最大长度   
  76.  --net_buffer_length=# //TCP / IP和套接字通信缓冲区大小。   
  77.  --select_limit=#    //使用--safe-updates时SELECT语句的自动限制   
  78.  --max_join_size=#   //使用--safe-updates时联接中的行的自动限制   
  79.  --secure-auth       //拒绝用(pre-4.1.1)的方式连接到数据库   
  80.  --server-arg=name   //Send embedded server this as a parameter.   
  81.  --show-warnings     //显示警告  

二,mysql命令行实例

1,auto-rehash自动补全

说例子前,先说一下,你到google或baidu上面搜一下mysql auto-rehash,然后会出来结果,绝大部分都是一样的,并且内容里面有明显错误。mysqld_safe –user=mysql –auto-rehash &,这个根本就不对,为什么抄袭的人不知道自己测试一下,对于这种人,我也是很无语的。你自己写着玩到也无所谓,但是你会害人的。

[root@BlackGhost zhangy]# mysqld_safe –help |grep rehash

参数选项中根本没有auto-rehash

二种方法可以实现自动补全功能
---------------------------------------
[mysql]
#no-auto-rehash
auto-rehash
---------------------------------------
mysql -u root –auto-rehash
---------------------------------------    

  1. mysql> use test   
  2.  Database changed   
  3.  mysql> select acc    //这里自动补全,只是提示表名,和表里面的字段名,不像php可以提示函数名   
  4.  account           account.acct_num  account.amount    acct_num  

2,-B的用法

  1. D:\xampp\mysql\bin>mysql.exe -uroot -D bak_test -e "show tables;" -B   
  2. Tables_in_bak_test   
  3. comment   
  4. user  

3,-E的用法

  1. D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "show tables;" -E   
  2. *************************** 1. row ***************************   
  3. Tables_in_bak_test: comment   
  4. *************************** 2. row ***************************   
  5. Tables_in_bak_test: user  

4,-D的用法

  1. [root@BlackGhost zhangy]# mysql -u root -D test  

进入后默认就在test数据库里面,不要用use test;

5,–default-character-set设置默认字符集

  1. [root@BlackGhost zhangy]# mysql -u root -D test  --default-character-set=utf8  

6,–delimiter设置mysql命令结束符

  1. [root@BlackGhost zhangy]# mysql -u root -D test   --delimiter=\|  

mysql默认的命令结束符是分号,现在把它设置成竖杠,要注意|前面的\

7,-e的用法

  1. D:\xampp\mysql\bin>mysql.exe -uroot -D bak_test -e "show tables;"  

这个很有用的,因为我不用进入mysql客户里面去,就能把我要的数据取出来,这个可以配合shell脚本的话,能发挥很大的功能

8,-f的用法

  1. D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "show databaseds;show tables;" -   
  2. f   
  3. ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma   
  4. nual that corresponds to your MySQL server version for the right syntax to use n   
  5. ear 'databaseds' at line 1   
  6. +--------------------+   
  7. | Tables_in_bak_test |   
  8. +--------------------+   
  9. | comment            |   
  10. | user               |   
  11. +--------------------+  

忽略mysql的错误,继续向下执行

9,-N的用法

  1. D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "select * from user" -N   
  2. +---+------+---+   
  3. | 1 |   bb | 0 |   
  4. | 2 | tank | 0 |   
  5. +---+------+---+  

10,-p的用法

  1. [root@BlackGhost zhangy]# mysql -u root -o test -p   -S /tmp/mysql.sock   
  2. Enter password  

11,-h的用法

  1. [root@BlackGhost zhangy]# mysql -u root -h 192.168.1.102  

服务器可能不只一个,这个时间我们可以用-h来指定连接哪里

12,-H的用法

  1. D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "show tables  " -H   
  2. Tables_in_bak_testcomment
  3. >user  

13,-X的用法

  1. D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "show tables  " -X   
  2. "1.0"?>    
  3.   
  4. "show tables  
  5. " xmlns:xsi="">   
  6.     
  7.  "Tables_in_bak_test">comment   
  8.      
  9.   
  10.     
  11.  "Tables_in_bak_test">user   
  12.     
  13.   

14,–prompt的用法

  1. [root@BlackGhost zhangy]# mysql -u root --prompt=\^\_\^   
  2. ^_^show databases;   
  3. +--------------------+   
  4. | Database           |   
  5. +--------------------+   
  6. | information_schema |   
  7. | biztojie           |  

mysql的提示符,我把它设置成笑脸了。

15,-S的用法

  1. [root@BlackGhost zhangy]# mysql -u root -D test   -S /tmp/mysql.sock  

当我们一台服务器启动了二个不同mysql版本的时候,存放socket的文件是不能一样的,-S用来指定连接到那个

16,-v的用法

  1. [root@BlackGhost zhangy]# mysql -u root -D test -e "show tables;"   -v   
  2. --------------   
  3. show tables   
  4. --------------  

内容不止这么点,只说重点

17,-P的用法

  1. [root@BlackGhost zhangy]# mysql -u root -o test  -P 13306  -S /tmp/mysql.sock  

参数有很多,个人觉得这些是比较常用的,还有参数有的可以排列组合的。在这儿就不试了。

阅读(2839) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-22 11:05:29

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com