If it's a non-standard high-range port, then the risk is low in my opinion. Make sure it is well into the higher ranges though as they tend to scan lower ranges - eg 32000 or higher.
Secondly, you could use something like CSF with it's dynamic IP feature; which allows dynamic IPs specified in /etc/csf.dyndns to be allowed full access to all server ports.
CSF also provides a "port knocking" feature, where an attempted open run on several ports will open a secured port for access - like a combination lock. For instance, an attempt to open port 33006, then 33008, then 33007 then voila the real Mysql port on 33010 suddenly opens to new connections for 30 seconds. This may not work too well from a script, not sure, though it should be scriptable.
Re the SSH analogy, you should also be running SSH on a high, non-standard port, for just the same reasons.