MySQL 8.3 Release Notes
有多种方式指定 MySQL 程序的选项:
-
在命令行上列出选项,紧跟在程序名称后面。这对于特定程序调用时的选项非常常见。
-
在选项文件中列出选项,该文件在程序启动时被读取。这对于每次程序运行时都需要使用的选项非常常见。
-
在环境变量中列出选项(见 第 6.2.9 节,“设置环境变量”)。这对于每次程序运行时都需要使用的选项非常有用。在实践中,选项文件更常用于此目的,但 第 7.8.3 节,“在 Unix 上运行多个 MySQL 实例” 中讨论了一种情况,在这种情况下环境变量非常有帮助。它描述了一种使用这些变量指定服务器和客户端程序的 TCP/IP 端口号和 Unix 套接字文件的技巧。
选项按照顺序处理,因此如果一个选项被指定多次,最后一个实例将生效。以下命令使 mysql 连接到在 localhost
上运行的服务器:
mysql -h example.com -h localhost
有一种例外:对于 mysqld,第一个 --user
选项实例用于安全预防,以防止在选项文件中指定的用户被命令行上覆盖。
如果存在冲突或相关选项,将优先使用后面的选项。以下命令在 “无列名” 模式下运行 mysql:
mysql --column-names --skip-column-names
MySQL 程序首先检查环境变量,然后处理选项文件,最后检查命令行。因为后面的选项优先于前面的选项,因此环境变量具有最低优先级,而命令行选项具有最高优先级。
对于服务器,有一个例外:mysqld-auto.cnf 选项文件在数据目录中被处理最后,因此它甚至优先于命令行选项。
您可以利用 MySQL 程序处理选项的方式,通过在选项文件中指定程序的默认选项值。这使您可以避免每次运行程序时输入这些值,同时也可以使用命令行选项覆盖默认值。