Linux下 Mysql 互为主从

系统环境:CentOS 6.5

master1:192.168.100.204

master2:192.168.100.205

mysql版本:mysql-5.6.19

注:mysql的5.5以下的版本和5.5以上的版本配置方法不一样

以下两个节点安装

1:防火墙打开相应端口

#  /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

#  /etc/rc.d/init.d/iptables save

2:安装相关依赖包

#  yum -y install gcc gcc-c++ ncurses ncurses-devel openssl openssl-devel cmake perl lsof bison

3:删除自带的mysql

#  rpm -qa|grep mysql

#  rpm -e --allmatches --nodeps mysql-libs-5.1.71-1.el6.x86_64

4:创建相关目录

#  mkdir /doiido/soft

#  mkdir -p /doiido/mysql/data/

5:创建mysql用户

#  /usr/sbin/groupadd mysql

#  /usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql

#  chown -R mysql:mysql /doiido/mysql/

6:安装mysql

#  cd /doiido/soft

#  tar -zxvf mysql-5.6.19.tar.gz

#  cd mysql-5.6.19

#  cmake -DCMAKE_INSTALL_PREFIX=/doiido/server/mysql -DMYSQL_DATADIR=/doiido/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc/ -DWITH_SSL=yes -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
-DWITH_READLINE=on

#  make && make install

7:修改相关目录权限并创建软连接

#  chmod +w /doiido/server/mysql

#  chown -R mysql:mysql /doiido/server/mysql/

#  ln -s /doiido/server/mysql/lib/lib* /usr/lib/

#  ln -s /doiido/server/mysql/bin/mysql /usr/bin

8:修改配置文件

#  cp /doiido/server/mysql/support-files/my-default.cnf /etc/my.cnf

#  vi /etc/my.cnf

[mysqld]
character-set-server = utf8
default-storage-engine = MyISAM
basedir = /doiido/server/mysql
datadir = /doiido/mysql/data
log-error = /doiido/mysql/mysql_error.log
pid-file = /doiido/mysql/mysql.pid
max_allowed_packet = 32M
explicit_defaults_for_timestamp = true 

9:安装mysql数据库

#  /doiido/server/mysql/scripts/mysql_install_db --basedir=/doiido/server/mysql --datadir=/doiido/mysql/data --user=mysql

10:设置mysql开机自动启动服务

#  cp /doiido/server/mysql/support-files/mysql.server /etc/init.d/mysqld

#  chkconfig --add mysqld

#  chkconfig --level 345 mysqld on

11:修改mysqld文件并启动mysql

#  vi /etc/init.d/mysqld

#修改mysqld文件中的下面两项
basedir=/doiido/server/mysql
datadir=/doiido/mysql/data

#  service mysqld start

12:创建需同步的数据库

#  mysql -uroot -p

mysql>  create database doiido;

mysql>  GRANT ALL PRIVILEGES ON doiido.* TO [email protected]"%" IDENTIFIED BY ‘doiido123‘;

mysql>  exit

--------------------以下在服务器master1上操作

修改配置文件

#  vi /etc/my.cnf

[mysqld]
#默认是1,master和slave不能相同即可
server-id=1
log-bin=bin.log
port=3306
binlog-do-db =doiido
#要复制的数据库
replicate-do-db =doiido

重启mysql

#  service mysqld restart

建立用于同步的账户

#  mysql -uroot -p

mysql>  grant replication slave on *.* to ‘dodo‘@‘192.168.100.205‘ identified by ‘jjjjjj‘;

查看File对应值,并记录下来

mysql>  show master status;

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| bin.000001       |      120 | doiido       |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

mysql>  exit

--------------------以下在服务器master2上操作

2.修改slave上的配置文件my.cnf

#  vi /etc/my.cnf

[mysqld]
server-id=2
port=3306
log-bin=bin.log
binlog-do-db =doiido
replicate-do-db =doiido

重启mysql

#  service mysqld restart

在从服务器上建立相应的数据库

#  mysql -uroot -p

将192.168.100.204设置为自己的主服务器

mysql>  CHANGE MASTER TO

MASTER_HOST=‘192.168.100.204‘,MASTER_PORT=3306,

MASTER_USER=‘dodo‘,

MASTER_PASSWORD=‘jjjjjj‘,

MASTER_LOG_FILE=‘bin.000001‘,

MASTER_LOG_POS=120;

启动从服务器复制功能

mysql>  start slave;

mysql>  show slave status\G;

...................
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...................

注:

#Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件

#Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。

上面两个必须都是yes,其中一个NO均属错误

mysql>  exit

至此,单向主从配置完毕,如需要互为主从则配置如下

--------------------以下在服务器master2上操作

建立用于同步的账户

#  mysql -uroot -p

mysql>  grant replication slave on *.* to ‘dodo‘@‘192.168.100.204‘ identified by ‘jjjjjj‘;

