【mysql进阶】1-3. mysql - MySQL 命令⾏客⼾端

mysql - MySQL 命令⾏客⼾端

1. mysql 客⼾端简介

  • mysql是⼀个简单的 SQL shell, 可以输⼊命令和执⾏SQL语句,当执⾏SQL语句时,查询结果以ASCII 表格式显⽰
  • mysql的基本使⽤⾮常简单,回顾⼀下连接数据库的⽅式,打开终端并输⼊以下命令:
shell 复制代码
# 连接MySQL服务器,⻓选项格式
mysql --user=user_name --password [db_name]
# 短选项格式
mysql -uuser_name -p [db_name]
# 输⼊密码
Enter password: your_password

2. mysql 客⼾端选项

2.1 指定选项的⽅式

  • 在mysql后⾯的命令⾏中列出选项

  • 在mysql后⾯指定配置⽂件的路径,以便在程序启动时读取配置⽂件中的选项

  • 使⽤环境变量中的选项

2.2 mysql 客⼾端命令常⽤选项

选项--⻓格式 短格式 说明
--host -h --host=host_name , -hhost_name 连接到指定主机上的 MySQL 服务
--port -P --port=port_num , -Pport_num TCP/IP 连接使⽤的端⼝号
--user -u --user=user_name , -uuser_name⽤于连接到MySQL 服务器的⽤⼾名
--password -p --password=*password* , -p*password*⽤于连接到MySQL 服务器的密码。可选,如果没有给出, 会提⽰⽤⼾输⼊
--defaults-file --defaults-file=file_name使⽤指定的选项⽂件。如果该⽂件不存在,则会发⽣错误。
--default-character-set --default-character-set=charset_name charset_name 将作为客⼾端和当前连接的默认字符集,例: utf8mb4
--database -D --database=db_name , -Ddb_name要使⽤的数据库
--compress -C --compress , -C 如果可能,压缩客⼾端和服务器之间传输的所有信息
--reconnect --reconnect 如果客⼾端与服务器的连接丢失,⾃动尝试重新连接
--quick -q --quick , -q 不缓存查询结果,收到⼀⾏打印⼀⾏,如果输出被挂起,可能会降低服务器速度
--protocol --protocol={TCP|SOCKET|PIPE|MEMORY} ⽤于连接到服务器的传输协议, 默认为TCP
--delimiter --delimiter=str 设置SQL语句分隔符。默认值为分号 ( ; )
--execute -e --execute=statement , -e statement 执行指定sql语句退出
--version -V --version , -V 显⽰版本信息并退出。
--help -? --help , -? 显示帮助信息并退出

2.3 在命令⾏中使⽤选项

命令⾏中指定选项遵循以下规则:

  • 选项应在程序名之后给出
  • 选项以单破折号" - "或双破折号" -- "号开头, - 表⽰短格式, -- 表⽰⻓格式,例如:-?和 --help 都表⽰MySQL 程序显⽰他的帮助消息
  • 选项名称区分⼤⼩写。 -v 和 -V 都是合法的,但含义不同,它们分别是 --verbose 和 --version 选项的相应缩写形式
  • 某些选项需要在后⾯指定⼀个值。例如, -h 127.0.0.1 或 --host=127.0.0.1 表⽰向客⼾端程序指定 MySQL 服务器主机
  • 对于带值的⻓格式选项,通常⽤ = 符号分隔选项名称和值。对于带值的短选项,选项值可以紧跟在选项之后,也可以⽤空格隔开,例如: --host=127.0.0.1 、 -h127.0.0.1 和 -h 127.0.0.1 是等价的。 但是对于密码选项的短格式,如果要指定密码,选项与值之间不能有空格,如下所⽰:

tips

在命令⾏中,第⼀个不带破折号 - 的值被解析为要访问的数据库名,所以 --database 选项⼀般可以省略

  • 在选项名称中,破折号 ( - ) 和下划线 ( _ ) 在⼤多数情况下可以互换使⽤,但前导破折号不能转为下划线,例如: --skip-grant-tables 和 --skip_grant_tables 是等价的。
  • 对于采⽤数值的选项,该值可以带有后缀 K , M 或 G 以指⽰乘数 1024、1024^2或 1024^3,例如,以下命令告诉 mysqladmin对服务器执⾏ 1024 次 ping,每次 ping 之间休眠 3 秒
shell 复制代码
mysqladmin --count=1K --sleep=3 ping -uroot -p
  • 在命令⾏中包含空格的选项值必须⽤引号引起来。例如, --execute (or -e ) 选项与mysql⼀起使⽤时,表⽰将⼀个或多个 SQL 语句发送给服务器执⾏并显⽰结果

3. 选项(配置)⽂件

