环境:
CentOS 6.8 
memory:1G
Mysql 5.7 二进制安装包

1.安装相关的环境包

yum -y install gcc glibc libaio libstdc++ libstdc ncurses-libs

2.查看系统中是否存在已经安装的mysql,如果有的话,将其卸载掉

rpm -qa | grep mysql
rpm -e mysql    #普通删除模式
rpm -e --nodeps mysql    #强力删除模式

3.创建组和用户

groupadd mysql
useradd -r -g mysql -s /bin/false myqsl

4.解压mysql5.7二进制安装包

tar -xvf mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz
mv /root/mysql-5.7.15-linux-glibc2.5-x86_64 /usr/local/mysql

5.创建相关目录
mkdir -p /mydata/data330{6..7}
chown mysql.mysql /mydata -R

6.修改my.cnf文件
vi /etc/my.cnf
 
[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
#user       = root
#password   = rootpwd
 
[mysqld3306]    //这里最好不要写其他名称,开始的时候我加了下划线,但是命令无法识别
port = 3306
server_id = 3306
basedir =/usr/local/mysql
datadir =/mydata/data3306
socket =/tmp/mysql3306.sock  
log-error =/var/log/mysqld_3306.log
pid-file =/mydata/data3306/mysqld3306.pid
 
[mysqld3307]  
port = 3307
server_id = 3307
basedir =/usr/local/mysql
datadir =/mydata/data3307
socket =/tmp/mysql3307.sock  
log-error =/var/log/mysqld_3307.log
pid-file =/mydata/data3306/mysqld3307.pid

修改好后保存退出

7.添加环境变量

echo "PATH=$PATH:/usr/local/mysql/bin  " >> /etc/profile
source /etc/profile

8.初始化数据库
bin/mysqld --initialize --user=mysql --datadir=/mydata/data3306 --basedir=/usr/local/mysql --explicit_defaults_for_timestamp
bin/mysqld --initialize --user=mysql --datadir=/mydata/data3307 --basedir=/usr/local/mysql --explicit_defaults_for_timestamp

这里会提示一个临时密码,一定要记住!!

9.启动两个不同端口的mysql
mysqld_multi report 查看下两个服务

Reporting MySQL servers
No groups to be reported (check your GNRs)
这样输出的话,就证明/etc/my.cnf文件配置错误了
实例没有起来

Reporting MySQL servers
MySQL server from group: mysqld3306 is not running
MySQL server from group: mysqld3307 is not running

显示的如上的话,证明实例已经识别了

在执行如下命令开启实例
mysqld_multi start 3306,3307

再次查看状态
mysqld_multi report
MySQL server from group: mysqld3306 is running
MySQL server from group: mysqld3307 is running

查看ps  aux | grep mysql
netstat -antpl | grep 330
 
如果有相关的进程,证明启动成功

10.访问数据库
mysql -u root -p -S /tmp/mysql3306.sock  //这里一定要指定sock文件,否则启动失败的
Enter password:

mysql -u root -p -S /tmp/mysql3307.sock
Enter password:
 
11.修改root密码
mysql -u root -p -S /tmp/mysql3307.sock
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql> grant all privileges on *.* to root@'192.168.1.%';
mysql> flush privileges;

同样,登陆到另一个节点修改密码
mysql -u root -p -S /tmp/mysql3306.sock 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql> grant all privileges on *.* to root@'192.168.1.%';
mysql> flush privileges;

12.关闭某个实例
mysqladmin -uroot -prootpwd -S /tmp/mysql3306.sock shutdown

13.开启自启动
echo "/usr/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf start 3306,3307" >> /etc/rc.local

【MySQL】一台服务器上搭建两个mysql节点的更多相关文章

  1. 如何在一台服务器上安装两个mysql或者更多

    如何在一台服务器上安装两个mysql 1       前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2       环境 mysql ...

  2. (windows)一台电脑上安装两个Mysql服务

    原文:https://my.oschina.net/u/1472917/blog/410732 最近需要在一台电脑上安装两个Mysql服务,需求稍微有些奇怪,但确实很必要.本人原本为了本机测试Word ...

  3. 在一台服务器上搭建多个网站的方法(Apache版)

    Apache的配置文件一般放置在/etc/httpd/conf文件夹下,httpd.conf是它的主配置文件,在进行配置时可以将虚拟主机的配置文件单独配置,如取名为vhost.conf,然后再http ...

  4. 如何在同一台服务器上部署两个tomcat

    因为测试的需要,有时我们必须在同一个服务器上部署两个tomcat,然后去做应用的部署,那么很多同学可能会觉得比较为难,找的资料也比较的不齐全,那么今天华华就来给大家讲讲如何部署2个tomcat,并能够 ...

  5. 如何在一台机器上安装两个MYSQL数据库

    1.正常安装第一个mysql(安装步骤省略) 2.在控制面板里停止第一个mysql服务 3.将C:\Program Files\MySQL目录下的所有目录和文件copy到另外一个路径,我这里是copy ...

  6. 在一台服务器上搭建多个项目的SVN

    需求:一台机子,多个项目,项目之间用户独立不可以相互访问文件 思路:在机子上设置多个代码仓库,用不同的端口号加一区分 实现: 首先安装SVN,我这里使用的是TortoiseSVN 首先创建多个SVN代 ...

  7. mysql同一台服务器上不同数据库中个别表内容同步

    >>>>>>soft_wsx>>>>>>--数据备份与还原>>同步备用服务器--1.完全备份主数据库--2.使用带S ...

  8. 在一台服务器上搭建相对高可用HiveServer实践

    本文来自网易云社区 作者:刘杰 问题及原因 组里之前搭建了一个hiveserver提供给猛犸上的ETL程序调用,hiveserver隔三差五地挂掉重启,网上查了些资料,也咨询了猛犸那边维护hivese ...

  9. 如何在同一台机器上安装多个MySQL的实例

    转自:'http://www.cnblogs.com/shangzekai/p/4375271.html 最近由于工作的需要,需要在同一台机器上搭建两个MySQL的实例,(注:已经存在了一个3306的 ...

随机推荐

  1. Jmeter(4)断言

    Jmeter添加断言,检查测试中得到的响应数据是否符合预期.以下介绍下响应断言,JSON断言 一.响应断言 1.创建测试计划: 添加线程组->添加取样器->添加察看结果树,运行后可查看接口 ...

  2. 面试 11-01.ES6:模块化的使用和编译环境

    11-01.ES6:模块化的使用和编译环境 #前言 #ES6的主要内容 模块化的使用和编译环境 Class与JS构造函数的区别 Promise的用法 ES6其他常用功能 本文来讲"模块化的使 ...

  3. Linux课程知识点总结(一)

    Linux课程知识点总结(一) 一.Linux系统的简介 1.1 什么是Linux Linux是一个免费的多用户.多任务的操作系统,其运行方式.功能和Unix系统很相似,但Linux系统的稳定性.安全 ...

  4. Python进阶——为什么GIL让多线程变得如此鸡肋?

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 做 Python 开发时,想必你肯定听过 GIL,它经常被 Python 程序员吐槽,说 Pytho ...

  5. Python循环语句代码详解:while、for、break

    1 while循环 循环语句是程序设计中常用的语句之一.任何编程语言都有while循环,Python也不例外.while循环的格式如下所示.  while(表达式):       -   else:  ...

  6. python k-means聚类实例

    port sys reload(sys) sys.setdefaultencoding('utf-8') import matplotlib.pyplot as plt import numpy as ...

  7. 【k8s实战一】Jenkins 部署应用到 Kubernetes

    [k8s实战一]Jenkins 部署应用到 Kubernetes 01 本文主旨 目标是演示整个Jenkins从源码构建镜像到部署镜像到Kubernetes集群过程. 为了简化流程与容易重现文中效果, ...

  8. MQTT协议 局域网和广域网 云服务器和虚拟主机、VPS SSH和FTP、SFTP

     MQTT协议 MQTT协议就很好的解决了coap存在的问题.MQTT协议是由IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议.MQTT协议采用发布/订阅模式,所有的物联网终端都通过TC ...

  9. .net MVC 微信公众号 获取 access_token

    官方文档说明:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183&token=&lang=zh_ ...

  10. 什么是ZooKeeper?ZooKeeper分布式事务详解

    前言 上一章我们了解了zookeeper到底是什么,这一章重点来看zookeeper当初到底面临什么问题? 而zookeeper又是如何解决这些问题的? 实际上zookeeper主要就是解决分布式环境 ...