MySQL命令行參數


一,mysql命令行參數
轉載自http://blog.51yip.com/mysql/1056.html
查看復制打印?
Usage: mysql [OPTIONS] [database] //命令方式
-?, --help //顯示幫助信息並退出
-I, --help //顯示幫助信息並退出
--auto-rehash //自動補全功能,就像linux里面,按Tab鍵出提示差不多,下面有例子

-A, --no-auto-rehash //默認狀態是沒有自動補全功能的。-A就是不要自動補全功能
-B, --batch //ysql不使用歷史文件,禁用交互
(Enables --silent)
--character-sets-dir=name //字體集的安裝目錄
--default-character-set=name //設置數據庫的默認字符集
-C, --compress //在客戶端和服務器端傳遞信息時使用壓縮
-#, --debug[=#] //bug調用功能
-D, --database=name //使用哪個數據庫
--delimiter=name //mysql默認命令結束符是分號,下面有例子
-e, --execute=name //執行mysql的sql語句
-E, --vertical //垂直打印查詢輸出
-f, --force //如果有錯誤跳過去,繼續執行下面的
-G, --named-commands
/Enable named commands. Named commands mean this program's
internal commands; see mysql> help . When enabled, the
named commands can be used from any line of the query,
otherwise only from the first line, before an enter.
Disable with --disable-named-commands. This option is
disabled by default.
/
-g, --no-named-commands
/Named commands are disabled. Use * form only, or use
named commands only in the beginning of a line ending
with a semicolon (😉 Since version 10.9 the client now
starts with this option ENABLED by default! Disable with
'-G'. Long format commands still work from the first
line. WARNING: option deprecated; use
--disable-named-commands instead.
/
-i, --ignore-spaces //忽視函數名后面的空格.
--local-infile //啟動/禁用 LOAD DATA LOCAL INFILE.
-b, --no-beep //sql錯誤時,禁止嘟的一聲
-h, --host=name //設置連接的服務器名或者Ip
-H, --html //以html的方式輸出
-X, --xml //以xml的方式輸出
--line-numbers //顯示錯誤的行號
-L, --skip-line-numbers //忽略錯誤的行號
-n, --unbuffered //每執行一次sql后,刷新緩存
--column-names //查尋時顯示列信息,默認是加上的
-N, --skip-column-names //不顯示列信息
-O, --set-variable=name //設置變量用法是--set-variable=var_name=var_value
--sigint-ignore //忽視SIGINT符號(登錄退出時Control-C的結果)
-o, --one-database //忽視除了為命令行中命名的默認數據庫的語句。可以幫跳過日志中的其它數據庫的更新。
--pager[=name] //使用分頁器來顯示查詢輸出,這個要在linux可以用more,less等。
--no-pager //不使用分頁器來顯示查詢輸出。
-p, --password[=name] //輸入密碼
-P, --port=# //設置端口
--prompt=name //設置mysql提示符
--protocol=name //使用什么協議
-q, --quick //不緩存查詢的結果,順序打印每一行。如果輸出被掛起,服務器會慢下來,mysql不使用歷史文件。
-r, --raw //寫列的值而不轉義轉換。通常結合--batch選項使用。
--reconnect //如果與服務器之間的連接斷開,自動嘗試重新連接。禁止重新連接,使用--disable-reconnect。
-s, --silent //一行一行輸出,中間有tab分隔
-S, --socket=name //連接服務器的sockey文件
--ssl //激活ssl連接,不激活--skip-ssl
--ssl-ca=name //CA證書
--ssl-capath=name //CA路徑
--ssl-cert=name //X509 證書
--ssl-cipher=name //SSL cipher to use (implies --ssl).
--ssl-key=name //X509 密鑰名
--ssl-verify-server-cert //連接時審核服務器的證書
-t, --table //以表格的形勢輸出
--tee=name //將輸出拷貝添加到給定的文件中,禁時用--disable-tee
--no-tee //根--disable-tee功能一樣
-u, --user=name //用戶名
-U, --safe-updates //Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-dummy //Synonym for option --safe-updates, -U.
-v, --verbose //輸出mysql執行的語句
-V, --version //版本信息
-w, --wait //服務器down后,等待到重起的時間
--connect_timeout=# //連接前要等待的時間
--max_allowed_packet=# //服務器接收/發送包的最大長度
--net_buffer_length=# //TCP / IP和套接字通信緩沖區大小。
--select_limit=# //使用--safe-updates時SELECT語句的自動限制
--max_join_size=# //使用--safe-updates時聯接中的行的自動限制
--secure-auth //拒絕用(pre-4.1.1)的方式連接到數據庫
--server-arg=name //Send embedded server this as a parameter.
--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
---------------------------------------

查看復制打印?
mysql> use test
Database changed
mysql> select acc //這里自動補全,只是提示表名,和表里面的字段名,不像php可以提示函數名
account account.acct_num account.amount acct_num
2,-B的用法

查看復制打印?
D:\xampp\mysql\bin>mysql.exe -uroot -D bak_test -e "show tables;" -B
Tables_in_bak_test
comment
user
3,-E的用法

查看復制打印?
D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "show tables;" -E
*************************** 1. row ***************************
Tables_in_bak_test: comment
*************************** 2. row ***************************
Tables_in_bak_test: user
4,-D的用法

[root@BlackGhost zhangy]# mysql -u root -D test
進入后默認就在test數據庫里面,不要用use test;

5,--default-character-set設置默認字符集

查看復制打印?
[root@BlackGhost zhangy]# mysql -u root -D test --default-character-set=utf8
6,--delimiter設置mysql命令結束符

[root@BlackGhost zhangy]# mysql -u root -D test --delimiter=|
mysql默認的命令結束符是分號,現在把它設置成豎杠,要注意|前面的\

7,-e的用法

查看復制打印?
D:\xampp\mysql\bin>mysql.exe -uroot -D bak_test -e "show tables;"
這個很有用的,因為我不用進入mysql客戶里面去,就能把我要的數據取出來,這個可以配合shell腳本的話,能發揮很大的功能

8,-f的用法

查看復制打印?
D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "show databaseds;show tables;" -
f
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear 'databaseds' at line 1
+--------------------+
| Tables_in_bak_test |
+--------------------+
| comment |
| user |
+--------------------+
忽略mysql的錯誤,繼續向下執行

9,-N的用法

查看復制打印?
D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "select * from user" -N
+---+------+---+
| 1 | bb | 0 |
| 2 | tank | 0 |
+---+------+---+
10,-p的用法

[root@BlackGhost zhangy]# mysql -u root -o test -p -S /tmp/mysql.sock
Enter password
11,-h的用法

[root@BlackGhost zhangy]# mysql -u root -h 192.168.1.102
服務器可能不只一個,這個時間我們可以用-h來指定連接哪里

12,-H的用法

查看復制打印?
D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "show tables " -H

Tables_in_bak_test
comment
user
13,-X的用法

查看復制打印?
D:\xampp\mysql\bin>mysql.exe -uroot bak_test -e "show tables " -X



comment

user 14,--prompt的用法

[root@BlackGhost zhangy]# mysql -u root --prompt=^_^
_show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| biztojie |
mysql的提示符,我把它設置成笑臉了。

15,-S的用法

[root@BlackGhost zhangy]# mysql -u root -D test -S /tmp/mysql.sock
當我們一台服務器啟動了二個不同mysql版本的時候,存放socket的文件是不能一樣的,-S用來指定連接到那個

16,-v的用法

查看復制打印?
[root@BlackGhost zhangy]# mysql -u root -D test -e "show tables;" -v

show tables

內容不止這么點,只說重點

17,-P的用法

[root@BlackGhost zhangy]# mysql -u root -o test -P 13306 -S /tmp/mysql.sock
參數有很多,個人覺得這些是比較常用的,還有參數有的可以排列組合的。在這兒就不試了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM