前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >上课一不小心讲了年入百万起的项目MySQL10|#14

上课一不小心讲了年入百万起的项目MySQL10|#14

作者头像
wubx
发布2021-07-15 13:15:34
3270
发布2021-07-15 13:15:34
举报
文章被收录于专栏:MySQLBeginner

在乙方工作的学生,总会遇到特别稀奇古怪的问题。由于从事数据库培训及咨询服务,有时也给学生担任起二级技术支持的作用(response slow), 前几天一个学生又被甲方爸爸吊打,留堂不让回家,让出一个MySQL升级的安全patch~~~ 甲方爸爸数据库专家意见是MySQL不能升级,但可以通过打Patch来解决安全Bug。

和学生交流后才了解到真正的原因:

公司做安全评估邀请了某个安全厂家扫描了内网,不准开防火墙那种扫描,然后得到的结论是他们现在使用的MySQL版本有安全Bug,需要紧急处理,甲方公司计划通过打patch解决。

看到这个我默默的低下了头,想起了长达将近7年某动项目中,每年安全评审被安全厂家鞭打的过程。 同情升上心头,决定给学生两个方案:

1. 转嫁风险方案,为数据库买一个保险:购买官方服务,按实际数量购买每套都需要有保险,越贵后面越有说服力 :Money is Power。 这个方案适合用于自己在公司里还没有太多话语权,需要更强大组织支持。例如打patch, 就提交给官方,官方给出合理的建议: MySQL 只能升级,没有Patch服务,那甲方专家也会如同小鸡吃米的认可了。如果购买的服务费用不超过1000万,估计也不能说服专家,所以按贵的买就行。

2. 给报出来方案1后,如果甲方觉得实在是太贵了,且你又在乙方,可以给甲方提一个定制MySQL版本:MySQL 10, 每年含两个Patch的升级,号称100%兼容MySQL,版本费用是官方的5折即可。应该也能解决问题了。

同学一听感觉第二个方案更靠谱一点。花更少的钱,还能给甲方爸爸解决问题,又能输出一个定制版本,这个项目如果谈到500万+,说不定另外项目也能谈到上百万,忽然一下公司好象多了一个创收项目。搞的学生非常兴奋的一定要详细请教一下。好吧,那我也就无私的教一下这块的技术。具体领悟多少,就要看他的造化了。

我大概想了一下,这个事情的大概过程是:

  1. build出来一个新版本MySQL的版本号 10.0.0, 给客户POC
  2. 更改部分提示符及日志输出方面的友好提示
  3. Plus服务:把社区的优秀特性合并过来,thread pool, 审计,防火墙等
  4. 增加Proxy,数据库管控平台,提供更多增值服务

...

最终打造一个MySQL产品+服务的公司

学生有点着急的说,其实提供一个10.0.0版本和MySQL完全兼容的MySQL,我们就可以了~~~,最简单的方法,最快的,可以先POC的就行。算了, 需求明确就是干就行了。

编译参考:

MySQL :: MySQL 8.0 Reference Manual :: 2.9.2 Source Installation Prerequisites

我这里使用的:

mysql-boost-8.0.25.tar.gz ,

cmake3 version 3.17.3

devtoolset-10 gcc version 10.2.1 20200804 (Red Hat 10.2.1-2) (GCC)

tar zxvf mysql-boost-8.0.25.tar.gz

cd mysql-8.0.25

#cat MYSQL_VERSION

MYSQL_VERSION_MAJOR=8

MYSQL_VERSION_MINOR=0

MYSQL_VERSION_PATCH=25

MYSQL_VERSION_EXTRA=

把这个文件修改为:

#cat MYSQL_VERSION

MYSQL_VERSION_MAJOR=10

MYSQL_VERSION_MINOR=0

MYSQL_VERSION_PATCH=0

MYSQL_VERSION_EXTRA=1

mkdir build

cd build

cmake3 ../ -D CMAKE_INSTALL_PREFIX=/usr/local/mysql10 -D WITH_BOOST=../boost/

make install

可用的二制版本发布到/usr/local/mysql10下面,然后按二进制MySQL安装的方式部署就可以了。

数据库初始化过程略...

/usr/local/mysql10/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &

不过,需要注意,如果真正对客户提供分支以及将来提供可用升级及patch还需要找10-20个性能好一点的机器,把MySQL的test case和客户的case都不停的跑跑,进行一下系统的测试,下次版本升级时也要给客户说明一下具体修复的Bug是什么(有test case), 后面也可以更专业的修改一下CMakeLists.txt 生成更专业的名字(参考percona)...... ,专业的编译参数可以参考二进制发版下面的 docs/INFO_BIN说明.......

学生说,已经给客户POC了,差不多2-3天就可以过了!

只能说恭喜老板发财。

唉~~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQLBeginner 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档