首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

同一台服务器上安装mysql5.5以及mysql5.7后启动失败的问题

【背景】

公司某项目,用的是mysql 5.5版本,但在上线前讨论决定统一为5.7版本;于是想把原来安装了5.5版本的服务器升级为5.7版本;

具体过程是:保持5.5版本正常提供服务,然后源码编译安装5.7版本,在安装完毕启动服务测试没有问题后,导出5.5版本的数据。然后导入5.7版本,等测试彻底没有问题后,停止5.5版本,然后将项目彻底切换到5.7版本;为了保证万无一失,先找了另外一台服务器 模拟安装,升级了一遍;在安装过程中,遇到了以下的一些问题:

【问题描述】

安装完毕后,如果先启动5.5版本,则5.7版本就启动失败; 如果把5.5版本stop;然后如果先启动5.7版本,则5.5版本就启动失败;

并且报错都是:

Starting MySQL.. ERROR! The server quit without updating PID file

【关键文件】

5.5版本:

basedir:/home/work/app/mysql_5_5_41

datadir:/home/work/app/mysql_5_5_41/data

pid-file:/home/work/app/mysql_5_5_41/data/fzsf.serverbackup.pid

socket:/tmp/mysql55.sock

config-file:/home/work/app/mysql_5_5_41/my.cnf

5.7版本:

basedir:/home/work/app/mysql_5_7_18

datadir:/home/work/app/mysql_5_7_18/data

pid-file:/home/work/app/mysql_5_7_18/data/fzsf.serverbackup.pid

socket:/tmp/mysql57.sock

config-file:/home/work/app/mysql_5_7_18/my.cnf

一直找不到问题的原因在哪里:查看err_log文件,好像提示端口号都使用了3306 ,但是我在两个不同的配置文件中.cnf使用的端口号的确是不一样的,一个是3306,一个是3307,那么是不是mysql启动加载配置文件的时候,压根就没有加载上述的两个配置文件呢?

用以下命令查看了下mysql 加载配置文件的默认顺序:

[root@fzsf bin]# ./mysql --help|grep 'my.cnf'

order of preference, my.cnf, $MYSQL_TCP_PORT,

/etc/my.cnf /etc/mysql/my.cnf /home/work/app/mysql_5_5_41/etc/my.cnf ~/.my.cnf

于是我把配置文件mv到各自的datadir/etc/my.cnf 启动时还说不行,第二天上班时,我准备将配置文件就放到basedir/my.cnf 再试试:

config-file:/home/work/app/mysql_5_5_41/my.cnf

config-file:/home/work/app/mysql_5_7_18/my.cnf

结果,还真是,问题解决了。

root@fzsf mysql_5_5_41]# /etc/init.d/mysqld55 start

Starting MySQL.. SUCCESS!

[root@fzsf mysql_5_5_41]# /etc/init.d/mysqld57 start

Starting MySQL. SUCCESS!

[root@fzsf mysql_5_5_41]# ps aux | grep mysqld | grep -v grep

root 6653 0.0 0.0 106212 1548 pts/0 S 10:26 0:00 /bin/sh /home/work/app/mysql_5_5_41/bin/mysqld_safe --datadir=/home/work/app/mysql_5_5_41/data --pid-file=/home/work/app/mysql_5_5_41/data/fzsf.serverbackup.pid

mysql 6930 0.0 0.5 485080 45376 pts/0 Sl 10:26 0:00 /home/work/app/mysql_5_5_41/bin/mysqld --basedir=/home/work/app/mysql_5_5_41 --datadir=/home/work/app/mysql_5_5_41/data --plugin-dir=/home/work/app/mysql_5_5_41/lib/plugin --user=mysql --log-error=/home/work/app/mysql_5_5_41/data/fzsf.serverbackup.err --pid-file=/home/work/app/mysql_5_5_41/data/fzsf.serverbackup.pid --socket=/tmp/mysql55.sock --port=3306

root 6965 0.0 0.0 106216 1572 pts/0 S 10:26 0:00 /bin/sh /home/work/app/mysql_5_7_18/bin/mysqld_safe --datadir=/home/work/app/mysql_5_7_18/data --pid-file=/home/work/app/mysql_5_7_18/data/fzsf.serverbackup.pid

mysql 7120 0.0 2.4 1894552 197780 pts/0 Sl 10:26 0:00 /home/work/app/mysql_5_7_18/bin/mysqld --basedir=/home/work/app/mysql_5_7_18 --datadir=/home/work/app/mysql_5_7_18/data --plugin-dir=/home/work/app/mysql_5_7_18/lib/plugin --user=mysql --log-error=/home/work/app/mysql_5_7_18/data/fzsf.serverbackup.err --pid-file=/home/work/app/mysql_5_7_18/data/fzsf.serverbackup.pid --socket=/tmp/mysql57.sock --port=3307

查看端口:

netstat -anp|grep 3306

netstat -anp|grep 3307

都监听了;

总结:对于mysql在安装时默认的行为以及my.cnf 文件被默认搜索的路径的先后顺序搞明白了,这样的问题,还是能迎刃而解;

夜深了,晚安!俗话说:幸福是奋斗出来的?

最后附上一张闺女的靓照,为自己加油打气;

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180505G1LCD000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券