【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 ]
      • 设置选项的程序或组的名称,不区分⼤⼩写。如果选项组名称与程序名称相同,则组中的选项专⻔应⽤于该程序,例如, [mysqld] 和 [mysql] 组分别适⽤于mysqld服务端程序和mysql客⼾端程序
    • opt_name
      • 相当于命令⾏上的选项名
    • opt_name = value
      • 选项名对应的值,可以使⽤转义序列 \b , \t , \n , \r , \ 和 \s 来表⽰退格符、制表符、换⾏符、回⻋符、反斜杠和空格字符
  • [client] MySQL发⾏版中所有客⼾端程序都会读取并应⽤这个组下的选项(除了mysqld),在这个组下可以指定适⽤于所有客⼾端程序的通⽤选项,例如配置⽤⼾名和密码(但要确保只有⾃⼰才可以访问这个⽂件以防⽌密码泄漏)
  • 可以通过 [客⼾端程序名] 的形式为不同的客⼾端程序指定选项,例如 [mysql] ,当运⾏mysql程序时会读取并应⽤该组下的配置,如果选项名与 [client] 重复, [client] 中的选项将会被覆盖
  • 为特定 MySQL 版本设置选项可以使⽤ [mysqld-5.7] 、 [mysqld-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
相关推荐
yaosheng_VALVE11 小时前
探究全金属硬密封蝶阀的奥秘-耀圣控制
运维·eclipse·自动化·pyqt·1024程序员节
dami_king12 小时前
SSH特性|组成|SSH是什么?
运维·ssh·1024程序员节
一个通信老学姐5 天前
专业125+总分400+南京理工大学818考研经验南理工电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
sheng12345678rui5 天前
mfc140.dll文件缺失的修复方法分享,全面分析mfc140.dll的几种解决方法
游戏·电脑·dll文件·dll修复工具·1024程序员节
huipeng9266 天前
第十章 类和对象(二)
java·开发语言·学习·1024程序员节
earthzhang20217 天前
《深入浅出HTTPS》读书笔记(19):密钥
开发语言·网络协议·算法·https·1024程序员节
爱吃生蚝的于勒7 天前
计算机基础 原码反码补码问题
经验分享·笔记·计算机网络·其他·1024程序员节
earthzhang20217 天前
《深入浅出HTTPS》读书笔记(20):口令和PEB算法
开发语言·网络协议·算法·https·1024程序员节
一个通信老学姐8 天前
专业140+总分410+浙江大学842信号系统与数字电路考研经验浙大电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
earthzhang20218 天前
《深入浅出HTTPS》读书笔记(18):公开密钥算法RSA(续)
网络·网络协议·算法·https·1024程序员节