查看“使用命令选项连接到MySQL服务器”的源代码
←
使用命令选项连接到MySQL服务器
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
本节介绍了如何使用命令行选项来指定如何建立与MySQL服务器的连接,适用于诸如mysql或mysqldump之类的客户端。 对于客户端程序要连接到MySQL服务器,它必须使用正确的连接参数,比如运行服务器的主机名、MySQL帐户的用户名和密码。每个连接参数都有一个默认值,但是您可以使用命令行或选项文件中指定的程序选项来覆盖默认值。 这里的示例使用mysql客户端程序,但是这些原则也适用于其他客户端程序,比如mysqldump、mysqladmin或mysqlshow。 这个命令在不指定任何显式连接参数的情况下调用mysql: mysql 因为没有参数选项,所以应用默认值: *默认主机名是localhost。在Unix上,这有一个特殊的含义,稍后会详细介绍。 *默认用户名是Windows上的ODBC,或者Unix上的登录名。 *没有发送密码,因为没有给出--password或-p。 *对于mysql而言,第一个非选项参数被视为默认数据库的名称。因为没有这样的参数,mysql不选择默认数据库。 要明确指定主机名和用户名,以及密码,请在命令行上提供适当的选项。要选择默认数据库,请添加一个数据库名称参数。示例: mysql --host=localhost --user=myname --password=password mydb mysql -h localhost -u myname -ppassword mydb 对于密码选项,密码值是可选的: *如果使用--password或-p选项并指定密码值,则--password=或-p和其后的密码之间不能有空格。 *如果使用--password或-p但没有指定密码值,则客户端程序会提示您输入密码。输入密码时不会显示在屏幕上。这比在命令行上给出密码更安全,因为其他用户可能通过执行诸如ps之类的命令来查看密码行。 *要明确指定没有密码,并且客户端程序不应提示输入密码,请使用--skip-password选项。 正如刚才提到的,将密码值包含在命令行上是一种安全风险。为了避免这个风险,使用--password或-p选项,但不要在后面加上密码值: mysql --host=localhost --user=myname --password mydb mysql -h localhost -u myname -p mydb 当--password或-p选项没有密码值时,客户端程序会打印一个提示,并等待您输入密码。(在这些示例中,mydb不会被解释为密码,因为它与前面的密码选项之间有一个空格。) 在某些系统上,MySQL用于提示密码的库例程会自动将密码限制为八个字符。这个限制是系统库的属性,而不是MySQL的属性。在内部,MySQL对密码的长度没有任何限制。为了解决受此限制影响的系统上的问题,可以在选项文件中指定密码。另一种解决方法是将MySQL密码更改为长度为八个或更少字符的值,但这样做的缺点是较短的密码往往不够安全。 客户端程序确定要建立的连接类型如下: *如果未指定主机名或主机名为localhost,则连接到本地主机: **在Windows上,如果服务器启用了shared_memory系统变量以支持共享内存连接,则客户端使用共享内存连接。 **在Unix上,MySQL程序对主机名localhost进行了特殊处理,这与其他基于网络的程序相比可能有所不同:客户端使用Unix套接字文件进行连接。可以使用--socket选项或MYSQL_UNIX_PORT环境变量来指定套接字名称。 *在Windows上,如果主机名为.(点),或者未启用TCP/IP并且未指定--socket或主机名为空,则客户端使用命名管道进行连接,如果服务器启动时启用了named_pipe系统变量以支持命名管道连接。如果不支持命名管道连接,或者连接的用户不是named_pipe_full_access_group系统变量指定的Windows组的成员,则会发生错误。 *否则,连接使用TCP/IP。 --protocol选项使您可以在其他选项通常会使用不同协议的情况下,使用特定的传输协议。也就是说,--protocol明确指定传输协议,并覆盖前面的规则,即使是对于localhost也是如此。 只使用或检查与所选传输协议相关的连接选项。其他连接选项将被忽略。例如,在Unix上使用--host=localhost时,即使给出--port或-P选项以指定TCP/IP端口号,客户端也会尝试使用Unix套接字文件连接到本地服务器。 为了确保客户端与本地服务器建立TCP/IP连接,请使用--host或-h来指定主机名的值为127.0.0.1(而不是localhost),或者本地服务器的IP地址或名称。您还可以使用--protocol=TCP选项明确指定传输协议,即使对于localhost也是如此。示例: mysql --host=127.0.0.1 mysql --protocol=TCP 如果服务器配置为接受IPv6连接,则客户端可以使用--host=::1通过IPv6连接到本地服务器。 在Windows上,要强制MySQL客户端使用命名管道连接,请指定--pipe或--protocol=PIPE选项,或将主机名指定为.(点)。如果服务器未启动启用了named_pipe系统变量以支持命名管道连接,或者连接的用户不是named_pipe_full_access_group系统变量指定的Windows组的成员,则会发生错误。如果不想使用默认的管道名称,请使用--socket选项指定管道的名称。 与远程服务器的连接使用TCP/IP。此命令使用默认端口号(3306)连接到运行在remote.example.com上的服务器: mysql --host=remote.example.com 要明确指定端口号,请使用--port或-P选项: mysql --host=remote.example.com --port=13306 您也可以为本地服务器指定端口号。但是,如前所述,Unix上的localhost连接默认使用套接字文件,因此除非您强制使用TCP/IP连接,否则任何指定端口号的选项都将被忽略。 对于此命令,程序在Unix上使用套接字文件,--port选项被忽略: mysql --port=13306 --host=localhost 要使用端口号,请强制使用TCP/IP连接。例如,以以下任一方式调用程序: mysql --port=13306 --host=127.0.0.1 mysql --port=13306 --protocol=TCP 可以在每次调用客户端程序时在命令行上输入连接参数,也可以在不输入它们的情况下指定连接参数: 1、在选项文件的[client]部分中指定连接参数。文件的相关部分可能如下所示: [client] host=host_name user=user_name password=password 2、某些连接参数可以使用环境变量指定。例如: 要为mysql指定主机,请使用MYSQL_HOST。 在Windows上,要指定MySQL用户名,请使用USER。
返回至“
使用命令选项连接到MySQL服务器
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息