dabire
dabire

Reputation: 65

how do I reference location of .my.cnf in bash/mysql script?

I have a bash script that connects to a mysql server and pulls information. I have my .my.cnf file in my home directory. I want to change the location of the .cnf file to ~myname/.my.cnf

My question is how do I reference this new location in my script or in my mysql call to the database?

Thanks

Upvotes: 0

Views: 1639

Answers (2)

Kevin Bott
Kevin Bott

Reputation: 733

Here's the doc reference for how MySQL looks at Options Files: https://dev.mysql.com/doc/refman/5.7/en/option-files.html

File Name   Purpose
/etc/my.cnf Global options
/etc/mysql/my.cnf   Global options
SYSCONFDIR/my.cnf   Global options
$MYSQL_HOME/my.cnf  Server-specific options (server only)
defaults-extra-file The file specified with --defaults-extra-file, if any
~/.my.cnf   User-specific options
~/.mylogin.cnf  User-specific login path options (clients only)

Note: you want to use defaults-extra-file option when connecting with mysql client. mysql --defaults-extra-file=~/path/to/file/.filename < script

You should consider using --login-path as an alternative. Login path reference. The file is not plain text. You use mysql_config_editor to create your login paths, which stores username, password, host, etc.

Upvotes: 1

symcbean
symcbean

Reputation: 48357

I don't know what you mean by "~myname/.my.cnf". This would expand to a directory made of a concatenation of your username and "myname" which doesn't make any sense. I guess you might mean "~/something/.my.cnf"

The '~' expands to $HOME hence simply redefining $HOME before invoking mysql should suffice (although this will confuse further references to '~'.

HOME=$HOME/myname
mysql <somescript.sql

Upvotes: 0

Related Questions