10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

MySQL 8.0参考手册/.../ 使用命令选项连接MySQL服务器

4.2.4使用命令选项连接MySQL服务器

本节描述如何使用命令行选项来指定如何建立到MySQL服务器的连接mysql, mysqldump.有关使用类似uri的连接字符串或键-值对(针对MySQL Shell等客户机)建立连接的信息,请参见第4.2.5节“使用类似uri的字符串或键-值对连接到服务器”.有关无法连接的其他信息,请参见第6.2.21节“连接MySQL的故障排除”

客户端程序要连接到MySQL服务器,必须使用正确的连接参数,例如服务器运行的主机名以及MySQL帐户的用户名和密码。每个连接参数都有一个默认值,但是您可以根据需要使用在命令行或选项文件中指定的程序选项覆盖默认值。

这里的示例使用mysql客户端程序,但原则适用于其他客户端,如, mysqldumpmysqladmin,或mysqlshow

这个命令调用mysql不指定任何显式连接参数:

mysql

因为没有参数选项,所以使用默认值:

  • 默认主机名为本地主机.在Unix上,这有一个特殊的含义,稍后会介绍。

  • 默认用户名为ODBC或者在Unix上使用您的Unix登录名。

  • 没有发送密码,因为两者都没有——密码也不- p是给定的。

  • mysql,第一个非选项参数被用作默认数据库的名称。因为没有这样的论证,mysql不选择默认数据库。

要显式指定主机名和用户名以及密码,请在命令行上提供适当的选项。要选择默认数据库,请添加一个database-name参数。例子:

Mysql——host=localhost——user=myname——password=密码Mydb mysql -h localhost -u myname -p密码mydb

对于密码选项,password值为可选:

  • 如果你使用——密码- p选项并指定密码值时,必须有没有空间之间的——密码=- p还有后面的密码。

  • 如果你使用——密码- p但是不指定密码值,客户端程序会提示您输入密码。输入时不显示密码。这比在命令行上给出密码更安全,后者可能使系统上的其他用户能够通过执行诸如ps.看到第6.1.2.1节“密码保安最终用户指引”

  • 要显式指定没有密码且客户机程序不应提示输入密码,请使用——skip-password选择。

如前所述,在命令行中包含密码值会带来安全风险。要避免此风险,请指定——密码- p选项,不包含以下密码值:

Mysql——host=localhost——user=myname——password mydb Mysql -h localhost -u myname -p mydb

——密码- p选项,但没有密码值,则客户机程序将打印一个提示并等待您输入密码。(在这些例子中,mydb因为它与前面的密码选项用空格隔开,所以被解释为密码。)

在某些系统上,MySQL用来提示输入密码的库例程会自动将密码限制为8个字符。这个限制是系统库的属性,而不是MySQL的属性。在内部,MySQL对密码的长度没有任何限制。要解决受其影响的系统上的限制,请在一个选项文件中指定您的密码(参见第4.2.2.2节“使用选项文件”).另一种解决方法是将MySQL密码更改为8个字符或更少的字符,但这样做的缺点是较短的密码往往不太安全。

客户端程序确定要进行的连接类型如下:

  • 如果主机未指定或为本地主机,连接到本地主机:

    • 在Windows上,如果服务器是用shared_memory已启用支持共享内存连接的系统变量。

    • 在Unix上,MySQL程序处理主机名本地主机特别是,与其他基于网络的程序相比,这种方式可能与您所期望的不同:客户端使用Unix套接字文件进行连接。的——套接字选择或MYSQL_UNIX_PORT环境变量可用于指定套接字名称。

  • 在Windows上,如果宿主(周期),或者未启用TCP/IP协议——套接字未指定或主机为空,则如果服务器是用named_pipe系统变量已启用,支持命名管道连接。控件指定的Windows组的成员,或者进行连接的用户不是该Windows组的成员named_pipe_full_access_group系统变量,出现错误。

  • 否则,连接使用TCP/IP。

——协议选项使您能够使用特定的传输协议,即使其他选项通常导致使用不同的协议。也就是说,——协议显式指定传输协议,并覆盖前面的规则,甚至for本地主机

只使用或选中与所选传输协议相关的连接选项。其他连接选项将被忽略。例如,使用——主机= localhost在Unix上,客户端尝试使用Unix套接字文件连接到本地服务器,即使一个——港口- p选项指定TCP/IP端口号。

要确保客户机与本地服务器建立TCP/IP连接,请使用——主机- h的值指定主机名127.0.0.1(而不是本地主机),或本地服务器的IP地址或名称。您还可以显式指定传输协议,甚至for本地主机,可使用——= TCP协议选择。例子:

mysql——host=127.0.0.1 mysql——protocol=TCP

如果配置服务器接受IPv6连接,客户端可以使用IPv6方式连接到本地服务器——主机=::1.看到第5.1.13节,“IPv6支持”

在Windows上,要强制MySQL客户端使用命名管道连接,请指定——管——协议=管选项,或指定(句号)作为主机名。参数未启动服务器named_pipe方法指定的Windows组的成员,则启用system变量来支持命名管道连接,或者如果进行连接的用户不是named_pipe_full_access_group系统变量,出现错误。使用——套接字选项指定管道的名称(如果不希望使用默认管道名称)。

到远程服务器的连接使用TCP/IP。此命令连接到正在运行的服务器remote.example.com使用默认端口号3306:

mysql——主机= remote.example.com

要显式指定端口号,请使用——港口- p选择:

mysql——主机= remote.example.com——端口= 13306

您还可以为连接到本地服务器指定端口号。然而,如前所述,连接到本地主机在Unix上默认使用套接字文件,因此除非您像前面描述的那样强制建立TCP/IP连接,否则任何指定端口号的选项都会被忽略。

对于这个命令,程序使用Unix上的套接字文件和——港口选择将被忽略:

mysql——端口= 13306主机= localhost

如果要使用该端口号,需要强制建立TCP/IP连接。例如,用以下任一种方式调用程序:

mysql——port=13306——host=127.0.0.1

有关控制客户机程序如何建立到服务器的连接的选项的更多信息,请参见第4.2.3节“连接到服务器的命令选项”

可以指定连接参数,而不必在每次调用客户端程序时在命令行输入它们:

  • 中指定连接参数(客户端)部分的选项文件。文件的相关部分可能如下所示:

    (客户端)主机=host_name用户=user_name密码=密码

    有关更多信息,请参见第4.2.2.2节“使用选项文件”

  • 一些连接参数可以使用环境变量指定。例子:

    • 指定主机mysql,使用MYSQL_HOST

    • 在Windows上,要指定MySQL用户名,请使用用户

    有关支持的环境变量的列表,请参见第4.9节,“环境变量”