查看File对应值,并记录下来

mysql>  show master status;

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| bin.000001       |      649 | doiido       |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql>  exit

--------------------以下在服务器master1上操作

将192.168.100.205设置为自己的主服务器

mysql>  CHANGE MASTER TO

MASTER_HOST=‘192.168.100.205‘,

MASTER_PORT=3306,

MASTER_USER=‘dodo‘,

MASTER_PASSWORD=‘jjjjjj‘,

MASTER_LOG_FILE=‘bin.000001‘,

MASTER_LOG_POS=649;

启动从服务器复制功能

mysql>  start slave;

mysql>  show slave status\G;

...................
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...................

上面两个必须都是yes,其中一个NO均属错误

mysql>  exit

至此互为主从配置完毕

时间: 2024-08-26 13:00:33

Linux下 Mysql 互为主从的相关文章

linux下mysql数据库主从同步配置

说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说明:在两台MySQL服务器192.168.21.128和192.168.21.129上分别进行如下操作 备注: 作为主从服务器的MySQL版本建议使用同一版本! 或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本! 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接

Linux下mysql主从配置

mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复需要两台机器,安装mysql,两台机器要在相通的局域网内主机A: 192.168.1.100从机B:192.168.1.101可以有多台从机1.先登录主机 Amysql>GRANT REPLICATION SLAVE ON *.* TO ‘backup’@’192.168.1.101‘ IDENTIFIED BY ‘123456’;赋予从机权限,有多台丛机,就执行多次2. 打开主机A的my.cnf,输入server

linux下 mysql主从备份

在使用Ubuntu作为开发环境时经常需要在全局安装一些依赖框架等,这个时候就常常需要用到root权限,但是在Ubuntu下第一次使用su命令时会提示认证失败:查找资料后发现Ubuntu下root权限默认是锁定的,可能是处于安全考虑,但是作为开发人员肯定是需要root权限的. 在命令行中可以输入下面命令设置root密码,这样就能随时使用root权限了: [email protected]:~$ su 密码: su:认证失败 [email protected]:~$ sudo passwd [sud

linux下mysql基于mycat做主从复制和读写分离之基础篇

Linux下mysql基于mycat实现主从复制和读写分离1.基础设施 两台虚拟机:172.20.79.232(主) 172.20.79.233(从) 1.1软件设施 mysql5.6.39 , mycat1.6-RELEASE jdk1.7及其以上版本2.实现步骤一(mycat实现读写分离) 1.首先在两台服务器安装mysql 1.下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rp

Mysql互为主从问题

我搭建的是mysql 互为主从 复制 两台机器的mysql环境完全相同 第一部分测试: B为master  A为slave的同步测试 在B上创建表lian,并插入数据mysql> create table lian (a int,b char(10)); mysql> insert into lian (a,b)values(22,'hahah'); mysql> show tables;+------+| Tables_in_test |+------+| lian          

Linux下MySQL忘记密码

系统:CentOS6.6 64位 参考文档(截图请看原网址): Linux下MySQL忘记root密码怎么办_百度经验 http://jingyan.baidu.com/article/1709ad80a8caf14634c4f013.html 具体步骤如下: 修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables 保存配置文件后,重启MySQL服务 service mysqld restart 再次进入MySQL命令行 mysq

Linux下Mongodb数据库主从同步配置

说明: 有两台已经安装完成的Mongodb数据库服务器,现在需要把一台设置为主库,另一台设置为从库,实现主从同步. 操作系统:CentOS 7.0 64位 MongoDB数据库版本:mongodb-linux-x86_64-2.6.5 准备工作:MongoDB数据库安装 具体操作: 一.配置MongoDB主库 以下操作在MongoDB主库服务器上进行 1.cd  /usr/local/mongodb/ #进入MongoDB安装目录 vi /usr/local/mongodb/mongodb.co

linux下mysql忘记root密码怎么办

Linux下MySQL忘记root密码怎么办? Linux下MySQL忘记root密码怎么办? 1. 修改MySQL配置文件 默认MySQL的配置文件为/etc/my.cnf,在[mysqld]下面添加一行 1.skip-grant-tables 2. 保存配置文件,重启MySQL服务 1.service mysqld restart 3. 再次进入MySQL 1.[[email protected] mysql]$ mysql -u root -p2.Enter password: #此处直接

linux下mysql 安装

小菜鸟接触linux太晚, 装个mysql(免安装 mysql-5.6.22-linux-glibc2.5-x86_64版本,最简单的安装方法) 竞折腾了两个晚上… 网上到处有linux下mysql的安装,但我自己安装过程中总出现这样那样的问题,现将此次安装过程及错误记录,以供自己日后参考,也希望可以给后来人一些帮助… 1. 去Oracle下载mysql-5.6.22-linux-glibc*.tar.gz 2.解压 tar -zxvf mysql-5.6.22-linux-glibc*.tar