導航:首頁 > 程序命令 > mysqltee命令

mysqltee命令

發布時間:2024-01-11 04:02:09

① 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-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-mmy //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 //顯示警告

② Linux tee命令作用是什麼

tree:以樹形結構顯示目錄下的內容
tree命令的中文意思為「樹」,功能是以樹形結構列出指定目錄下的所有內容,包括所有文件、子目錄及子目錄里的目錄和文件。

[root@oldboy ~]# rpm -qa tree #<==查詢tree命令是否安裝。
tree-1.5.3-2.el6.x86_64 #<==如果沒有顯示就執行下面的命令。
[root@oldboy ~]# yum -y install tree #<==安裝tree命令的yum命令。
第二步,調整系統字元集,防止樹形結構顯示亂碼。
範例2-9:不帶任何參數執行tree命令。

[root@oldboy etc]# cd ~
[root@oldboy ~]# tree #<==顯示當前目錄結構。
. #<==「.」以當前目錄為起點。
├── anaconda-ks.cfg
├── install.log
└── install.log.syslog
0 directories, 3 files

範例2-10:以樹形結構顯示目錄下的所有內容(-a的功能)。
[root@oldboy ~]# tree -a #<==帶-a參數顯示所有文件(包括隱藏文件)。
.├── anaconda-ks.cfg
├── .bash_history #<==在Linux系統中,以「.」點號開頭的文件為隱藏文件,默認不顯示。
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
├── install.log
├── install.log.syslog
├── .mysql_history
├── .tcshrc
└── .viminfo
0 directories, 11 files
#<==上述命令結果僅供參考,能看到加粗的以點開頭的隱藏文件即可,列表的內容名字多少可能因系統的不同而有區別。
範例2-11:只列出根目錄下第一層目錄結構(-L功能)。
[root@oldboy ~]# tree -L 1 / #<==-L參數後接數字,表示查看目錄的層數,不帶-L選項默認顯示所有層數。
/
├── bin
├── boot
...省略若干行...
├── sys
├── tmp
├── usr
└── var
20 directories, 0 files

③ linux系統下怎麼在終端運行sql語句

主要有以下幾種方法:
1、將SQL語句直接嵌入到shell腳本文件中
代碼如下:

--演示環境
[root@SZDB ~]# more /etc/issue
CentOS release 5.9 (Final)
Kernel \r on an \m
root@localhost[(none)]> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5.6.12-log |
+---------------+------------+

[root@SZDB ~]# more shell_call_sql1.sh
#!/bin/bash
# Define log
TIMESTAMP=`date +%Y%m%d%H%M%S`
LOG=call_sql_${TIMESTAMP}.log
echo "Start execute sql statement at `date`." >>${LOG}

# execute sql stat
mysql -uroot -p123456 -e "
tee /tmp/temp.log
drop database if exists tempdb;
create database tempdb;
use tempdb
create table if not exists tb_tmp(id smallint,val varchar(20));
insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');
select * from tb_tmp;
notee
quit"

echo -e "\n">>${LOG}
echo "below is output result.">>${LOG}
cat /tmp/temp.log>>${LOG}
echo "script executed successful.">>${LOG}
exit;

[root@SZDB ~]# ./shell_call_sql1.sh
Logging to file '/tmp/temp.log'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled.

2、命令行調用單獨的SQL文件

代碼如下:

[root@SZDB ~]# more temp.sql
tee /tmp/temp.log
drop database if exists tempdb;
create database tempdb;
use tempdb
create table if not exists tb_tmp(id smallint,val varchar(20));
insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');
select * from tb_tmp;
notee
[root@SZDB ~]# mysql -uroot -p123456 -e "source /root/temp.sql"
Logging to file '/tmp/temp.log'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled.

3、使用管道符調用SQL文件
代碼如下:

[root@SZDB ~]# mysql -uroot -p123456 </root/temp.sql
Logging to file '/tmp/temp.log'
id val
1 jack
2 robin
3 mark
Outfile disabled.
#使用管道符調用SQL文件以及輸出日誌
[root@SZDB ~]# mysql -uroot -p123456 </root/temp.sql >/tmp/temp.log
[root@SZDB ~]# more /tmp/temp.log
Logging to file '/tmp/temp.log'
id val
1 jack
2 robin
3 mark
Outfile disabled.

4、shell腳本中MySQL提示符下調用SQL

代碼如下:

[root@SZDB ~]# more shell_call_sql2.sh
#!/bin/bash
mysql -uroot -p123456 <<EOF
source /root/temp.sql;
select current_date();
delete from tempdb.tb_tmp where id=3;
select * from tempdb.tb_tmp where id=2;
EOF
exit;
[root@SZDB ~]# ./shell_call_sql2.sh
Logging to file '/tmp/temp.log'
id val
1 jack
2 robin
3 mark
Outfile disabled.
current_date()
2014-10-14
id val
2 robin

5、shell腳本中變數輸入與輸出

代碼如下:

[root@SZDB ~]# more shell_call_sql3.sh
#!/bin/bash
cmd="select count(*) from tempdb.tb_tmp"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit
[root@SZDB ~]# ./shell_call_sql3.sh
Warning: Using a password on the command line interface can be insecure.
Current count is : 3

[root@SZDB ~]# echo "select count(*) from tempdb.tb_tmp"|mysql -uroot -p123456 -s
3

[root@SZDB ~]# more shell_call_sql4.sh
#!/bin/bash
id=1
cmd="select count(*) from tempdb.tb_tmp where id=${id}"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit

[root@SZDB ~]# ./shell_call_sql4.sh
Current count is : 1

④ 資料庫中edit 和browse命令的區別

相當於在 MySQL 中使用 vi 命令來編輯 SQL 語句。這個功能比較雞肋,即使對於 vi 黨來說,效率也沒有多少提升。默認打開 edit 時,是編輯上一條 SQL 命令,退出 vi 後,輸入「;」後回車就會執行在 vi 中編輯的 SQL。這個日誌,可以發現我有一個 pager 操作,並且最後一個 edit 後有查詢結果輸出,但具體三個 edit 里的實際操作,我們都無從得知。最後一個 edit 後有查詢結果輸出說明了「tee 審計方式」會忽略 pager 的過濾作用,原輸出被審計下來了,但執行的原 SQL 命令躲過了審計,被隱藏起來了。

可以看出,審計插件的審計功能可以審計到伺服器真實執行的 SQL,這是 tee 審計方式不可比擬的。但審計插件並沒有發現我的 pager 操作,所以並不知道我導出了數據,只有 tee 審計方式發現了我導出了數據。

閱讀全文

與mysqltee命令相關的資料

熱點內容
壓縮氣管閥門 瀏覽:457
pdf推文 瀏覽:353
69程序員 瀏覽:577
阿里雲伺服器鏡像如何遷移到騰訊 瀏覽:979
安卓如何顯示日期在狀態欄 瀏覽:800
cadsplt這個命令用不了 瀏覽:463
安卓誇克怎麼取消監管 瀏覽:662
pdf怎麼裁剪圖片 瀏覽:436
黑上宏命令 瀏覽:644
mac解壓壓縮包有密碼 瀏覽:704
命令與征服知乎 瀏覽:561
小時代pdf 瀏覽:221
化工設備第三版答案pdf 瀏覽:465
防火卷簾控制器單片機程序 瀏覽:16
rdlcpdf 瀏覽:109
鏈表實現快速排序python 瀏覽:590
php輸出命令 瀏覽:987
d站app叫什麼名字 瀏覽:172
oppor系列如何解除應用加密 瀏覽:602
程序員那麼可愛姜逸城初戀 瀏覽:501