[MySQL] Slow Query Log 設定 (寫進mysql table)
Intro 快速設定MySQL Slow Query Log參數。 參數設定方法 可在my.cnf或是全域參數設定或修改: // 開啟Slow Query Log 預設off slow_query_log => on // Long query 時間門檻,預設10 long_query_time => 10 // 載體,預設FILE改寫進Table global log_output => TABLE
網頁開發知識 | Web-Dev Blog
Intro 快速設定MySQL Slow Query Log參數。 參數設定方法 可在my.cnf或是全域參數設定或修改: // 開啟Slow Query Log 預設off slow_query_log => on // Long query 時間門檻,預設10 long_query_time => 10 // 載體,預設FILE改寫進Table global log_output => TABLE
Intro MySQL Benchmark方法指南。 效能測試 取得PROFILE資料檢測Query: SET profiling=1;<query>;SHOW PROFILE; 從mysqlDB測測CPU: SELECT DISTINCT Transition_type_id FROM `time_zone_transition`; 連線測試 MySQL目前有個有趣的連線Latency問題,可參考:[MySQL] 如何佈署Database最佳連線路由 – phpMyAdmin建議走本機或內網 這邊提供測試方法(透過mysql client): 預裝好的選mysqldatabase來測試: use mysql; 找最大的time_zone_transition來測: SELECT * FROM `time_zone_transition`; 結果範例最後的資訊帶有總體來回時間: 120208 rows in set (0.08 sec) 交叉測試便可知越遠的client connection時間越久。
鎖資料列(可讀/不可讀) MySQL Document 14.5.2.4 Locking Reads 主要分為sharedLock與lockForUpdate: sharedLock locks only for write, lockForUpdate also prevents them from being selected Pessimistic Locking (SELECT … FOR UPDATE) 談到pessimistic concurrency control(Lock row for read),實作上再Transaction內使用: SELECT … FOR UPDATE 則結果列將會被鎖定且不可讀,應用上可做不重複流水號等等。
修改密碼指令 MySQL 5.7.5 and earlier: SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘MyNewPass’); MySQL 5.7.6 and later: ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’; MariaDB設定使用者失效Bug MariaDB版本與PHPMyAdmin版本存在使用者密碼操作問題,如有遇到則以語法自行對照操作即可修復。 Ex. 5.5.46 SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘MyNewPass’); 另外如果設定完成但登入後又失效,可以確認mysql->users該用戶的plugin欄位是否有mysql_native_password值,將其刪除再設定密碼即可。 重設密碼 – Root密碼遺失強制修改 How to Reset the Root […]
引言 MySQL Replica 相關指令及指南 安裝 MySQL官方文件:Chapter 16 Replication 安裝筆記可以參考:https://blog.longwin.com.tw/2008/03/mysql_replication_master_slave_set_2008/ Slave 狀態檢查 狀態查詢SQL SHOW slave STATUS; 建議使用command直式較好查看:SHOW slave STATUS \G; 忽略錯誤 SET GLOBAL SQL_SLAVE_SKIP_COUNTER =1; 可一次略過大量SQL數,建議逐筆Error Skip才不會漏 重新跟Master (錯誤後會停止) START SLAVE; 狀態識別 Key Description Master_Log_File IO Thread正在讀取Master的binlog Slave_IO_Running 是否在同步,正常為Yes Slave_SQL_Running 是否在同步,正常為Yes […]
使用情境 總會要計算全部資料庫的總容量吧!竟然沒這SQL語法。 解決方法 下SQL語句直接從Data length計算在群組,以下為個別列出資料庫容量: SELECT table_schema AS “Database name”, SUM( data_length + index_length ) /1024 /1024 /1024 AS “Size (GB)” FROM information_schema.TABLES GROUP BY table_schema 要做加總的話,就Group SUM欄: GROUP BY “Size (GB)”
這只是一篇架構佈署建議文,主要探討MySQL Client連線MySQL Server的最佳路由。 原由 MySQL Client連線到外網MySQL Server,發現Latency頗高,如果Client是使用phpMyAdmin,可以體驗甚麼叫易怒的操作。 路由範例與速度結果 以下為連線路由測試結果 台灣MySQL Client (WAN)-> 日本AWS-RDS //慢 台灣SSH Client (WAN)-> 日本AWS-EC2 MySQL Client (LAN)-> 日本AWS-RDS //快 台灣HTTP Client (WAN)-> 日本AWS-EC2 phpMyAdmin MySQL Client (LAN)-> 日本AWS-RDS //快 總結 MySQL Client建議是在MySQL server的Local或內網,所以應該很少看到有Application會把連線Database佈署到外網的例子。 phpMyAdmin的佈署來說,就如同MySQL Client,放在MySQL server的Local或內網吧! […]
安裝 以 Ubuntu 為例: apt-get install mysql-client-* 版本自行查閱,以下為5.1版本範例 apt-get install mysql-client-5.1 指令範例-備份 備份使用mysqldump 備份單一資料庫 mysqldump -h hostname -u root -p database_name > backup.sql; 備份資料庫中單一資料表 # mysqldump -u root -p database_name table_name > backup.sql; 備份資料庫中多張資料表 # mysqldump -u root -p database_name […]
LNMP Server Environment Installation Version: 1.2.0 Environment: Ubuntu 18.04 LTS Installer on Github Nginx Web Server Installation apt-get install nginx Configuration: /etc/nginx/nginx.conf > client_max_body_size 128M; > worker_processes 2; (if instance core is 2) PHP-FPM Install php-fpm (php7.0-fpm) with extensions apt-get […]
MySQL SLEEP函數 SLEEP() // Sleep for a number of seconds Sleeps (pauses) for the number of seconds given by the duration argument, then returns 0. The duration may have a fractional part. If the argument is NULL or negative, SLEEP() […]