这是我的.my.cnf文件:
[client]
user=user1
password=somePasswd1
database=someDb
[client2]
user=user1
password=somePassed2
database=someotherDb
如果我只有一个条目,它就起作用了,如:
[client]
user=user1
password=somePasswd1
database=someDb
[客户]的意义是什么?它应该有什么?另外,如果我只想限制localhost的这些用户密码呢?
1条答案
按热度按时间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呢
这是在向用户授予权限时处理的。
通过在user1之后指定主机,这意味着只有当user1从localhost连接时,授权才起作用。如果user1正试图从任何其他主机连接,则授权将不起作用。包括密码凭证本身。阅读https://dev.mysql.com/doc/refman/8.0/en/grant.html 更多信息。