How To Setup Fail2ban for MySQL 8.x

Failed Login with Default Verbosity

Failed Login with Error Verbosity 3
MySQL 8.x log was different from v5.xx version because they deprecated log_warnings and change it to log_error_verbosity.
It was easy to change log error verbosity
- Open file /etc/mysql/mysql.conf.d/mysqld.cnf
vim /etc/mysql/mysql.conf.d/mysqld.cnf
- Add log_error_verbosity at the end of line
log_error_verbosity = 3
- Restart mysql service
sudo service mysql restart
Setup mysqld-auth fail2ban
- Open file /etc/fail2ban/jail.local
vim /etc/fail2ban/jail.local
- Go to [mysqld-auth] line, modified it to
[mysqld-auth]
enabled = true
port = 3306
log-error = /var/log/mysql/error.log
logpath = /var/log/mysql/error.log
backend = %(mysql_backend)s
maxretry = 3
findtime = 1d
bantime = 4w
- Restart fail2ban service
sudo service fail2ban restart

mysqld-auth Working Now

If you feel this website help you, you can donate at saweria