mysql本地主机shared_mysql8 参考手册--使用命令选项连接到MySQL服务器

本文详细讲解了如何通过mysql客户端连接MySQL服务器,包括连接参数的默认值、覆盖方法,以及Unix与Windows系统的不同连接行为。重点介绍了主机名、用户名、密码、数据库选择和连接类型的选择技巧。
摘要由CSDN通过智能技术生成

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

这里的示例使用mysql客户端程序,但同样适用于其他客户端,例如 mysqldump,mysqladmin或 mysqlshow。

在不指定任何显式连接参数的情况下调用mysql:

mysql

由于没有参数选项,因此将应用默认值:

默认主机名是localhost。在Unix上,它具有特殊的含义,如下所述。

Windows上默认用户名ODBC在,在Unix上是你登录系统的名字。

因为没有 --password或 -p给出,无密码被发送。

对于mysql,第一个nonoption参数用作默认数据库的名称。因为没有这样的参数,所以mysql无法选择默认数据库。

要明确指定主机名和用户名以及密码,请在命令行上提供适当的选项。要指定数据库,请添加数据库名称参数。例子:

mysql --host=localhost --user=myname --password=password mydb

mysql -h localhost -u myname -ppassword mydb

对于密码选项,密码值是可选的:

如果使用--password或 -p选项并指定密码值,则 --password=或-p与后面的密码之间 不能有空格。

如果您使用--password或 -p但未指定密码值,则客户端程序会提示您输入密码。输入密码时不会显示。这比在命令行上输入密码更为安全,因为这样做可能使系统上的其他用户通过执行诸如ps或history之类的命令来查看密码行。

要明确指定没有密码,并且客户端程序不应提示输入密码,请使用该 --skip-password 选项。

在某些系统上,MySQL用于提示输入密码的例程会自动将密码限制为八个字符。该限制是系统库的属性,而不是MySQL的属性。在内部,MySQL对密码的长度没有任何限制。要解决受其影响的系统的限制,请在选项文件中指定密码。另一个解决方法是将您的MySQL密码更改为八个字符或更少字符的值,但这可能是不可接受的,因为较短的密码往往不太安全。

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

1、如果未指定主机或为 localhost,则会与本地主机的连接:

在Windows上,如果服务器是在shared_memory启用了支持共享内存连接的系统变量的情况下启动的,则客户端使用共享内存连接进行连接。

在Unix上,MySQL程序特别对待主机名localhost ,与其他基于网络的程序相比,它可能与您期望的方式不同:客户端使用Unix套接字文件进行连接。该--socket 选项或MYSQL_UNIX_PORT 环境变量可用于指定套接字名称。2、 在Windows上,如果host是. ,或者未启用TCP/IP 且--socket未指定或主机为空,则如果服务器在named_pipe启用系统变量的情况下启动以支持named-pipe(命名管道)连接,则客户端使用命名管道进行连接。如果不支持命名管道连接,或者建立连接的用户不是named_pipe_full_access_group 系统变量指定的Windows组的成员, 则会发生错误。

3、否则,连接将使用TCP / IP。

--protocol选项使您可以建立特定类型的连接,即使其他选项使用其他协议也是如此。也就是说, --protocol明确指定连接协议,并覆盖前面的规则,即使对于localhost。

仅使用或选中与所选协议相关的连接选项,其他连接选项将被忽略。例如,在Unix上用--host=localhost,客户端尝试使用Unix套接字文件连接到本地服务器,即使给定了--port或-P选项来指定端口号 。

为确保客户端与本地服务器建立TCP/IP连接,请使用--host或 -h将主机名值指定为 127.0.0.1,或者使用本地服务器的IP地址或名称。您还可以在localhost的情况下通过使用该--protocol=TCP选项来显式指定连接协议。例子:

mysql --host=127.0.0.1

mysql --protocol=TCP

如果服务器配置为接受IPv6连接,则客户端可以使用来通过IPv6连接到本地服务器 --host=::1。

在Windows上,您可以通过指定--pipeor --protocol=PIPE选项或通过指定.(句点)作为主机名来强制MySQL客户端使用命名管道连接 。如果服务器不是在 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

每次调用客户端程序时,都可以不在命令行上输入连接参数的情况下指定连接参数:

在[client]选项文件的部分中指定连接参数 。文件的相关部分可能如下所示:

[client]

host=host_name

user=user_name

password=password

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

要指定mysql的主机,请使用 MYSQL_HOST。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值