AliSQL 20171010版本发布 Sequence兼容PostgreSQL/Oracle语法和升级TLSv1.2
来源:互联网 发布:ubuntu 突然无法上网 编辑:程序博客网 时间:2024/05/29 18:28
点击有惊喜
Abstract
为了增加Sequence使用的灵活性,以及方便从不同数据库进行迁移,AliSQL增加了Sequence的兼容性,兼容了PostgreSQL和Oracle的Sequence语法。
为了保障数据传输安全,AliSQL使用OpenSSL来代替社区版的yaSSL,并把默认的,已经被PCI DSS v3.1标准废弃的TLSv1.0升级到TLSv1.2版本。
并修复了一个Semisync的未合理处理信号的bug,
感谢 boonie81 提交的bug issue#68
AliSQL REPO: https://github.com/alibaba/AliSQL
AliSQL Release Notes: https://github.com/alibaba/AliSQL/wiki/Changes-in-AliSQL-5.6.32-(2017-10-10)
1. Sequence兼容PostgreSQL和Oracle使用语法
概要
为了增加sequence使用的用户体验,以及满足用户的使用习惯,Sequence新增了使用语法支持:
Sequence创建语法保持不变:
CREATE SEQUENCE [IF NOT EXISTS] schema.seqName [START WITH <constant>] [MINVALUE <constant>] [MAXVALUE <constant>] [INCREMENT BY <constant>] [CACHE <constant> | NOCACHE] [CYCLE | NOCYCLE] ;SHOW syntax: SHOW CREATE SEQUENCE schema.seqName; SHOW CREATE TABLE schema.seqName;
除了原有支持的查询方法:
SELECT [nextval | currval | *] FOR schema.seqName; SELECT [nextval | currval | *] FROM schema.seqName;
新增了函数和dual表方法:
SELECT nextval(seqName); SELECT currval(seqName); SELECT seqName.nextval from dual; SELECT seqName.currval from dual;
2. 升级TLSv1.2
概要
原有的官方社区版 MySQL 只支持到 TLSv1.0 版本,但 TLSv1.0 已经证明是非安全的,存在漏洞,并已经被 PCI DSS v3.1 标准废弃了,考虑到社区的yaSSL只能最高支持TLSv1.1版本, 并且方便部署,减少依赖,AliSQL直接静态编译了OpenSSL,提供TLSv1.2版本。 新增了编译方式和参数:
新增支持cmake编译参数:
-DWITH_SSL=openssl 即静态编译openSSL。
新增参数tls_version:
如果使用yaSSL编译:tls_version的默认值是:TLSv1,TLSv1.1
如果使用OpenSSL编译:tls_version的默认值是:TLSv1,TLSv1.1,TLSv1.2
例如:使用OpenSSL编译的AliSQL:
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show global variables like '%tls_%';+---------------+-----------------------+| Variable_name | Value |+---------------+-----------------------+| have_tlsv1_2 | YES || tls_version | TLSv1,TLSv1.1,TLSv1.2 |+---------------+-----------------------+2 rows in set (0.00 sec)
配置证书进行连接来查看当前连接的tls版本:
mysql> show global variables like '%ssl%';+---------------+--------------------------------------------+| Variable_name | Value |+---------------+--------------------------------------------+| have_openssl | YES || have_ssl | YES || ssl_ca | /u01/ca.pem || ssl_capath | || ssl_cert | /u01/server-cert.pem || ssl_cipher | || ssl_crl | || ssl_crlpath | || ssl_key | /u01/server-key.pem |+---------------+--------------------------------------------+
使用ca证书进行连接:
mysql -h127.0.0.1 -ussl_user --ssl-ca=/u01/ca.pem --ssl-cert=/u01/client-cert.pem --ssl-key=/u01/client-key.pem
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> \s--------------mysql Ver 14.14 Distrib 5.6.32, for Linux (x86_64) using EditLine wrapperConnection id: 4Current database:Current user: ssl_user@127.0.0.1SSL: Cipher in use is DHE-RSA-AES128-GCM-SHA256Current pager: stdoutUsing outfile: ''Using delimiter: ;Server version: 5.6.32 Source distributionProtocol version: 10Connection: 127.0.0.1 via TCP/IPServer characterset: latin1Db characterset: latin1Client characterset: utf8Conn. characterset: utf8TCP port: 3306 Uptime: 1 hour 35 min 31 secThreads: 1 Questions: 16 Slow queries: 0 Opens: 70 Flush tables: 1 Open tables: 63 Queries per second avg: 0.002--------------mysql> show status like 'ssl_version';+---------------+---------+| Variable_name | Value |+---------------+---------+| Ssl_version | TLSv1.2 |+---------------+---------+1 row in set (0.00 sec)
为了使用TLSv1.2版本,也必须升级客户端使用openSSL编译,其兼容性如下:
CompatibilityThe TLS Protocol version matrix:----------------------------------------------------------------------- Pre_Server Post_yaSSL_Server Post_openSSL_ServerPre_Client TLSv1.0 TLSv1.0 TLSv1.0Post_yaSSL_Client TLSv1.0 TLSv1.1 TLSv1.1Post_openSSL_Client TLSv1.0 TLSv1.1 TLSv1.2-----------------------------------------------------------------------
3.Semisync的bug修复
概要
在系统启动过程中,Semisync模块的ACK Receiver线程在系统屏蔽信号之前boot,导致当有信号的时候,
ACK Receiver 线程接收到了信号,而不是专有信号处理线程,导致不能正常的Shut down。
再次感谢Github社区的boonie81同学提交的bug report。
点击有惊喜
- AliSQL 20171010版本发布 Sequence兼容PostgreSQL/Oracle语法和升级TLSv1.2
- AliSQL开源Sequence Engine
- AliSQL开源Sequence Engine
- postgresql大版本升级
- postgresql大版本升级
- Oracle Sequence语法
- Oracle Sequence 语法
- 发布、升级版本自动化
- PostgreSQL 8.3.4版本发布
- 2010年Meego版本升级和新品发布
- postgresql同oracle语法差异
- Oracle Clusterware 和ASM和Database 的版本兼容情况
- Oracle、DB2、PostgreSQL之Sequence总结
- Erlang 发布版本升级-目录
- oracle升级版本小计
- 升级oracle版本流程
- oracle版本升级路线
- PostgreSQL 9.5.3 版本升级到 9.6.2 版本后的数据兼容问题
- tensorflow 复合逻辑‘且’和‘或’的实现
- linux 学习系列-Linux 文件与目录管理
- shiro 之权限验证问题
- 线性判别分析(一)——LDA介绍
- 写给所有程序员_你的逻辑不要太贪心
- AliSQL 20171010版本发布 Sequence兼容PostgreSQL/Oracle语法和升级TLSv1.2
- angularjs 路由 传参
- Eclipse快捷键
- SSH-使用注解整合实现简单的登录功能
- SSM框架:Spring、Spring MVC、MyBatis学习
- activiti实战四(流程定义)
- Spring Boot 事务的使用
- Deep Learning 学习笔记
- 博客积分获取