如何在bash / mysql脚本中引用.my.cnf的位置?

时间:2017-09-11 15:43:36

标签: mysql bash

我有一个连接到mysql服务器并提取信息的bash脚本。我的.my.cnf文件在我的主目录中。我想将.cnf文件的位置更改为~myname / .my.cnf

我的问题是如何在我的脚本或我对数据库的mysql调用中引用这个新位置?

由于

2 个答案:

答案 0 :(得分:1)

这是关于MySQL如何查看选项文件的文档参考: 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)

注意:在与mysql客户端连接时,您希望使用defaults-extra-file选项。 mysql --defaults-extra-file=~/path/to/file/.filename < script

您应该考虑使用--login-path作为替代方案。 Login path reference。该文件不是纯文本。您使用mysql_config_editor创建登录路径,其中存储用户名,密码,主机等

答案 1 :(得分:0)

我不知道你的意思是什么“~myname / .my.cnf”。这将扩展到由用户名和“myname”串联组成的目录,这是没有任何意义的。我猜你的意思可能是“〜/ something / .my.cnf”

'〜'expands to $HOME因此只需在调用mysql之前重新定义$ HOME就足够了(尽管这会混淆对'〜'的进一步引用。

HOME=$HOME/myname
mysql <somescript.sql