mysql命令参数详解
⼀,mysql命令⾏参数
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-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& -uroot -D bak_test -e "show tables;" -B
Tables_in_bak_test
comment
user
3,-E的⽤法
D:\xampp\mysql\bin& -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=\|
7,-e的⽤法
D:\xampp\mysql\bin& -uroot -D bak_test -e "show tables;"
这个很有⽤的,因为我不⽤进⼊mysql客户⾥⾯去,就能把我要的数据取出来,这个可以配合shell脚本的话,能发挥很⼤的功能8,-f的⽤法
D:\xampp\mysql\bin& -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& -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& -uroot bak_test -e "show tables " -H
<TABLE BORDER=1><TR><TH>Tables_in_bak_test</TH></TR><TR><TD>comment</TD></TR><TR
><TD>user</TD></TR></TABLE>下载mysql服务端命令
13,-X的⽤法
D:\xampp\mysql\bin& -uroot bak_test -e "show tables " -X
<?xml version="1.0"?>
<resultset statement="show tables
" xmlns:xsi="/2001/XMLSchema-instance">
<row>
<field name="Tables_in_bak_test">comment</field>
</row>
<row>
<field name="Tables_in_bak_test">user</field>
</row>
</resultset>
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
================================================我是分割线
==================================================
以上内容属转载
mysql导⼊数据(sql⽂件形式)的bat脚本,shell脚本也差不多,还没那么繁琐。
@ECHO OFF
@set path_bin_mysql="C:\\Users\\Test\\Desktop\\MySQL\\mysql-advanced-5.6.19-win32\\bin\\"
@set mysql_user=root
@set mysql_password=password
@set mysql_database=acd
:begin
%path_bin_mysql%mysql -u%mysql_user% -p%mysql_password% -D %mysql_database% -e "CREATE DATABASE IF NOT EXISTS ACD" %path_bin_mysql%mysql -u%mysql_user% -p%mysql_password% -D %mysql_database% -e "source ACD_order_serial_info.sql"
%path_bin_mysql%mysql -u%mysql_user% -p%mysql_password% -D %mysql_database% -e "source ACD_order_execute_info.sql"
%path_bin_mysql%mysql -u%mysql_user% -p%mysql_password% -D %mysql_database% -e "source ACD_tb_branch_dev_info.sql" %path_bin_mysql%mysql -u%mysql_user% -p%mysql_password% -D %mysql_database% -e "source ACD_tv_file_list.sql"
%path_bin_mysql%mysql -u%mysql_user% -p%mysql_password% -D %mysql_database% -e "source ACD_dev_show_list.sql"
@echo MySQL数据库配置完成
pause
:end
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论