19.2 将 MySQL 设置为文档存储
要将 MySQL 5.7 用作文档存储,需要安装 X 插件。然后,您可以使用 X 协议与服务器进行通信。如果没有运行 X 插件,则 X 协议 Client 端将无法连接到服务器。 X 插件随 MySQL(5.7.12 或更高版本)一起提供-安装它不需要单独下载。本节介绍如何安装 X 插件。
请遵循此处概述的步骤:
- 安装或升级到 MySQL 5.7.12 或更高版本.
installation或升级完成后,启动服务器。有关服务器启动的说明,请参阅第 2.10.2 节“启动服务器”。
Note
MySQL Installer 使您可以同时执行此步骤和下一步(安装 X 插件),以在 Microsoft Windows 上进行新安装。在“插件和扩展程序”屏幕中,选中“启用 X 协议/ MySQL 作为文档存储”复选框。安装后,请确认已安装 X 插件。
- 安装 X 插件. 只要该帐户对
mysql.plugin
table 具有INSERT特权,就可以使用非 root 用户帐户来安装插件。
在重新配置服务器之前,请始终保存您现有的配置设置。
要安装内置的 X 插件,请执行以下任一操作:
-
启动适用于 Windows 的 MySQL Installer。 MySQL Installer 仪 table 板打开。
- 单击“重新配置 MySQL 服务器”快速操作。使用“下一步”和“返回”来配置以下各项:
-
在“帐户和角色”中,确认当前的
root
帐户密码。-
在“插件和扩展”中,选中“启用 X 协议/ MySQL 作为文档存储”复选框。 MySQL Installer 提供一个默认端口号,并打开防火墙端口以进行网络访问。
-
在“应用服务器配置”中,单击“执行”。
-
单击完成以关闭 MySQL 安装程序。
-
-
使用 MySQL Shell:
-
-
打开一个终端窗口(在 Windows 上为命令提示符),然后导航至 MySQL 二进制文件位置(例如,在 Linux 上为
/usr/bin/
)。 -
运行以下命令:
-
mysqlsh -u user -h localhost --classic --dba enableXProtocol
-
使用 MySQLClient 端程序:
-
打开一个终端窗口(在 Windows 上为命令提示符),然后导航至 MySQL 二进制文件位置(例如,在 Linux 上为
/usr/bin/
)。- 调用mysql命令行 Client 端:
mysql -u user -p
- 发出以下语句:
mysql> INSTALL PLUGIN mysqlx SONAME 'mysqlx.so';
对于 Windows,将mysqlx.so
替换为mysqlx.dll
。
Important
mysql.session
用户必须存在,然后才能加载 X 插件。 mysql.session
是在 MySQL 5.7.19 版本中添加的。如果您的数据字典是使用较早版本初始化的,则必须运行mysql_upgrade过程。如果未运行升级,则 X 插件无法启动,并显示错误消息尝试使用用户 mysql.session@localhost 访问服务器时发生错误。确保服务器中存在该用户,并且服务器更新后已运行 mysql_upgrade。
-
确认已安装 X 插件.
正确安装 X 插件后,使用以下命令之一查询服务器上的活动插件时,它会显示在列 table 中:
- MySQL Shell 命令:
mysqlsh -u user --sqlc -e "show plugins"
- MySQLClient 端程序命令:
mysql -u user -p -e "show plugins"
如果您在安装 X 插件时遇到问题,或者想了解有关安装,配置或卸载服务器插件的其他方法,请参阅第 5.5.1 节“安装和卸载插件”。
mysqlxsys @ localhost 用户帐户
安装 X 插件会创建一个mysqlxsys@localhost
用户帐户。如果由于某种原因创建用户帐户失败,则 X 插件安装也会失败。这是有关mysqlxsys@localhost
用户帐户的用途以及创建失败时的处理方法的说明。
X 插件安装过程使用 MySQL root
用户为mysqlxsys@localhost
用户创建内部帐户。 X 插件使用mysqlxsys@localhost
帐户针对 MySQL 帐户系统对外部用户进行身份验证,并在特权用户请求时终止会话。 mysqlxsys@localhost
帐户被创建为锁定帐户,因此外部用户无法使用该帐户登录。如果由于某种原因 MySQL root
帐户不可用,那么在开始 X 插件安装之前,必须通过在mysql命令行 Client 端中发出以下语句来手动创建mysqlxsys@localhost
用户:
CREATE USER IF NOT EXISTS mysqlxsys@localhost IDENTIFIED WITH
mysql_native_password AS 'password' ACCOUNT LOCK;
GRANT SELECT ON mysql.user TO mysqlxsys@localhost;
GRANT SUPER ON *.* TO mysqlxsys@localhost;
卸载 X 插件
如果您要卸载(停用)X 插件,请在mysql命令行 Client 端中发出以下语句:
UNINSTALL PLUGIN mysqlx;
不要使用 MySQL Shell 发出前一条语句。它可以从 MySQL Shell 运行,但是会出现错误(代码 1130)。另外,卸载插件也会删除 mysqlxsys 用户。