2023-07-28
MySQL 連線太多次導致連線失敗
MySQL 有個機制是如果有 IP 連線失敗多次,就會將該 IP block
檢查
檢查方式:
mysql> show variables like 'max_connect_errors';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_connect_errors | 100 |
+--------------------+-------+
1 row in set (0.09 sec)
mysql>
以上表示一個 IP 最多可以失敗 100 次
至於有哪些 IP 發生這問題,要去 performance_schema.host_cache (需要特別開權限才能進該 schema)看
mysql> select IP, HOST, SUM_CONNECT_ERRORS, COUNT_HOST_BLOCKED_ERRORS, FIRST_ERROR_SEEN, LAST_ERROR_SEEN from performance_schema.host_cache;
+----------------+------+--------------------+---------------------------+---------------------+---------------------+
| IP | HOST | SUM_CONNECT_ERRORS | COUNT_HOST_BLOCKED_ERRORS | FIRST_ERROR_SEEN | LAST_ERROR_SEEN |
+----------------+------+--------------------+---------------------------+---------------------+---------------------+
| 10.8.8.237 | NULL | 101 | 577863 | 2023-07-27 15:12:11 | 2023-07-28 03:28:00 |
| 10.200.21.54 | NULL | 100 | 3276 | 2023-07-28 00:44:19 | 2023-07-28 03:28:00 |
| 10.240.2.19 | NULL | 0 | 0 | 2023-07-28 03:26:01 | 2023-07-28 03:26:01 |
| 10.200.26.30 | NULL | 101 | 5967 | 2023-07-28 00:56:40 | 2023-07-28 03:25:16 |
| 10.200.23.34 | NULL | 0 | 0 | 2023-07-28 01:57:29 | 2023-07-28 01:57:29 |
| 10.200.21.62 | NULL | 0 | 0 | 2023-07-28 03:08:13 | 2023-07-28 03:08:13 |
| 10.200.206.216 | NULL | 0 | 0 | 2023-07-28 02:53:28 | 2023-07-28 02:53:28 |
| 10.200.21.63 | NULL | 0 | 0 | 2023-07-28 00:37:29 | 2023-07-28 00:37:29 |
+----------------+------+--------------------+---------------------------+---------------------+---------------------+
8 rows in set (0.08 sec)
mysql>
這樣可以看到 10.8.8.237、10.200.21.54、10.200.26.30這 3 個 IP 都出現這問題。
解決辦法
解決辦法是執行以下 SQL
mysql> flush hosts;
但該指令有限制要最高權限才能執行,沒有權限者會出現以下 error
ERROR 1227 (42000): Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
參考資料
KuBee, (2020, September 10). MySQL-客户端连接被拒绝问题. 博客园. https://www.cnblogs.com/binliubiao/p/13648294.html
yinxuep, (2019, December 11). Mysql连接错误过多的问题处理_mysql sum_connect_errors. CSDN博客. https://blog.csdn.net/yinxuep/article/details/103501044
2023-07-25
Docker Build 時,出現“Sending build context to Docker daemon 過大”
如題,在啟動 Docker Container 時出現 Sending build context to Docker daemon 的檔案過大,例如:
$ docker build -t my-war /home/workspace/my-war
Sending build context to Docker daemon 15.14GB
Step 1/8 : FROM tomcat:8.5.15-jre8
---> b8dfe9ade316
Step 2/8 : RUN rm -rf $CATALINA_HOME/webapps/ROOT
---> Using cache
---> e4a4d6901da0
……下略
2023-07-12
紀錄一下 Go 的 struct field tag 的處理
struct field tag 指的是如下 struct 中的 `json:"id"`
這段字串
struct {
Id uint `json:"id"`
}
2023-06-29
如何用 npx 來使用不同版本的 npm
以下是一個簡單的 package.json
{
"name": "Lorem ipsum dolor sit amet",
"version": "1.0.0",
"description": "Ac odio tempor orci dapibus.",
"main": "index.js",
"scripts": {
"start": "webpack",
"dev": "webpack-dev-server --open"
},
"engines": {
"node": "v8.6.0"
}
}
如果我的 Node.js 是最新版,那就無法執行該專案了。
2023-06-17
2023-06-16
2023-04-17
Hibernate 有註記 @Audit 的 Entity,如何處理版本
在不考慮直接寫 query 的情況下,Hibernate entity 可以用 Hibernate ORM Hibernate Envers 底下的 code 來處理
2023-02-03
2023-01-11
紀錄:Go 如何將 SVG 轉成 image.Image
因為在 Go 中,圖片是靠 image package 來處理的。
而在原生 library 中,並沒有針對 svg 的處理。
我在網路上有找到相關 library ,特此紀錄。
2022-12-27
2022-12-05
golang 的 init()
之前就很好奇,像是 github.com/go-sql-driver/mysql 到底是如何做到只需寫以下幾行,就能夠連線 mysql
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
// ...
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306/my-db)")