Secure way of providing MySQL password in a batch file

All we need is an easy explanation of the problem, so here it is.

We have a batch file that, among other things, performs some database operations. To keep things non-interactive, currently we pass the DB user id and password information on the command line. We keep getting the following warning messages:
Using a password on the command line interface can be insecure.

Kindly suggest how to pass the DB password information to the batch file so that it remains non-interactive and yet secure.

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

Put the password into an option file, and specify the option filename to your MySQL client in the batch file.

Say you edit an option file and call it "myoptions.ini". The option file content might look like this:

[client]
user = sandeep
password = ********

Then your command would look like this:

mysql --defaults-file myoptions.ini -h <host> <database> -e <query>

See https://dev.mysql.com/doc/refman/8.0/en/option-files.html

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply