为什么我的.my.cnf设置不起作用?


15

我的桌面上的主目录中有一个.my.cnf文件,该文件包括:

[dbid]
user = myusername
password = mypassword
database = dbname
host = server.location.com

如果我没记错的话,在从Ubuntu 10.04升级到11.04之前,我能够使用以下命令

mysql dbid

直接连接到数据库

但是今天我得到了这个错误:

ERROR 1049 (42000): Unknown database 'dbname'

我做错什么了吗?


根据我在更新中包含的答案,我将其标记为“不是真正的问题”。问题与更改IP地址有关,而不是与数据库有关。我不确定该关闭它还是应该提供更新作为答案。
David LeBauer 2011年

通常,注释帐户就足够了,不应与“#”一起使用。

我不明白您的意思-这将如何回答问题?
大卫·勒鲍尔

Answers:


23

我不确定您以前的.my.cnf以前是如何工作的,实际上我以前从未使用过这些文件(主要是因为我不了解它们)。因此,经过一番研究,我找到了此链接,并提出了以下对我有用的〜/ .my.cnf:

[clientdbid]
password = mypass
database = dbname
host = server.location.com

和读取它的命令:

mysql --defaults-group-suffix=dbid

需要指出的几点(链接文章的重点):

  • 组之前必须有“客户端”才能被mysql读取
  • 必须追随任何[客户]组,否则将被覆盖

我在Mac上的mysql 5.5上进行了测试,效果很好。现在,我知道了它们,我将使用它们!

更新 在完成此设置后,我意识到命令行mysql --defaults-group-suffix=dbid有点繁琐。因此,作为额外的好处,假设您正在运行Linux / Mac / Etc,请执行以下操作:

echo 'alias mysql_dbid="mysql --defaults-group-suffix=dbid"' >> ~/.profile

dbid后缀组的名称在哪里。


嘿@DTest,答案不错!!!+1(顺便说一句,祝贺您的mysql徽章)
RolandoMySQLDBA 2011年

我本来打算投票赞成,然后我说哇哇!这是几个月前的事了。
RolandoMySQLDBA 2012年

0

我的数据库管理员帮助我发现了这个问题,因此以下是提示该问题的原始问题的解决方案:

问题(据我了解)是数据库仅允许基于特定IP地址的计算机访问。当我有一台新计算机时,我的IP地址已更改,用数据库管理员的话来说,我为使用不同IP地址设置的帐户使用了不同的密码

根据user @ olddesktopip.edu,user @ newdesktopip.edu和您的IP地址,我在其中有几个不同的用户名。密码不一样,导致混乱,这是我的错。


0

作为Derek Downey更新的更新,这是我在不同Linux计算机上使用通用的〜/ .my.cnf文件的方式,并根据主机名自动选择合适的部分:

echo 'alias mysql="mysql --defaults-group-suffix=$HOST"' >> ~/.bash_aliases

在那之后,我只需要在命令行上输入即可mysql

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.