Centos 在mysql5.6基础上安装第二个mysql

    近日,开发人员提出要求需要一个mysql5.7,可是生产环境上都是5.6 。只能在此基础上再安装一个5.7。从此就开始了我的艰难的采坑之旅。

   先说明,我是一个运维菜鸟。为了不影响生产环境的5.6,我在本地虚拟机中先安装了一个和服务器一样的mysql5.6 ,然后从去官网(MySQL :: Download MySQL Community Server (Archived Versions))下载了一个mysql5.7 。

Centos 在mysql5.6基础上安装第二个mysql_第1张图片

 

 

上传到虚拟机中进行编译安装,还是比较顺利的。之前的周折是没有找对安装的版本,费点时间,还是就是自己操作经验不足费了时间。然后按部就班的操作就安装好了。以为生产环境照样操作一遍就OK了。 哪知道噩梦开始了。

   先把mysql安装包上传到服务器中,准备安装依赖环境。麻烦开始了。原因是生产环境的服务器不能上网,就把一个很简单的事情弄得很复杂。

yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison 已经没有了可能,只能把这些安装包一个个下载下来。麻烦出现了,当安装到gcc-c++时出现了一大堆依赖文件,而且是比较细的文件,并不是直接告诉你需要哪个安装包,需要自己去搜索 ,这就费了很长时间。

而且在频繁的查找安装包的过程中也错误频出,其中一个很典型的就是文件后面的类型匹配时好不容易找了一个安装包,但是后面是i686,以为可以使用,就直接上传,安装,呵呵,可想而知,麻烦不断。后来才知道平台不符合。

     好不容易摆平了这个问题,又出现了一个新的问题 在安装一个包时出现了一个提示 xxxx pkg与yyy in package rpm conflicts with file from package . 大概意思就是你要安装的包与系统中正在使用的包版本冲突 。解决两种办法,一个是卸载正在使用的包,安装新包。另外一种是放弃新包,找其他与正在使用包版本匹配的其他安装包。 我选择了第一种卸载。可以麻烦接踵而来,另一个需要卸载的包被其它包使用中 ,继续选择卸载,又出现了一个被使用的关联。而新的关联是看上去很重要,见了鬼了。 只能推翻第一种方案,选择第二种,又浪费了大量时间,无果 。 找不到对应的文件。正在进退不得时,忽然看到了一篇文章(解决rpm conflicts with file from package问题 - robert871126 - 博客园 中 robert871126),一个救命的参数 --replacefiles  。 

rpm -ivh python27-2.7.9-1.x86_64.rpm --replacefiles

这就是救命的稻草,赶紧去试。果然解决了。其他依法炮制。搞定!

环境终于搭建好了,开始正式安装。

先进行环境编译:

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql\data \
-DSYSCONFDIR=/etc/mysql3307 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3307 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=/usr/usrpkg/mysql-5.7.25/boost

参数解释:

DCMAKE_INSTALL_PREFIX 安装目录;

DMYSQL_DATADIR 数据库用户存放目录

DSYSCONFDIR  配置文件也就是my.cnf存放目录

DMYSQL_TCP_PORT 通讯端口

DWITH_BOOST boost的源文件目录

DDEFAULT_CHARSET 字符集 

然后进行编译,比较费时间,大家留心。

make, make install

安装后开始配置my.cnf ,修改support-files目录中mysql.server 文件。 注意此文件中的basedir 和 datadir 还有conf参数 ,需要根据实际情况进行修改。

然后 mysql.serve start 启动服务。这一步是出问题比较多的,可以去mysqld.log 文件查找错误 ,然去百度搜索一般就可以了。

你可能感兴趣的:(mysql,mysql)