Sun*_*nny 4 mysql client config
这是我的 .my.cnf 文件:
[client]
user=user1
password=somePasswd1
database=someDb
[client2]
user=user1
password=somePassed2
database=someotherDb
Run Code Online (Sandbox Code Playgroud)
如果我只有一个条目,它会起作用,例如:
[client]
user=user1
password=somePasswd1
database=someDb
Run Code Online (Sandbox Code Playgroud)
[客户]的意义是什么?它应该有什么?另外,如果我只想限制本地主机的这些用户密码怎么办?
https://dev.mysql.com/doc/refman/8.0/en/option-files.html说:
[client] 选项组由 MySQL 发行版中提供的所有客户端程序读取(但不是由 mysqld)。
[client] 组使您能够指定适用于所有客户端的选项。例如,[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说:
--defaults-group-suffix=str
不仅要阅读常用的选项组,还要阅读具有常用名称和后缀为 str 的组。例如,mysql 客户端通常读取 [client] 和 [mysql] 组。如果给出了 --defaults-group-suffix=_other 选项,mysql 还会读取 [client_other] 和 [mysql_other] 组。
在你的情况下,你可以运行:
mysql --defaults-group-suffix=2
这将使 mysql 客户端从[client2]选项文件中的组中读取选项。
“另外,如果我只想限制本地主机的这些用户密码怎么办?”
这是在您向用户授予权限时处理的。
GRANT ... ON *.* TO 'user1'@'localhost';
Run Code Online (Sandbox Code Playgroud)
通过在 user1 之后指定主机,这意味着授权仅在 user1 从 localhost 连接时有效。如果 user1 尝试从任何其他主机连接,则授权将不起作用。这包括密码凭证本身。阅读https://dev.mysql.com/doc/refman/8.0/en/grant.html了解更多信息。