I've updated my question again. The ODBC is working with SUDO but not working without sudo. So, I don't believe there is an issue in ODBC configs. More like permissions issue.
Is it possible because mysql is running on user mysql which may not have permissions to use odbc and that's why with sudo is working? If yes, how can I give permissions?