在乙方工作的学生,总会遇到特别稀奇古怪的问题。由于从事数据库培训及咨询服务,有时也给学生担任起二级技术支持的作用(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万+,说不定另外项目也能谈到上百万,忽然一下公司好象多了一个创收项目。搞的学生非常兴奋的一定要详细请教一下。好吧,那我也就无私的教一下这块的技术。具体领悟多少,就要看他的造化了。
我大概想了一下,这个事情的大概过程是:
...
最终打造一个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天就可以过了!
只能说恭喜老板发财。
唉~~~
本文分享自 MySQLBeginner 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!