oracle导出 schemas什么意思_MYSQL SHELL 到底是个什么局 剑指 “大芒果”

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

双击mysqlsh

9895068de475e2cc1201a083dd365288.png

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

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

9069a8c4d41ec4226bbef629d069eac5.png

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

4911cf436650f18016e7a72200e8df9e.png

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

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

bbf4805545b516b9e6b344b7dac32dae.png

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

7c9eec24455e16edc7a3ce7ab25f1948.png

然后就进来了。

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

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

112e379356f0c912fc1f95e8253c8aa9.png

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, 他到底要服务于什么人群,目的是什么。

7c7c31d509d1cafb8600fdd16da91347.png

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

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

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

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

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

a6e3e93099757639844e947c3203d52a.png

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

下面看几个CRUD 的例子

c2e6c867216e7422f2e54e36951fa4fe.png

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

72287fe9d9c8aa7efb4ee8958fedcbae.png

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

d360cf3041020fede7cb20f02a1d66e4.png

在看看 X DevAPI 的help 。

906d463e82ce268d0e3c1fc86df7b4bd.png
c5b38abad0273fed65c422d0bad67f9f.png
f34b376def446780b5bee4f803fc2768.png
409bc41f4d71cc8ec617d8d015423a9a.png
2d5fa8c4e07b18b68dd67e557c1118ba.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值