⼤多数 MySQL 程序都可以从选项⽂件(配置⽂件)中读取启动选项。可以在选项⽂件中指定常⽤选项,这样就不⽤在每次运⾏程序时都在命令⾏中输⼊它们。⼤部分选项⽂件都是纯⽂本格式,可以使⽤任何⽂本编辑器创建。

3.1 使⽤⽅法

选项 --defaults-file 可以指定要使⽤的选项⽂件,客⼾端程序会读取并应⽤选项⽂件中的相关配置

3.2 选项⽂件位置及加载顺序

MySQL 按以下表格中的顺序查找并读取选项⽂件。如果⽂件不存在则需要⼿动创建。读取顺序从上到下,后读取的⽂件中配置的选项优先级越⾼

3.2.1 在 Windows 系统读取选项⽂件
  • %WINDIR% 表⽰ Windows ⽬录的位置,可以通过命令查看
  • BASEDIR 表⽰ MySQL 的安装⽬录
  • %APPDATA% 表⽰应⽤程序数据的⽬录
  • DATADIR 代表MySQL数据⽬录
shell 复制代码
C:\ProgramData\MySQL\MySQL Server 8.0

TIPS:

使⽤ MySQL Installer 安装MySQL成功后, my.ini 默认在该⽬录下。

3.2.2 在 Unix 和 Linux 系统上读取的选项⽂件
  • ~ 表⽰当前⽤⼾的主⽬录

  • MYSQL_HOME 是设置的环境变量路径

  • DATADIR 代表MySQL数据⽬录

3.3 选项⽂件语法

  • 运⾏ MySQL 程序时在命令⾏上指定的任何⻓选项都可以在选项⽂件中指定,要获取选项列表可以使⽤如下命令
  • 选项⽂件中指定选项时,省略两个前导破折号,并且每⼀⾏表⽰⼀个选项
  • 选项⽂件中的空⾏会被忽略。⾮空⾏可以采⽤以下任何形式:
    • #comment , ;comment
      • 注释⾏以 # 或 ; 开,注释可以从⼀⾏的中间开始
    • *group*

      • 设置选项的程序或组的名称,不区分⼤⼩写。如果选项组名称与程序名称相同,则组中的选项专⻔应⽤于该程序,例如, mysqldmysql 组分别适⽤于mysqld服务端程序和mysql客⼾端程序
    • opt_name
      • 相当于命令⾏上的选项名
    • opt_name = value
      • 选项名对应的值,可以使⽤转义序列 \b , \t , \n , \r , \ 和 \s 来表⽰退格符、制表符、换⾏符、回⻋符、反斜杠和空格字符
  • client MySQL发⾏版中所有客⼾端程序都会读取并应⽤这个组下的选项(除了mysqld),在这个组下可以指定适⽤于所有客⼾端程序的通⽤选项,例如配置⽤⼾名和密码(但要确保只有⾃⼰才可以访问这个⽂件以防⽌密码泄漏)
  • 可以通过 客⼾端程序名 的形式为不同的客⼾端程序指定选项,例如 mysql ,当运⾏mysql程序时会读取并应⽤该组下的配置,如果选项名与 client 重复, client 中的选项将会被覆盖
  • 为特定 MySQL 版本设置选项可以使⽤ mysqld-5.7mysqld-8.0 的组名

  • 在选项⽂件中使⽤ !include 指令来包含其他选项⽂件,例如: !include /home/mydir/myopt.cnf

  • 在选项⽂件中使⽤ !includedir 指令来搜索指定⽬录中的其他选项⽂件,例如: !include /home/mydir ,但不保证⽬录中选项⽂件的读取顺序

  • 在 Windows中请确保在配置⽂件的最后⼀⾏加⼀个换⾏符,否则该⾏将被忽略

3.4 案例:设置客⼾端全局编码格式

  • 在Linux下编辑全局配置⽂件默认位置 /etc/mysql/my.cnf ,初始内容如下:
  • 在已有内容下⽅输⼊相应的配置,我们要为客⼾端设置全局的编码格式为utf8mb4, 那么在client 节点下指定相应的选项即可

4. mysql 客⼾端命令

  • 使⽤mysql客⼾端程序连接到数据库服务器之后,可以发送SQL语句到服务器执⾏,并以 ";"(分号)、\g 或 \G结束
  • 在当前模式下,mysql还有⼀组⾃⼰的命令,可以输⼊ help or \h 查看命令列表
  • 使⽤help contents命令可以查看关于MySQL数据库使⽤的具体帮助,包括⽤⼾管理、SQL语法、数据类型、组件等相关内容列表
  • 通过help contents中的具体条⽬查看介绍,例如: help Data Types
  • 继续输⼊help 具体的条⽬ 查看关于此条⽬的详细说明,例如:help BIT
相关推荐
无己心1 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u0103055277 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055278 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝9 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055279 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552710 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552712 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552712 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552713 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节
u01030552714 天前
Java模块化编程实战指南
人工智能·笔记·1024程序员节