MySQL程序之:使用命令选项连接到服务器

ops/2025/1/18 13:41:03/

本节介绍如何使用命令行选项来指定如何为mysqlmysqldump等客户端建立到MySQL服务器的连接。有关使用类似URI的连接字符串或键值对建立连接的信息,请参阅“使用类似URI的字符串或键值对连接到服务器”。有关无法连接的其他信息,请参阅“解决连接到MySQL的问题”。

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

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

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

mysql

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

  • 默认主机名是localhost。在Unix上,这有特殊的含义,如后所述。

  • 默认用户名是Windows上的ODBC或Unix上的Unix登录名。

  • 没有发送密码,因为既没有给出--password也没有给出-p。
  • 对于mysql,第一个非选项参数作为默认数据库的名称。因为没有这样的参数,mysql选择没有默认数据库

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

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上,如果host为.(句点),或者TCP/IP未启用,并且未指定--socket或主机为空,则客户端使用命名管道进行连接,如果服务器在启动时启用了named_pipe系统变量以支持命名管道连接。如果不支持命名管道连接,或者建立连接的用户不是named_pipe_full_access_group系统变量指定的Windows组的成员,则会发生错误。

  • 其他,连接使用TCP/IP。

即使其他选项通常会导致使用不同的协议,--Protocol选项也允许您使用特定的传输协议。也就是说,--Protocol明确指定传输协议并覆盖前面的规则,即使是localhost。

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

为确保客户端与本地服务器建立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选项,或指定.(句点)作为主机名。如果启动服务器时未启用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


http://www.ppmy.cn/ops/151104.html

相关文章

【Linux】网络层

目录 IP协议 协议头格式 网段划分 2中网段划分的方式 为什么要进行网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公有IP地址 路由 IP协议 在通信时,主机B要把数据要给主机C,一定要经过一条路径选择,为什么经过路由器G后&…

Spring-boot3.4最新版整合swagger和Mybatis-plus

好家伙,今天终于开始用spring-boot3开始写项目了,以后要彻底告别1.x和2.x了,同样的jdk也来到了最低17的要求了,废话不多说直接开始 这是官方文档的要求jdk最低是17 maven最低是3.6 一. 构建工程,这一步就不需要给大家解释了吧 二. 整合Knife4j 1.大于…

android Recyclerview viewholder统一封装

Recyclerview holder 统一封装 ViewHolder类 import android.annotation.SuppressLint import android.content.Context import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.os.Build import android.os.CountDownTimer import…

【大数据】机器学习-----------贝叶斯分类器

1. 贝叶斯决策论 贝叶斯决策论的核心是基于贝叶斯定理来计算后验概率 (P(c|x)),根据贝叶斯定理: 其中: (P(c|x)) 是后验概率,即在特征 (x) 出现的情况下,样本属于类别 (c) 的概率。(P(x|c)) 是类条件概率&#xff0c…

某国际大型超市电商销售数据分析和可视化

完整源码项目包获取→点击文章末尾名片! 本作品将从人、货、场三个维度,即客户维度、产品维度、区域维度(补充时间维度与其他维度)对某国际大型超市的销售情况进行数据分析和可视化报告展示,从而为该超市在弄清用户消费…

ubuntu的截图工具有哪些

在 Ubuntu 上,有多种截图工具可供选择,以下是一些常用的工具及其使用方法: 1. 内置截图工具 Ubuntu 自带了一个简单的截图工具,可以通过快捷键或应用程序启动。 快捷键: 全屏截图:Print Screen&#xff08…

使用FineBI进行数据分析(入门级)

使用FineBI进行数据分析(入门级) 实验背景 哔哩哔哩,简称 B 站,现为中国年轻世代高度聚集的文化社区和视频平台,该网站于 2009 年 6 月 26 日创建, 2018 年 3 月 28 日在美国纳斯达克上市。早期 B 站是一…

CCLINKIE转ModbusTCP网关,助机器人“掀起”工业智能的“惊涛骇浪”

以下是一个稳联技术CCLINKIE转ModbusTCP网关(WL-CCL-MTCP)连接三菱PLC与机器人的配置案例:设备与软件准备设备:稳联技术WL-CCL-MTCP网关、三菱FX5UPLC、支持ModbusTCP协议的机器人、网线等。 稳联技术ModbusTCP转CCLINKIE网关&…