Mysql tips
1. mysql 的一些引數
# -e 這個引數是告訴mysql執行"-e" 後面的某個命令,而不連線到server # 此引數在寫一些基本的mysql檢查和監控的指令碼中非常有用 mysql -uroot -proot -e'show databases' # --tee 將mysql輸入和輸出內容記錄到檔案裡。便於大資料量的查詢 mysql -uroot -proot --tee = /tmp/query.log # --prompt 在mysql提示符中顯示登入的主機,使用者名稱,當前的資料庫,很有用 mysql -uroot -proot --prompt = "\u@\h:\d >"
另外,也可以配置my.cnf,將prompt寫入[mysql]分組裡,這樣就不用每次手動了
[mysql] prompt="\u@\h:\d >"
2. mysqladmin 的一些引數
-status #檢測mysql基本狀態 mysqladmin -uroot -proot -hlocalhost status Uptime: 240 Threads: 1 Questions: 90 Slow queries: 5 Opens: 23 Flush tables: 1 Open tables: 17 Queries per second avg: 0.375 -ping #檢測mysql是否正常 mysqladmin -uroot -proot -hlocalhost ping mysqld is alive -processlist #當前mysql的連線執行緒資訊 mysqladmin -uroot -proot -hlocalhost processlist -------------------------------------------------------------------------- | Id | User | Host | db | Command | Time | State | Info | -------------------------------------------------------------------------- | 8 | root | localhost | | Query | 0 | | show processlist | --------------------------------------------------------------------------
3. mysqldump 常用引數
#-d (--no-data) 僅生成結構建立的語句,沒有資料 mysqldump -uroot -proot test -d > /tmp/log.log #-l (--lock-all-tables) dump的時候鎖表,保持資料一致性 mysqldump -uroot -proot test --lock-all-tables > /tmp/log.log #指定字符集。這點比較重要,防止生成不可用內容。 mysqldump -uroot -proot test --default-character-set=utf8 > /tmp/log.log
4. MySQL主從架構tips
- 強烈建議ntpdate二臺伺服器的時間,不然來個未來(future)時間就麻煩了
- 由於MySQL資料庫走的都是內網,所以二臺機器的iptables可以關閉,在配置過程中由於沒關iptables發生了錯誤,直接導致admin在slave資料庫上連不上主資料庫
- 主MySQL的binlog功能一定要開啟,我們的線上伺服器有次由於PHP程式誤操作,發生了改單錯誤,幸虧用binlog恢復過來了;但開啟此功能要注意binlog的大小,有次Nagios狂報警,binlog日誌都快1T了
- 平時多檢查MySQL的備份檔案,尤其要關注其真實大小及時間;如果有條件,建議多用備份的資料庫檔案在其餘機器做下恢復實驗,跟真實的執行的資料庫比對,看有無區別
- 資料庫的主從切換是比較危險的操作,尤其是電子商務的跑單業務,很容易丟失資料,這種操作不到萬不得已不推薦執行
5. shell指令碼分析mysql
使用shell指令碼做日誌分析,然後將分析結果直接儲存到mysql中,除了用perl連線Mysql外,還可以:
將每一步需要執行的語句儲存到 tmp.sql 中,最後在使用
mysql -u uname -p pwd < tmp.sql
6. mysql備份資料指令碼
#! /bin/bash MysqlPATH="/data/app/mysql" BackupPATH="/data/mysql_bak" nowYear=`date +%Y` nowMonth=`date +%m` nowDay=`date +%d` nowHour=`date +%H` for DatabaseName in `$MysqlPATH/bin/mysqlshow | sed '1,3d; $d' | awk '{print $2}'`; do echo "start backup database: "$DatabaseName; $MysqlPATH/bin/mysqldump --single-transaction --skip-opt $DatabaseName | gzip > $BackupPATH/$DatabaseName"_"$nowYear$nowMonth$nowDay.gz done
http://www.cnblogs.com/wrmfw/archive/2011/09/05/2166928.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26855487/viewspace-731798/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql使用小tipsMySql
- Tips
- NPM TipsNPM
- AutoLayout Tips
- Tips HTMLHTML
- 前端 - tips前端
- Swift TipsSwift
- NumPy Tips
- Git TipsGit
- note tips
- hector tips
- PB Tips
- Tips for SD
- interview tipsView
- SAP Tips
- English Tips
- Docker TipsDocker
- ISPF tips
- 101個MySQL的調節和優化的TipsMySql優化
- 雜項 tips
- Tips: EloquentModel
- Linux TipsLinux
- typescript + amd tipsTypeScript
- jQuery tips and tricksjQuery
- 《iOS Tips 一》iOS
- GoldenGate TipsGo
- SELinux tipsLinux
- gulp some tips
- Some tips of Barcelona
- backup and restore tipsREST
- installation tips
- Sed Tips and Tricks
- layer小tips
- Troubleshooting tips
- bash shell tips
- javascript tips and snippetsJavaScript
- Ant Tips(1)
- PDF form tipsORM