使用
- 配置 SequoiaDB 连接地址
- 通过指定实例名修改
例如,设置实例 myinst 连接地址为“sdbserver1:11810”和“sdbserver2:11810”
- 通过配置文件修改。具体参考引擎配置章节。
- 登录 MySQL shell
MySQL 支持基于 UNIX 域套接字文件和 TCP/IP 的连接方式。
- UNIX 套接字文件连接
进程间通信,不需要使用网络协议,比 TCP/IP 传输效率更高,但仅限于本地连接,连接时指定对应的套接字文件。
- $ cd /opt/sequoiasql/mysql
- $ bin/mysql -S database/3306/mysqld.sock -u root
- TCP/IP 连接方式
本地连接
- $ cd /opt/sequoiasql/mysql
- $ bin/mysql -h 127.0.0.1 -P 3306 -u root
远程连接
MySQL 默认未授予远程连接的权限,所以首先需要在服务端对客户端 IP 进行访问授权,以下例子对所有的 IP 都授权访问。
假设 mysql 服务器地址为“sdbserver1:3306”,在客户端可以这样远程连接:
- $ /opt/sequoiasql/mysql/bin/mysql -h sdbserver1 -P 3306 -u root
- 设置密码
- mysql> ALTER USER root@'%' IDENTIFIED BY '123456';
注意,设置密码后,后续登录 MySQL shell 的时候要指定 -p 参数,回车并输入密码。
- 创建数据库实例
- mysql> CREATE DATABASE company;
- mysql> USE company;
- 创建表
- mysql> CREATE TABLE employee(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(128), age INT);
- mysql> CREATE TABLE manager(employee_id INT, department TEXT, INDEX id_idx(employee_id));
- 基本数据操作
- 创建索引
- mysql> ALTER TABLE employee ADD INDEX name_idx(name(30));
- 存储过程
- mysql> DELIMITER //
- mysql> CREATE PROCEDURE delete_match()
- -> DELETE FROM employee WHERE id=1;
- -> END//
- mysql> DELIMITER ;
- mysql> CALL delete_match();
- 视图
- mysql> CREATE VIEW manager_view AS
- -> SELECT
- -> e.name, m.department
- -> FROM
- -> employee AS e, manager AS m
- -> WHERE e.id=m.employee_id;
- mysql> SELECT * FROM manager_view;
MySQL实例组件支持大多数 DDL 的在线修改。在线修改支持原表中(INPLACE)修改表属性,并且允许并发的 DML。可以通过 ALGORITHM 参数控制 ALTER TABLE 语句修改 DDL 时使用的算法。当 ALGORITHM = INPLACE 时,可以在线地修改表属性,而 ALGORITHM = COPY 时,则会把原表内容拷贝到新表,性能会下降。不指定 ALGORITHM 时会自动选择算法。如需在线修改 DDL,一般建议显式地指定 ALGORITHM = INPLACE。例子:
- mysql> ALTER TABLE cl ADD INDEX id_idx(id), ALGORITHM=INPLACE;
- 建表选项
可以在线修改字符集(CHARACTER SET)、重命名(RENAME)。支持修改表备注(COMMENT),它包含建表时的一些。
Note: 表备注不支持auto_partition修改;支持table_options原有配置项值修改和增加配置项,不支持减少配置项。
- 主键与索引
支持在线添加列、删除列和数据类型扩容的操作。其中,添加 DEFAULT NULL 的列,以及为数据类型扩容(如 VARCHAR(64) 改 VARCHAR(128)、INT 改 BIGINT)是轻量级的操作,可以快速返回。