MySQL Client 裡面,想要執行 SQL 語法,或者使用變數來做某些取代,要怎麼做呢?
標籤: mysql
MySQL 強制重新設定 root 密碼
MySQL 的 root 密碼忘了,要怎麼強制重新設定呢?
MySQL Percona innobackupex 備份帳號需要的權限
MySQL 要備份資料庫,可以使用 Percona 的 Tookit 的 innobackupex (xtrabackup) 來備份。
要為 innobackupex 建立一個備份專用的使用者,需要哪些權限呢?
MySQL Percona innobackupex 和 XtraBackup 有何不同?
MySQL Percona innobackupex 和 XtraBackup 都是拿來做備份,兩個有什麼不一樣呢?
MySQL 建立 View 的語法 與 簡易應用
View 可以縮短 SQL 撰寫的長度,只是做個類似轉換的動作,後面該做的還是跑不掉的。
不過若有新舊版程式,例如要將這個 Table Name 加上「年月」,但是原始 Table 暫時還要可以讀取,就可以靠 View 來達成。
MySQL Table RENAME、重建作法
MySQL 刪除資料後,空間並不會釋放出來,可以使用 OPTIMIZE TABLE 來釋放空間,OPTIMIZE 等同於 TABLE Copy & RENAME,所以會有大量 IO。
我是採用兩種方式來做,依照資料量大小來做選擇。(一樣會有大量IO,但是可以自己掌握,缺點是執行時會有短暫的時間可能漏資料)
不過資料量過大的,還是建議另外處理,這種作法是非常不得已的。
MySQL mysqldump 跳過某些 Table
MySQL 使用 mysqldump 可以備份所有 Database、指定 Database 等等。
但是 Database 裡面,某個 Table 太大不想 Dump,要跳過可以怎麼做呢?
MySQL 輸出 FLOAT、CHAR 強制轉換成 INT 或其它型態
MySQL rand() 預設是浮點數(float / double),但是想要取整數的話,可以怎麼做呢?
- mysql> SELECT rand(); // 0.519057333021478
MySQL CASE:SQL 語法的 switch 和 if-else
MySQL、MSSQL 的 SQL 語法裡面,想要做 if-else 或 switch,可以怎麼做呢?
MySQL 的 Prompt 想顯示主機和資料庫名稱
MySQL 的 Prompt 想要顯示主機和資料庫名稱等資訊,要怎麼設定呢?
mysql> 想要變成 (user@host) [(dbname)]> 作法如下:
- 在 Shell 輸入下述,再進入 MySQL CLI:
- export MYSQL_PS1="(\u@\h) [\d]> "
- 進入 MySQL 裡面(mysql>),輸入下述:
- PROMPT (\u@\h) [\d]>_ 或 \R (\u@\h) [\d]>_
- 或 \R (\U) [\d]>_ (註:\U = user_name@host_name)
- 詳可見:MySQL 8.0 Reference Manual :: 4.5.1.2 mysql Client Commands
- 在 Shell 輸入:
- mysql --prompt="(\u@\h) [\d]> "
- vim /etc/mysql/my.cnf
- [mysql]
- prompt=(\\u@\\h) [\\d]>\\_
上述我是使用1、4,my.cnf 的設定不需要重啟 MySQL,直接寫完 mysql cli 進入就會直接讀取生效