首页 > 数据库 >MYSQL SHELL 到底是个什么局 剑指 “大芒果”

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

时间:2023-06-22 13:06:36浏览次数:34  
标签:shell get 芒果 MONGODB mysql mySession SHELL MYSQL


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

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

双击mysqlsh

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

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

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

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

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

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

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

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

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

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

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

然后就进来了。

\connect -mc shell:[email protected]:3306

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

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

from mysqlsh import mysqlx
mySession = mysqlx.get_session('shell:[email protected]')
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_08

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

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

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

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

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

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

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

下面看几个CRUD 的例子

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

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 文档有怎样

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

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 操作的根本语言。

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

在看看 X DevAPI 的help 。

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

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

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

标签:shell,get,芒果,MONGODB,mysql,mySession,SHELL,MYSQL
From: https://blog.51cto.com/u_14150796/6534665

相关文章

  • MYSQL 8 从PS说起,但不止于PS , 不在使用淘汰的慢查询日志,那我怎么查慢查询(6)...
    这是关于MYSQL8获取信息的方式的第六篇,终于到达了慢日志查询的位置,在MYSQL的DBA的管理员的心目中,pt-query-digest和SLOWQUERYLOG是分析慢查询的唯一的方式。实际上在MYSQL8中这样的慢查询的数据获取方式,已经被淘汰了,或者说不合时宜了。主要的原因是获取信息的时效性的问题......
  • MYSQL 从performance_schema说起,但不止于PS (1)
    以下的内容,希望你的环节是在8.011以上的环境中操作,部分需要在8.018以上环境操作MYSQL如果你在使用MYSQL8的版本,那么performanceschema的确的重新认识一下了。在重新认识mysql的performance_schema之前我们有一些需要在强化的知识。分别是threads,instruments,consume......
  • MYSQL 从performance_schema说起,但不止于PS ,sys 到 information_schema?(4)
    接着上期sys库的内容,sys库的监控的内容基本上可以满足大部分对于性能分析的需求,SYS库中的信息可以分为2种数据展示的方式,和10+种的信息展示类别。我们下面来说一说。基于ORACLE的设计理念,SYS库中的信息分为一X$为开头的VIEW的信息和以普通表名为开头的信息。两者的信息内容是相......
  • POSTGRESQL VS MYSQL 到底那个数据库 RDS 技术含量高 ?
    以下内容纯属个人看法云数据库的RDS产品,在传统开源的系列里面大致可以选择的是POSTGRESQL和MYSQL两种,诚然在RDS的里面大部分产品最终的选择还是MYSQL,今天不想讨论产品的量,而是想讨论以下产品的难度,RDS产品在POSTGRESQL和MYSQL两种产品的难度问题。先说结果,POSTGRESQL......
  • MYSQL 8 UNDO 表空间 你了解多少
    UNDOLOG的主要目的是完成事务回滚和MVCC多版本控制中的读取过去事务的问题。UNLOG这里有三个层次的问题 1  undolog存在于undo log 的日志段中2 undolog的日志段存在于undolog的回滚段中3  unloglog的回滚段存在于undo 表空间和全局临时表空间中这里提到为......
  • MYSQL performance_schema 不显示信息 和调整 performance_schema 的配置
    随着问问题的同学越来越多,公众号内部私信回答问题已经很困难了,所以建立了一个群,关于各种数据库的问题都可以,目前主要是POSTGRESQL,MYSQL,MONGODB,POLARDB,REDIS等,最近在某云使用了MYSQLRDS产品,说实话不怎么满意,和他家的其他产品比较我到时更原因使用PG的产品和云原生产品......
  • MYSQL POLARDB 学习系列之 拆解 POLARDB 7 (终结) 失败恢复与可靠性
    随着问问题的同学越来越多,公众号内部私信回答问题已经很困难了,所以建立了一个群,关于各种数据库的问题都可以,目前主要是POSTGRESQL,MYSQL,MONGODB,POLARDB,REDIS,SQLSERVER等,期待你的加入,学习POLARDB已经有3-4个月的时间了,当然大部分还是在理论方面,实际上POLARDB在实际的操......
  • Mysql 8 VS Mariadb 10.6 他们有多不一样 (声译)
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql ,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。首先要说明一点的,Mariadb不是MySQL,虽然他们有同一个历史的渊源,以及曾经类似的底层的代码,功能等等。但是MYSQL<> Mariadb......
  • MYSQL 删除数据是非多,8.030 还是有死锁
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。我这个人说问题愿意是感性+理性,首先需要感性认知,我们先来看一个下面的问题,在说这个问题之前,我们先将一些问题说明。1数据库版本......
  • Polardb 如何替换MYSQL 之 IMCI 列式(1)建立一个列式引擎
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。讲了那么多期,都是在力量上进行论述,本期开始进入到正式的POALRDB的内部操作中,POLARDB与MYSQL在登录中最大的不同是,你可以通过代......