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


    原文链接:https://www.modb.pro/db/22716?cyn

    摘要:如果在WINDOWS上想链接在LINUX上的MYSQL有什么方法,windows上各种GUI,还是打开MYS

    如果在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: ')

    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 。

  • 相关阅读:
    Spring的设计理念和整体架构
    垃圾收集器与内存分配策略(3)
    垃圾收集器与内存分配策略(2)
    实践一次有趣的sql优化
    PHP之static
    PHP之const
    MySQL数据库常用操作
    PHP之__aotoload()自动加载机制
    PHP之类的属性方法重写
    MYSQL工具类简单实现
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13311781.html
Copyright © 2020-2023  润新知