在主目录中为多个数据库配置.my.cnf不起作用适用于单个数据库

x0fgdtte  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(320)

这是我的.my.cnf文件:

[client]
 user=user1
 password=somePasswd1
 database=someDb
 [client2]
 user=user1
 password=somePassed2
 database=someotherDb

如果我只有一个条目,它就起作用了,如:

[client]
 user=user1
 password=somePasswd1
 database=someDb

[客户]的意义是什么?它应该有什么?另外,如果我只想限制localhost的这些用户密码呢?

sycxhyv7

sycxhyv71#

https://dev.mysql.com/doc/refman/8.0/en/option-files.html 说:
[client]选项组由mysql发行版中提供的所有客户端程序读取(而不是mysqld)。
[client]组允许您指定适用于所有客户端的选项。例如,[client]是用于指定连接到服务器的密码的适当组(但请确保选项文件只能由您自己访问,以便其他人无法发现您的密码。)请确保不要将选项放在[客户端]组中,除非您使用的所有客户端程序都能识别该选项。
mysql客户端程序在手册中:https://dev.mysql.com/doc/refman/8.0/en/programs-client.html
如果使用选项组,如 [client2] 除非使用 --defaults-group-suffix 选项。
https://dev.mysql.com/doc/refman/8.0/en/option-file-options.html 说:
--默认组后缀=str
不仅要读取常用的选项组,还要读取具有常用名称和后缀str的组。例如,mysql客户端通常读取[client]和[mysql]组。如果给出--defaults group suffix=\u other选项,mysql还会读取[client\u other]和[mysql\u other]组。
在您的情况下,您可以运行:
mysql—默认组后缀=2
这将使mysql客户机从 [client2] 在选项文件中分组。
另外,如果我只想将这些用户密码限制为localhost呢
这是在向用户授予权限时处理的。

GRANT ... ON *.* TO 'user1'@'localhost';

通过在user1之后指定主机,这意味着只有当user1从localhost连接时,授权才起作用。如果user1正试图从任何其他主机连接,则授权将不起作用。包括密码凭证本身。阅读https://dev.mysql.com/doc/refman/8.0/en/grant.html 更多信息。

相关问题