MySQL Shell教程

打印 上一主题 下一主题

主题 1617|帖子 1617|积分 4851

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、简介

MySQL Shell是MySQL的高级客户端和代码编辑器。它除了根本的SQL功能外,还提供一套使用Javascript和Python的API去管理MySQL。能使用它提供的XDevAPI操纵MySQL 8.0提供的关系型数据库和文档数据库,还可以使用AdminAPI管理InnoDB集群。
二、特点



  • 支持使用Javascript、Python、SQL三种方式操纵数据库
  • 支持交互式代码执行
  • 批处理代码执行
  • AdminAPI能管理MySQL实例、InnoDB集群、Innodb副本集、MySQL Cluster、MySQL Router
  • XDevAPI能管理RDS和NOSQL
  • 输出格式化
  • 日志和调试
  • 全局Session
三、 MySQL Shell 命令

命令别名形貌\help\h or ?打印帮助或查询在线帮助\quit\q or \exit退出\在SQL模式,开启多行命令模式。\status\s显示当前mysql shell状态\js切换到Javascript模式\py切换到Python模式\sql切换到SQL模式\connect\c连接MySQL服务器\reconnect重连MySQL服务器\disconnect断开全局Session\use\u指定要使用的模式\source. or source执行脚本文件使用激活语言\warnings\W显示告诫\nowarnings\w不显示告诫\history显示编辑过的命令\rehash手动更新缓存自动完成的名字\option查询或更改MySQL Shell配置项\show使用提供的选项和参数运行执行的报告\watch使用提供的选项和参数运行指定的报告,并定期刷新效果。\edit\e在默认系统中打开一个命令,然后在MySQL Shell中显示它\pager\P配置MySQL Shell显示文本\nopaper禁用MySQL Shell显示\system!运行指定操纵系统命令在MySQL Shell中显示

  • AdminAPI - 提供全局对象dba来管理InnoDB集群和副本集。
  • X DevAPI - 提供mysqlx模块管理文档存储
  • ShellAPI - 提供全局对象shell和util,以及mysql模块来执行SQL语句
1、connect、reconnect、disconnect

使用\connect命令连接MySQL服务器,例如:
  1. \connect root@localhost:3306
复制代码
使用 --mysqlx 选项通过X Protocol连接MySQL服务器,例如:
  1. \connect --mysqlx root@localhost:3306
复制代码
使用 --mysql 选项通过传统方式连接MySQL服务器,例如:
  1. \connect --mysql root@localhost:3306
复制代码
2、Status

使用 \status 命令查询当前全局连接的信息,包罗服务器连接、字符集、运行时长等。
3、Source

\source 在MySQL Shell被用来执行脚本文件,例如:
  1. \source /tmp/data.sql
复制代码
在执行脚本文件前需检查当前模式是否和脚本语言匹配。
4、Use

使用 \use 命令切换数据库,例如:
  1. \use schema_name
复制代码
5、History

使用 \history 管理在MySQL Shell中使用的命令,例如:


  • \history save 保存历史命令
  • \history delete 删除历史命令
  • \history delete firstnumber-lastnumber 删除多少行到多少行的命令
  • \history delete number- 删除从多少行开始后的命令
  • \history delete -number 删除从头到多少行的命令
  • \history 清算历史命令
6、Option

\option 命令能使你查询和更改MySQL Shell配置项。
7、Pager

配置MySQL Shell使用扩展导航读取更长输出,如在线帮助和SQL查询效果。
8、Show Watch

\show 命令运行执行的报告,这个可以使MySQL Shell的报告或用户定义报告。\watch 命令显示指定的报告。
9、Edit

\edit 命令打开系统默认的编辑器
10、System

\system 命令在操纵系统上运行。
四、全局对象

在启动MySQL Shell可以使用内置的全局对象,分别是:


  • dba 管理MySQL实例、集群、副本集
  • mysql 管理传统SQL模式
  • mysqlx 管理X协议支持RDS和NoSQL
  • shell 提供访问各种MySQL Shell函数

    • shell.option 管理MySQL Shell配置
    • shell.reports 管理用户定义的MySQL Shell配置

  • util 工具包
  • cluster InnoDB
  • rs 副本集
  • db 可用在环球建立了会话使用X协议连接指定一个默认的数据库和模式的代表。
五、启动MySQL Shell

使用 mysqlsh 启动MySQL Shell,例如:
  1. > mysqlsh
复制代码
通过X Protocol连接MySQL服务器
  1. > mysqlsh
  2. --mysqlx -u root -h localhost -P 33060
复制代码
使用传统模式连接MySQL服务器
  1. > mysqlsh
  2. --uri mysql://user@localhost:3306> mysqlsh
  3. mysql://user@localhost:3306> mysqlsh
  4. --mysql --uri user@localhost:3306
复制代码
启动MySQL Shell后连接MySQL服务器
  1. mysql-js> \connect mysqlx://user@localhost:33060
  2. mysql-js> \connect --mysqlx user@localhost:33060
  3. mysql-js> shell.connect('mysqlx://user@localhost:33060')
  4. mysql-js> shell.connect( {scheme:'mysqlx', user:'*user*', host:'localhost', port:33060} )
复制代码
六、在Javascript和Python模式中使用脚本对象

在JS和PY模式下可以使用mysqlx和mysql对象(全局对象),使用getSession函数可以获取一个session对象,例如:
  1. mysql-js> var s1 = mysqlx.getSession('user@localhost:33060', 'password')
  2. mysql-js> var s2 = mysql.getClassicSession('user@localhost:33060', 'password')
  3. mysql-js> var s3 = shell.open_session('mysqlx://user@localhost:33060?compression=required', 'password')
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表