查看“选项默认值、期望值的选项和等号”的源代码
←
选项默认值、期望值的选项和等号
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
按照惯例,赋值的长格式选项使用等号(=)符号,如下所示: mysql --host=tonfisk --user=jon 对于需要值的选项(即没有默认值的选项),等号是可选的,因此以下写法也是有效的: mysql --host tonfisk --user jon 在这两种情况下,mysql客户端尝试连接到名为“tonfisk”的主机上运行的MySQL服务器,并使用用户名“jon”的账户。 由于这种行为,有时在期望有值的选项中没有提供值可能会导致问题。考虑以下示例,其中用户作为用户jon连接到在主机tonfisk上运行的MySQL服务器: $> mysql --host 85.224.35.45 --user jon 欢迎使用MySQL监视器。命令以;或\g结尾。 您的MySQL连接ID为3 服务器版本:8.0.33 源码发行版 键入'help;'或'\h'获取帮助。键入'\c'清除缓冲区。 mysql> SELECT CURRENT_USER(); +----------------+ | CURRENT_USER() | +----------------+ | jon@% | +----------------+ 1行记录(0.00秒) 省略这些选项所需的值将导致错误,如下所示: $> mysql --host 85.224.35.45 --user mysql: 选项'--user'需要一个参数 在这种情况下,mysql无法找到--user选项后面的值,因为命令行上没有跟随它。然而,如果您省略不是最后一个要使用的选项的值,您将获得一个不同的错误,这可能不是您所期望的: $> mysql --host --user jon ERROR 2005 (HY000): 未知的MySQL服务器主机'--user'(1) 因为mysql假设在--host后面的任何字符串都是主机名,--host --user被解释为--host=--user,客户端尝试连接到名为“--user”的主机上运行的MySQL服务器。 具有默认值的选项在分配值时始终需要等号;如果未使用等号,将导致错误。例如,MySQL服务器的--log-error选项具有默认值host_name.err,其中host_name是MySQL运行的主机名。假设您在名为“tonfisk”的计算机上运行MySQL,并考虑以下mysqld_safe的调用: > mysqld_safe & [1] 11699 > 080112 12:53:40 mysqld_safe Logging to '/usr/local/mysql/var/tonfisk.err'. 080112 12:53:40 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var $> 关闭服务器后,按以下方式重新启动它: > mysqld_safe --log-error & [1] 11699 > 080112 12:53:40 mysqld_safe Logging to '/usr/local/mysql/var/tonfisk.err'. 080112 12:53:40 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var $> 结果是相同的,因为--log-error在命令行上没有后续内容,并且它提供了自己的默认值。(&字符告诉操作系统在后台运行MySQL,MySQL本身会忽略它。)现在假设您希望将错误记录到名为my-errors.err的文件中。您可以尝试使用--log-error my-errors启动服务器,但这不会产生预期的效果,如下所示: > mysqld_safe --log-error my-errors & [1] 31357 > 080111 22:53:31 mysqld_safe Logging to '/usr/local/mysql/var/tonfisk.err'. 080111 22:53:32 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var 080111 22:53:34 mysqld_safe mysqld from pid file /usr/local/mysql/var/tonfisk.pid ended [1]+ Done ./mysqld_safe --log-error my-errors 服务器尝试使用/usr/local/mysql/var/tonfisk.err作为错误日志启动,但随后关闭。检查此文件的最后几行显示了原因: $> tail /usr/local/mysql/var/tonfisk.err 2013-09-24T15:36:22.278034Z 0 [ERROR] Too many arguments (first extra is 'my-errors'). 2013-09-24T15:36:22.278059Z 0 [Note] Use --verbose --help to get a list of available options! 2013-09-24T15:36:22.278076Z 0 [ERROR] Aborting 2013-09-24T15:36:22.279704Z 0 [Note] InnoDB: Starting shutdown... 2013-09-24T15:36:23.777471Z 0 [Note] InnoDB: Shutdown completed; log sequence number 2319086 2013-09-24T15:36:23.780134Z 0 [Note] mysqld: Shutdown complete 由于--log-error选项提供了默认值,您必须使用等号来为其分配不同的值,如下所示: > mysqld_safe --log-error=my-errors & [1] 31437 > 080111 22:54:15 mysqld_safe Logging to '/usr/local/mysql/var/my-errors.err'. 080111 22:54:15 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var $> 现在服务器已成功启动,并将错误记录到文件/usr/local/mysql/var/my-errors.err中。 在指定选项文件中的选项值时可能会出现类似的问题。例如,考虑一个包含以下内容的my.cnf文件: [mysql] host user 当mysql客户端读取此文件时,这些条目被解析为--host --user或--host=--user,结果如下所示: $> mysql ERROR 2005 (HY000): 未知的MySQL服务器主机'--user'(1) 然而,在选项文件中,不假设等号。假设my.cnf文件如下所示: [mysql] user jon 在这种情况下,尝试启动mysql会导致不同的错误: $> mysql mysql: 未知的选项'--user jon' 如果在选项文件中写入host tonfisk而不是host=tonfisk,将出现类似的错误。而是,您必须使用等号: [mysql] user=jon 现在登录尝试成功: $> mysql 欢迎使用MySQL监视器。命令以;或\g结尾。 您的MySQL连接ID为5 服务器版本:8.0.33 源码发行版 键入'help;'或'\h'获取帮助。键入'\c'清除缓冲区。 mysql> SELECT USER(); +---------------+ | USER() | +---------------+ | jon@localhost | +---------------+ 1行记录(0.00秒) 这与命令行的行为不同,在命令行中,等号是可选的: $> mysql --user jon --host tonfisk 欢迎使用MySQL监视器。命令以;或\g结尾。 您的MySQL连接ID为6 服务器版本:8.0.33 源码发行版 键入'help;'或'\h'获取帮助。键入'\c'清除缓冲区。 mysql> SELECT USER(); +---------------+ | USER() | +---------------+ | jon@tonfisk | +---------------+ 1行记录(0.00秒) 在选项文件中指定需要值的选项而没有值会导致服务器中止并显示错误。
返回至“
选项默认值、期望值的选项和等号
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息