---
title: 不同版本的 MySQL/OBClient 客户端的注释处理差异-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 不同版本的 MySQL/OBClient 客户端的注释处理差异相关的常见问题和使用技巧，帮助您快速解决 不同版本的 MySQL/OBClient 客户端的注释处理差异的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 不同版本的 MySQL/OBClient 客户端的注释处理差异

更新时间：2023-11-13 02:05

内容类型：TechNote  

OceanBase 数据库 MySQL 租户可以通过 MySQL 的客户端工具或者 OBClient 工具连接，以进行黑屏操作。对于语句中带"/* */"等的注释的语句，不同客户端工具的处理逻辑存在差异：

- 对于 5.7 之前的 MySQL 版本，客户端默认忽略注释，如需相应的 HINT 生效，则需要在连接的时候加上"-c"。
 - 对于 5.7 以及之后的 MySQL 版本，客户端不忽略注释。
 - 对于 OBClient ，客户端不忽略注释，哪怕连接的时候加上""，注释也不会被忽略。

需要特别强调的是，自 MySQL 5.7.20 以后，忽略注释的行为已经被标注为 "deprecated"，建议弃用此功能。

以下为在 OCP 安装之后，主机上自动安装的 `mysql Ver 15.1 Distrib 10.3.34-MariaDB, for Linux (x86_64) using readline 5.1` 中的测试结果。

- MySQL 客户端设置 `--skip-comments`，相应的 HINT 会被忽略。

  ```
  mysql -h192.168.1.5 -P2883 -uroot@sys#obdemo -p'XXXXXXXXXX' -A oceanbase --skip-comments
  MySQL [oceanbase]> select /*+ query_timeout(1)*/ count(*) from __all_rootservice_event_history;
  +----------+
  | count(*) |
  +----------+
  |  2583596 |
  +----------+
  1 row in set (4.314 sec)

  ```
 - MySQL 客户端保持默认配置(不使用"-c")，相应的 HINT 会被忽略。

  ```
  mysql -h192.168.1.5 -P2883 -uroot@sys#obdemo -p'XXXXXXXXXX' -A oceanbase
  MySQL [oceanbase]> select /*+ query_timeout(1)*/ count(*) from __all_rootservice_event_history;
  +----------+
  | count(*) |
  +----------+
  |  2583596 |
  +----------+
  1 row in set (1.230 sec)

  ```
 - MySQL 客户端使用"-c"，相应的 HINT 生效。

  ```
  mysql -h192.168.1.5 -P2883 -uroot@sys#obdemo -p'XXXXXXXXXX' -A oceanbase -c
  MySQL [oceanbase]> select /*+ query_timeout(1)*/ count(*) from __all_rootservice_event_history;
  ERROR 4012 (HY000): Timeout

  ```

以下为在 "obclient Ver 2.2.0 Distrib 10.4.18-MariaDB, for Linux (x86_64) using readline 5.1" 中的测试结果。

- OBClient 客户端设置"--skip-comments"，相应的 HINT 依然生效。

  ```
  obclient -h192.168.1.5 -P2883 -uroot@sys#obdemo -p'XXXXXXXXXX' -A oceanbase --skip-comments
  obclient [oceanbase]> select /*+ query_timeout(1)*/ count(*) from __all_rootservice_event_history;
  ERROR 4012 (HY000): Timeout

  ```
 - OBClient 客户端保持默认配置(不使用"-c")，相应的 HINT 依然生效。

  ```
  obclient -h192.168.1.5 -P2883 -uroot@sys#obdemo -p'XXXXXXXXXX' -A oceanbase
  obclient [oceanbase]> select /*+ query_timeout(1)*/ count(*) from __all_rootservice_event_history;
  ERROR 4012 (HY000): Timeout

  ```
 - OBClient 客户端使用"-c"，相应的 HINT 依然生效。

  ```
  obclient -h192.168.1.5 -P2883 -uroot@sys#obdemo -p'XXXXXXXXXX' -A oceanbase -C
  obclient [oceanbase]> select /*+ query_timeout(1)*/ count(*) from __all_rootservice_event_history;
  ERROR 4012 (HY000): Timeout

  ```

## 适用版本

MySQL/OBClient

上一篇

[Prepare+Execute 二合一协议介绍](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000532687)

下一篇

[如何仿照 sqlplus 的方式发起 OBClient 后台脚本](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210060) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
