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

devtools/2025/1/19 5:04:28/

本节介绍如何使用命令行选项来指定如何为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/devtools/151746.html

相关文章

Spring Boot + MyBatis-Flex 配置 ProxySQL 的完整指南

✅ Spring Boot MyBatis-Flex 配置 ProxySQL 的完整指南 下面是一个详细的教程,指导您如何在 Spring Boot 项目中使用 MyBatis-Flex 配置 ProxySQL 进行 读写分离 和 主从同步 的数据库访问。 🎯 目标 在 Spring Boot 中连接 ProxySQL。使用 MyBatis-…

excel 判断某个单元格的日期,如果超过3天,则在另一个单元格显示超过三天的公式

excel 判断某个单元格的日期&#xff0c;如果超过3天&#xff0c;则在另一个单元格显示超过三天的公式&#xff0c;公式如下&#xff1a; IF(DATEDIF(C627,TODAY(),"d")<4,"3天以内","超过三天") IF(D627"超过3天","文件赶紧…

HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (三、影视搜索页功能实现)

在HarmonyOS NEXT开发环境中&#xff0c;可以使用nutpi/axios库来简化网络请求的操作。本文将展示如何使用HarmonyOS NEXT框架和nutpi/axios库&#xff0c;从零开始实现一个简单的影视APP&#xff0c;主要关注影视搜索页的功能实现。 为什么选择nutpi/axios&#xff1f; nutpi…

【深度学习】神经网络灾难性遗忘(Catastrophic Forgetting,CF)问题

文章目录 1. 什么是灾难性遗忘&#xff1f;2. 为什么会存在灾难性遗忘&#xff1f;2.1 网络权重的更新2.2 没有有效的记忆机制2.3 任务间数据分布差异 3. 目前解决方案3.1 弹性权重保持&#xff08;Elastic Weight Consolidation, EWC&#xff09;3.2 其他方法 1. 什么是灾难性…

【专题系列】华为堆叠场景-堆叠无法组建、堆叠异常分裂和堆叠快速升级异常处理

互联网各领域资料分享专区(不定期更新)&#xff1a; Sheet 堆叠无法组建 1、堆叠无法组建&#xff0c;首先排查两侧配置是否正确&#xff0c;主要为 DOMAIN、堆叠端口是否正确。通过 display stack configuration all 来查看。display stack troubleshooting 也能显示常见的配…

2019-腾讯Android面试精选题——谈一谈Binder的原理和实现一次拷贝的流程

####2.2 Linux 下的传统 IPC 通信原理 理解了上面的几个概念&#xff0c;我们再来看看传统的 IPC 方式中&#xff0c;进程之间是如何实现通信的。 通常的做法是消息发送方将要发送的数据存放在内存缓存区中&#xff0c;通过系统调用进入内核态。然后内核程序在内核空间分配内…

重拾Python学习,先从把python删除开始。。。

自己折腾就是不行啊&#xff0c;屡战屡败&#xff0c;最近终于找到前辈教我 第一步 删除Python 先把前阵子折腾的WSL和VScode删掉。还是得用spyder&#xff0c;跟matlab最像&#xff0c;也最容易入手。 从VScode上搞python&#xff0c;最后安装到appdata上&#xff0c;安装插…

【精选】基于EfficientViT优化YOLOv8的智能车辆识别系统设计 车辆颜色分类与车牌检测、深度学习目标检测系统开发

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…