mysqlをlocalのunix_socket接続ではなくてTCPで外部IPから接続する場合、当然IP制限をかけたいわけで、そこでハマったのは制限のかけかた。
実はやったことがなかったので、最初はbind-address項目(ubuntu 20.4は、/etc/mariadb.d/50-server.confにある)にIP書けばいいんじゃないかと思ったがそれは大間違い(qiitaあたりで堂々と書かれてあったので、それを鵜呑みにしてハマった:しかも複数IP記述可能とかも書いてあったが、そんなものはできない)。
bind-addressは、名の通りmysql(mariadb)をどのIPにバインドするかということなだけで、接続IP制限とは無関係。
bind-adderss = 10.0.0.bb
なら、mysqlが稼働している10.0.0.bbホストとバインドしているという意味でしかない。稼働していないホストからの接続許可ではないのである。ちなみに、上を設定すると、同じホストの127.0.0.1を指定しても接続できません。
で、IP制限をかけるなら、bind-addressをコメントアウトし(bind-addressを有効にしてしまうと、バインドとは無関係のホスト(IP)からは接続できないから)、その「束縛」バインドを解き放ち!、mysql の中でIP付きのユーザを作るというのが作法とのことでした。あとはFWのポートで制限する、と。
小二時間(っていう言葉はないが)ほどハマったので悔しくてここに書いておいた。