专栏首页AustinDatabasesMYSQL SHELL 到底是个什么局 剑指 “大芒果”

MYSQL SHELL 到底是个什么局 剑指 “大芒果”

如果在WINDOWS上想链接在LINUX上的MYSQL有什么方法,windows上各种GUI,还是打开MYSQL那个原本黑漆漆的小方格。现在你有了新的选,MYSQL Shell 全新的连接MYSQL 的方式,一个满足各种人群连接MYSQL的方式。从官方上下载后,在WINDOWS 上解压后,直接点击执行。

双击mysqlsh

为什么要有mysql shell,这是ORACLE 的一个计划,这个工具支持社区和企业版的MYSQL,首先这个工具并不是只针对DBA,或者说白的,他的对象是更广阔的开发人员和会写程序的DBA们。

下图就是ORACLE 对MYSQL Shell 的定位。

怎么说,如果用过MONGODB的话,就深有体会会JS的优点,操作MONGODB 可以入行云流水一般。,那mysql shell的功能可是要更广,看下图。

原理先不多讲,直接使用, 目前MYSQL Shell 自带了PYTHON3.7 ,以下的案例大部分在 Python中调用一些 MYSQL SHELL 的命令,最后在总结。

打开下载的文件,其中有一个可以执行的文件

双击然后\py, 然后输入 连接 mysql 的连接字符串, \connect -mc 用户名:密码@IP或域名:端口号

然后就进来了。

\connect -mc shell:1234.Com@192.168.198.210:3306

另外下面是一个例子,如何使用 mysql shell 中的 py模块来遍历一下数据库的库名。

from mysqlsh import mysqlx

mySession = mysqlx.get_session('shell:1234.Com@192.168.198.210')

schemaList = mySession.get_schemas()

print('Available schemas in this session:\n')

for schema in schemaList:

print(schema.name)

mySession.close()

写到这里,我个人的感觉没有对这个shell of mysql有一个整体的了解,不了解的原因没有从ORACLE 整体的观点来看这个mysql shell, 他到底要服务于什么人群,目的是什么。

从上面的英文介绍来看,MYSQL SHELL 并不是要替换我们现在常用的已知的方式。MYSQL SHELL 面对的人群

1 程序员,尤其不会写SQL 语句的那些人

2 自动化,或者想他通过程序的方式来自动化管理MYSQL 一部分功能的人

3 将MYSQL 部分管理简单化得人,尤其与集群方面有关(个人感觉,就是要简化操作,继续降低MYSQL 的操作复杂度)

在说白一点,MYSQL的野心是不小的,他首先的目标要开始转向 Document store. 说白了MYSQL 8 要开始分割 MONGODB 的市场,尤其是轻量级使用MONGODB 的那部分,然后你习惯,在依赖。为什么可以从官方给的例子来说的名字,我们只有对MONGODB 的表的称呼叫 collection,看看MYSQL 对二维表格的文档的操作叫什么。

然后就是面对自己的高可用的业务,INNODB CLUSTER 和 Group Replication ,将高可用的方式进一步程序化。

下面看几个CRUD 的例子

from mysqlsh import mysqlx

mySession = mysqlx.get_session({'host': '192.168.198.210', 'port': 33060,'user': 'shell', 'password': '1234.Com'})

myDb = mySession.get_schema('employees')

myTable = myDb.get_table('dept_emp')

myResult = myTable.select(['emp_no', 'dept_no']).limit(1).execute()

print(myResult.fetch_all())

上边是操作普通的表,实际上如果操作 JSON 文档有怎样

from mysqlsh import mysqlx

mySession = mysqlx.get_session({'host': '192.168.198.210', 'port': 33060,'user': 'shell', 'password': '1234.Com'})

myDb = mySession.get_schema('test')

myColl = myDb.create_collection('Mongo_json')

myColl.add({'_id': '1', 'name': 'Laurie', 'age': 19}).execute()

myColl.add({'_id': '2', 'name': 'Nadya', 'age': 54}).execute()

myColl.add({'_id': '3', 'name': 'Lukas', 'age': 32}).execute()

docs = myColl.find('name like :param1 AND age < :param2').limit(1).bind('param1','L%').bind('param2',20).execute()

doc = docs.fetch_one()

print(doc)

myDb.drop_collection('my_collection')

从上边的例子来看,PYTHON 操作下的MYSQL 活脱脱的变成让我有点熟悉的MONGODB

此时脑洞来了忽然理解了,MYSQL 8 真的不简单,不是5.8 是8是有道理的野心不小,MYSQL 再也不是那个“单纯”的孩子。

这是要做一个生态,让MYSQL 借程序员之手,要开始大举进攻 JSON 半结构化得市场,要和谁争地盘不言而喻了。并且这样的方式操作起来,还真叫人喜欢。如果推广开来,那........

因为MYSQL SHELL 并不光支持PYTHON ,还有JS 那是 MONGODB 操作的根本语言。

在看看 X DevAPI 的help 。

本文分享自微信公众号 - AustinDatabases(AustinDatabases),作者:carol11

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MYSQL 8 vs MYSQL 5.7 ORACLE 到底怎么想的? (二)

    1 在MYSQL 5.7 临时表包含了一个 "converting HEAP to on disk", 意思当临时表达到最大的内存使用的限制(一个表一个)16M...

    AustinDatabases
  • “偶遇” 爱可生 与 MYSQL 大型应用

    今天“偶遇” 爱可生的技术人员,经过了两个小时的交流,又重塑的我对大型系统中对MYSQL 的应用, 这绝对不是广告,这绝对不是广告,这绝对不是广告,重要的还的说...

    AustinDatabases
  • MYSQL 8 Serialized Dictionary Information

    随着MYSQL 8 越来越稳定,并且开始使用的人和公司越来越多起来,掌握MYSQL 8 的工具变得越来越重要。不赶到别人前头,那就只能follower.

    AustinDatabases
  • MYSQL 8 vs MYSQL 5.7 ORACLE 到底怎么想的? (二)

    1 在MYSQL 5.7 临时表包含了一个 "converting HEAP to on disk", 意思当临时表达到最大的内存使用的限制(一个表一个)16M...

    AustinDatabases
  • “偶遇” 爱可生 与 MYSQL 大型应用

    今天“偶遇” 爱可生的技术人员,经过了两个小时的交流,又重塑的我对大型系统中对MYSQL 的应用, 这绝对不是广告,这绝对不是广告,这绝对不是广告,重要的还的说...

    AustinDatabases
  • MYSQL 8 Serialized Dictionary Information

    随着MYSQL 8 越来越稳定,并且开始使用的人和公司越来越多起来,掌握MYSQL 8 的工具变得越来越重要。不赶到别人前头,那就只能follower.

    AustinDatabases
  • 009.MySQL-Keepalived搭配脚本03

    木二
  • 人生呀,如梦,MYSQL 8.0.15-5

    人生呀,如梦,我觉得只要不投降,就是成功。(周星驰的电影都是多年后成为经典的,这也许就是一种成功)。MYSQL 其实作为数据库产品,对比其他数据库产品(不管收费...

    AustinDatabases
  • Hey, MYSQL 8 用户管理要不要了解一下!

    这口吻,估计马上就的把电话挂了, 不过MYSQL 8 的用户管理,老手,新人,还是了解一下比较好,当然如果你已经有了 ORACLE ,PG, SQL SERVE...

    AustinDatabases
  • MYSQL数据库设计的一些小技巧[转载]

    常用数据操作语言DML笔记(select insert update delete) select 语句 高级的查询功能,见下面的详细内容 s...

    wangxl

扫码关注云+社区

领取腾讯云代金券