本手册下载

2.1数据库连接举例

连接到MySQL文档存储所需要的代码看起来很像传统的MySQL连接代码,但是现在应用程序可以建立逻辑会话到运行X Plugin的MySQL服务器实例。会话由mysqlx返回的会话可以封装对一个或多个运行X Plugin的MySQL服务器实例的访问。默认情况下使用Session对象的应用程序可以部署在单个服务器设置和数据库集群上,无需更改代码。

创建一个X DevAPI会话mysqlx.getSession(连接)方法。您传入连接参数以连接到MySQL服务器,例如主机名和用户,非常像一个经典api中的代码。例如,可以将连接参数指定为URI类型字符串用户:@localhost: 33060,或者作为一个数据字典{用户:myuser,密码:mpassword,主机:example.com,端口:33060}.看到使用类似uri的字符串或键值对连接到服务器为更多的信息。

用于连接的MySQL用户帐户应该使用mysql_native_passwordcaching_sha2_password身份验证插件,看到可插入身份验证.你要连接的服务器应该启用加密连接,这是MySQL 8.0的默认设置。这确保客户端使用X协议平原密码机制,它适用于使用任何一种身份验证插件的用户帐户。如果试图连接到未启用加密连接的服务器实例,则对于使用mysql_native_password试图使用插件身份验证MYSQL41首先,对于使用的用户帐户caching_sha2_password身份验证将退回到SHA256_MEMORY

下面的示例代码展示了如何连接到MySQL服务器并从my_collection具有该字段的集合的名字l.这个例子假设一个模式被调用测验存在,my_collection集合的存在。要使示例工作,请替换用户与您的用户名,和密码和你的密码。如果您连接到不同的主机或通过不同的端口,请将主机更改为本地主机和港口33060

MySQL Shell JavaScript代码

Var mysqlx = require('mysqlx');//连接到服务器的localhost var mySession = mysqlx。getSession({主机:'localhost',端口:33060,用户:'用户',密码:'密码'});var myDb = myssession . getschema('测试');//使用集合'my_collection' var myColl = myDb.getCollection('my_collection');//使用collect .find()指定要查找的文档,使用.execute() var myDocs = myColl从数据库中获取文档。找到(名称:param) .limit(1)。bind(“参数”,' L % ') . execute ();//打印文档打印(myDocs.fetchOne());mySession.close ();

MySQL Shell Python代码

从mysqlsh导入mysqlx #连接到服务器Get_session ({'host': 'localhost', 'port': 33060, 'user': 'user', 'password': '密码'}) myDb = myssession .get_schema('test') #使用集合'my_collection' myColl = myDb.get_collection('my_collection') #使用collection .find()指定要查找哪个文档,并使用.execute() myDocs = myColl从数据库中获取它。找到(名称:param) .limit(1)。绑定('param', 'L%').execute() #打印文档文档= myDocs.fetch_one()打印(文档)myssession .close()

node . js JavaScript代码

Var mysqlx = require('@mysql/xdevapi');//连接到服务器的localhost mysqlx .getSession({用户:'用户',密码:'密码',主机:'localhost',端口:'33060'}).then(函数(会话){var db = session. getschema('测试');//使用集合'my_collection' var myColl = db.getCollection('my_collection');//指定要查找的文档与Collection.find()和//获取它从数据库与.execute()返回myColl .find('名称类似:param') .limit(1) .bind('param', 'L%') .execute(function (doc) {console.log(doc);});}) .catch(函数(err){//处理错误});

c#代码

//连接到localhost上的服务器var mySession = MySQLX.GetSession("server=localhost;port=33060;user=user;password=密码;“);var myDb = myssession . getschema("测试");//使用集合“my_collection”var myColl = myDb.GetCollection(“my_collection”);//使用collect . find()指定要查找的文档,使用. execute () var myDocs = myColl从数据库中获取文档。找到(“名字:param”).Limit (1) .Bind(“参数”、“L %”). execute ();//打印文档Console.WriteLine(myDocs.FetchOne());mySession.Close ();

Python代码

my_session = mysqlx连接到服务器。get_session({'host': 'localhost', 'port': 33060, 'user': 'user', 'password': 'password'}) my_schema = my_session.get_schema('test') #使用集合'my_collection' my_coll = my_schema.get_collection('my_collection') #使用collection .find()指定查找哪个文档,并使用.execute() docs = my_coll从数据库中获取它。找到(名称:param) .limit(1)。绑定('param', 'L%').execute() #打印文档doc = docs.fetch_one()打印(doc) my_session.close()

Java代码

进口com.mysql.cj.xdevapi。*;//连接到服务器上的localhost Session myssession = new SessionFactory().getSession("mysqlx://localhost:33060/test?user=user&password=password");Schema myDb = myssession . getschema ("test");//使用集合'my_collection'集合myColl = myDb.getCollection("my_collection");//使用collect .find()指定要查找的文档,使用.execute() DocResult myDocs = myColl从数据库中获取文档。找到(“名字:param”).limit(1)。绑定(“参数”、“L %”). execute ();//打印文件System.out.println(myDocs.fetchOne());mySession.close ();

c++代码

#include  //作用域控制对象的生命周期,如会话或模式{会话的sess("localhost", 33060, "user", "password");db模式= sess.getSchema(“测试”);//或Schema db(sess, "test");集合myColl = db.getCollection(“my_collection”);//或集合myColl(db, "my_collection");DocResult myDocs = myColl。找到(“名字:param”).limit (1) .bind(“参数”、“L %”). execute ();cout < < myDocs.fetchOne ();}