本篇博客如题:在服务器上安装两个MySql。

背景 其实并非本意非要安装两个服务器,奈何不知道前面项目的数据库密码,并且数据库版本是8.x,另外还有项目在上面运行,前面的人把数据库装到了系统盘,留下了500G的数据盘没用,所以本着折腾的精神,就开始了踩坑之旅,话说折腾了快两天了,终于把这个问题搞定了,虽然还有点迷糊,不过对于我这新手而言太不容易了。下面做个记录,权且做个纪念。

1.第一个数据库安装

好了,不多说废话了,开始踩坑之旅,虽说是安装两个数据库,不过,第一个数据库的安装有很多办法,我就不多举例子了,推荐几个链接给大家。

官方的yum安装教程:https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

 

2.第二个数据库安装(使用tar.gz安装包)

2.1 准备工作:下载tar.gz,链接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

注意根据自己服务器的系统和进行下载

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_Linux两个Mysql

记得下载的tar.gz包保存的位置。稍后上传的时候要用到。

2.2 将下载的xxxx.tar.gz包向办法上传到服务器,我使用的是WinSCP工具上传的。

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_Linux两个Mysql_02

2.3 解压缩下载的xxxx.tar.gz文件,并重命名,注意自己存放的文件夹,我使用的是xshell来操作的。

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_mysql5.7安装_03

使用的命令如下:

[root@VM_0_17_centos ~]# cd /xs-data/													# cd进入文件夹下
[root@VM_0_17_centos xs-data]# ls														# 查看所有文件和文件夹
[root@VM_0_17_centos xs-data]# tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 	# 解压xxx.tar.gz包
[root@VM_0_17_centos xs-data]# mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql-5.7			# 重命名文件夹为mysql-5.7,可自定义

2.3  在mysql-5.7下新增文件夹data,var,etc备用

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_mysql_04

[root@VM_0_17_centos xs-data]# ls
mysql-5.7  mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz  svn
[root@VM_0_17_centos xs-data]# cd mysql-5.7/
[root@VM_0_17_centos mysql-5.7]# ls
bin  COPYING  docs  include  lib  man  README  share  support-files
[root@VM_0_17_centos mysql-5.7]# mkdir data
[root@VM_0_17_centos mysql-5.7]# mkdir var
[root@VM_0_17_centos mysql-5.7]# mkdir etc
[root@VM_0_17_centos mysql-5.7]# ls
bin  COPYING  data  docs  etc  include  lib  man  README  share  support-files  var

2.4 创建数据库配置文件,一般为my.cnf 。其实在根目录  /etc/my.cnf 有这个文件,所以只需要复制就行了,如果根目录下没有的话,就需要使用touch命令新建该文件了,我把这个文件放到刚新建的etc文件夹下。

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_Centos安装mysql_05

[root@VM_0_17_centos mysql-5.7]# ls /etc/
[root@VM_0_17_centos mysql-5.7]# cp /etc/my.cnf etc/
[root@VM_0_17_centos mysql-5.7]# ls etc/
my.cnf

2.5 编辑刚复制的my.cnf文件,由于我的服务器没有vim命令,所以我就使用vi命令了 vi etc/my.cnf 。编辑如下内容

basedir= /xs-data/mysql-5.7
datadir = /xs-data/mysql-5.7/data
port = 3308
socket = /xs-data/mysql-5.7/mysql.sock

[client]
socket = /xs-data/mysql-5.7/mysql.sock

#不区分大小写
lower_case_table_names = 1

注意自己存放的文件夹,路径不要搞错了,我的是放在了xs-data下

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_mysql_06

2.6 改变文件夹权限,使得mysql可以访问。

#groupadd mysql
#useradd mysql -g mysql
#chown -R mysql:mysql mysql-5.7/
#chmod -R 755 mysql-5.7/

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_Linux两个Mysql_07

2.7 安装依赖包(非常重要的一步!!!!!)

yum -y install make gcc-c++ cmake bison-devel ncurses ncurses-devel libaio-devel

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_一台服务器可以用装两个mysql吗_08

2.8 指定配置文件初始化

[root@VM_0_17_centos mysql-5.7]# ./bin/mysqld --defaults-file=/xs-data/mysql-5.7/etc/my.cnf --initialize --user=mysql &

注意执行该命令时候的位置

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_一台服务器可以用装两个mysql吗_09

2.9 初始化数据库

./bin/mysqld_safe --defaults-file=/xs-data/mysql-5.7/etc/my.cnf  --user=mysql &

上面的命令注意结尾符号& ,接着执行mysql.server start,如果出现如下的问题,那就修改mysql.server文件

[root@VM_0_17_centos mysql-5.7]# ./support-files/mysql.server start
./support-files/mysql.server: line 259: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

使用vi support-files/mysql.server 可以打开mysql.server文件,修改两个地方如下

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_Linux两个Mysql_10

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_Linux两个Mysql_11

修改好之后再执行 ./support-files/mysql.server start

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_一台服务器可以用装两个mysql吗_12

3.0 登录数据库修改密码。使用上一步得到的临时密码

第二个数据库必须使用进入
  #./bin/mysql --socket=../mysql.sock --port=3308 -u root -p
使用初始化的时候得到的密码 qabmwvkGj4.;
进入后直接修改密码
  mysql>alter user 'root'@'localhost' identified by '123456';
  mysql>use mysql;
  msyql>update user set user.Host='%' where user.User='root';
  mysql>flush privileges;
  mysql>quit

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_mysql_13

至此第二个数据库的安装和修改工作已经完结了。

3.1 关于数据库启动和停止的补充,偷个懒直接拷贝参考文章的。

 #mysql -u root --socket=/var/lib/mysql3307/mysql.sock --port=3307 -p
 因为两个数据库,需要置顶socket进行启动。第一次登陆没有密码,直接回车即可。 
 停止3307数据库
 #mysqladmin  -u root --socket=/var/lib/mysql3307/mysql.sock --port=3307 -p shutdown
 

3.3 navicat连接测试

使用以下命令 vi /etc/sysconfig/iptables 首先看下端口有没有开放

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_Linux两个Mysql_14

一台服务器可以用装两个mysql吗 一台服务器安装两个mysql_mysql_15