OceanBase使用
时间: 2025-06-14 18:53:25 浏览: 10
### OceanBase 的使用方法
#### 创建并运行 OceanBase 容器
通过 Docker 创建并启动一个 OceanBase 数据库容器是一项常见的操作。以下是具体命令及其功能说明:
```bash
docker run -d \
-p 2881:2881 \
-v /data/ob:/root/ob \
-v /data/obd:/root/.obd \
--name oceanbase \
oceanbase/oceanbase-ce:4.1.0.0
```
上述命令的作用如下:
- `-d` 表示后台运行容器[^1]。
- `-p 2881:2881` 将主机的 `2881` 端口映射到容器内的相同端口,用于访问数据库服务。
- `-v /data/ob:/root/ob` 和 `-v /data/obd:/root/.obd` 是挂载卷的操作,分别将宿主机上的 `/data/ob` 和 `/data/obd` 文件夹映射至容器内部路径,以便持久化数据存储。
完成以上步骤后,可以通过以下命令检查容器的状态:
```bash
docker ps
```
此命令会显示当前正在运行的容器列表以及其状态信息。
#### 修改用户密码
对于已存在的用户账户,可以执行 SQL 命令来更改用户的登录凭证。例如修改名为 `jamy` 用户的密码为 `'jamy'` 可以这样实现:
```sql
ALTER USER jamy@'%' IDENTIFIED BY 'jamy';
```
这条语句的功能在于重新设置指定范围 (`%`) 下用户名为 `jamy` 对应的新密码[^2]。
#### 查询优化与改写机制
OceanBase 提供了一种高效的查询处理方式——OR 展开技术。这种技术的核心是由 `merge_stmt()` 函数主导,它能够依据不同条件决定如何最佳地重构原始SQL请求。当遇到未被分割的基础查询时,如果无需新增额外的选择字段,则直接采用现有的集合表达式;反之若有新加入的关键属性(比如唯一索引),那么就需先转换成视图形式再进一步精简不必要的列项;而对于那些已经被分解过的初始询问来说,只需简单替换掉原有的子查询部分即可达到目的[^3]。
---
### 示例代码展示
下面给出一段 Python 脚本例子演示怎样连接到刚才建立起来的那个 OB 实例上,并尝试读取一些基本信息出来:
```python
import pymysql
connection = pymysql.connect(
host='localhost',
port=2881,
user='root',
password='',
database='mysql'
)
try:
with connection.cursor() as cursor:
sql = "SELECT VERSION()"
cursor.execute(sql)
result = cursor.fetchone()
print(f"Database version: {result}")
finally:
connection.close()
```
该脚本利用 PyMySQL 库实现了基本的数据交互过程,包括建立链接、发送指令获取版本号最后关闭资源释放等环节。
---
阅读全文
相关推荐















