如果在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 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!