1.目的

1.1 实现数据备份

1.2 项目访问时可以实现读写分离,提高访问和操作数据的速度

2.背景

这次的主从配置主要实现主库数据的改变可以实现同步到从库中;

此次试验的主库为liunx 下mysql 5.6.19,从库为windows10 下mysql 5.6.24;

3.准备知识

3.1 在liunx下mysql的配置文件为:

/etc/mysql/my.conf

3.2 在windows下mysql的配置文件为:

mysqlpath/my.ini

3.3 在不同的系统环境下,配置的文件的路径和后缀名是不同的;

3.4 在liunx系统环境下,mysql 服务的启动关闭重启的命令如下:

sudo start mysql; //启动服务

sudo stop mysql; //关闭服务

sudo restart mysql; //重启

mysql主从集群怎么区别主库和从库 mysql主库从库配置_mysql主从集群怎么区别主库和从库

3.5 每次修改配置文件,需要重启服务再查看结果

4. 配置主从数据库

4.1 打开3306端口,可以允许远程访问主库端口;

a.首先查看端口是否打开

netstat -an|grep 3306

mysql主从集群怎么区别主库和从库 mysql主库从库配置_mysql 主从数据库配置_02

上图是打开的情况下的数据展示,如果没有打开会出现 127.0.0.1 的数据;如果没有打开,则需要到 /etc/mysql/my.conf 中将bind-address = 127.0.0.1 注销

#bind-address = 127.0.0.1 //注销示例

bind-address = 127.0.0.1

重启服务查看端口是否打开;

b.设置远程可以访问mysql数据库的权限

进入主库使用sql命令设置权限,如下:

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| cmdb |

| mysql |

| performance_schema |

| test |

+--------------------+

rows in set (0.00 sec)

mysql> use mysql;

Database changed

mysql> update user set host='%' where user='root';

ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' //虽然报错,但实际更新成功;

// 备选 mysql>grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';

打开另一个终端,执行如下命令:

[root@zhoujietest ~]#mysql -u root

mysql>delete from user where user='';

mysql>flush privileges; #刷新权限

mysql>\q

重启服务,执行如下命令查看权限赋予情况:

mysql>mysql -u root -p

mysql>use mysql;

mysql>selsct user,host from user;

可得到如下数据:

mysql主从集群怎么区别主库和从库 mysql主库从库配置_数据库_03

host中%表示可以远程使用root账号访问;

4.2 配置mysql主从配置文件

主库:192.168.0.175

从库:192.168.0.170

a.主库配置

*添加的配置必须在[mysqld]范围内,不然无法启动服务

[mysqld]

log-bin=mysql-bin

server-id=1

binlog-do-db = cmdb //需要同步的数据库

#binlog-ignore-db = nodb //不需要同步的数据库

修改后重启服务,查看主库设置情况,如下:

mysql> show master status;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+---------------+----------+--------------+------------------+

| binlog.000001 | 1304 | cmdb | |

+---------------+----------+--------------+------------------+

row in set (0.00 sec)

b.从库配置i

设置配置文件:

[mysqld]

server-id=2 //服务器id,区别于主库的server-id

master-host=192.168.0.175 //主库ip

master-user=rep1 //5.5-

master-password=test123456 //5.5-

master-port=3306 //5.5-

replicate-do-db=cmdb //5.5-

......

配置文件除server-id外,mysql 5.5+ 版本需要在命令行中设置其余属性:

mysql> CHANGE MASTER TO

-> MASTER_HOST='master_host_name',

-> MASTER_USER='replication_user_name',

-> MASTER_PASSWORD='replication_password',

-> MASTER_LOG_FILE='recorded_log_file_name',//数据需要同show master status 中的数据一致

-> MASTER_LOG_POS=recorded_log_position;//数据需要同show master status 中的数据一致

启动slave进程

mysql> start slave;

Query OK, 0 rows affected (0.04 sec)

查看slave的状态,如果下面两项值为YES,则表示配置正确:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

mysql主从集群怎么区别主库和从库 mysql主库从库配置_数据库_04

c.将主库已有数据复制到从库

ca.命令复制

主库:

mysql>flush tables with read lock;//停止主库的数据更新操作

打开新的终端:

[root@zhoujietest ~]# mysqldump -uroot -ptest123 cmdb > cmdb.sql //生成主数据库的备份(导出数据库)

[root@zhoujietest ~]# scp cmdb.sql root@192.168.0.170:/root/ //将备份文件传到从库

mysql>unlock tables;//主库解锁

从库:

mysql>slave stop;//停止从库slave

mysql> create database cmdb default charset utf8;//新建数据库cmdb

[root@ops-dev ~]# mysql -uroot -ptest123 cmdb

mysql> show databases;//查看从库已有该数据库和数据

+--------------------+

| Database |

+--------------------+

| information_schema |

| cmdb |

| mysql |

| performance_schema |

| test |

+--------------------+

cb.使用工具直接从主库复制到从库中

d.主库数据更改后,从库自动更新。

5. 后续问题

从库修改数据后,会导致从库同步主库出错,无法同步到主库的数据;

解决方案:重新配置从库数据,重新导入数据,重启服务。

6.项目配置读写分离

参考资料:

能力有限,文档可能存在不当之处,各位指正。

MYSQL配置主从同步

MYSQL配置主从同步 mysql主服务器配置 vim /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql. ...

Mysql的主从数据库没有同步的解决办法

Mysql的主从数据库没有同步的解决办法 今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. ...

解决Mysql的主从数据库没有同步的两种方法

今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist;   查看下进程是否Sleep太多.发现很正常.show master status; ...

windows与linux中的mysql配置主从

最近在给学生讲解数据库的主从配置,由于学生电脑里面装的虚拟机是linux的,但是本机的系统是windows的,所以需要用windows中的mysql与linux中的mysql进行主从配置.下面说一下主 ...

Mysql配置主从同步的基本步骤

# 配置主从同步的基本步骤 #总结为如下的步骤: # .在主服务器上,必须开启二进制日志机制和配置一个独立的ID # .在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号 ...

mysql服务器主从数据库同步配置(转)

首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务.&lt ...

mysql服务器主从数据库同步配置

首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务. 主机A: 192.168.1.100 从机B: 192.168.1.101 可以有多台从机. 1. ...

mysql5.5.15配置主从数据库

1.编辑主库的my.cnf 在[mysqld]下添加如下配置 server-i=1 #一般默认为1,不需要修改(一般都以ip的后两位为server-id,保证全局的一致) read-only=0#主库 ...

随机推荐

java.util.NoSuchElementException解决办法

报错代码 public void switchToNewWindow(){ //得到当前句柄 String currentWindow = driver.getWindowHandle(); //得到 ...

将activity变成dialog风格

其实很简单: 只是把activity的theme设置成dilog形式的:

15个nosql

1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存 储解决方案.当数据量达到50GB以 ...

HTML5分析实战Web存储机制(Web Storage)

Web Storage它是Key-Value在持久性数据存储的形式.Web Storage为了克服cookie把所引起的一些限制.当数据需要严格格控制client准时,没有必要不断地发回数据serve ...

cumprod、prod函数

1.prod函数 prod函数用于求矩阵元素的积,其调用格式如下. (1)B=prod(A):若A为向量,则返回所有元素的积:若A为矩阵,则返回各列所有元素的积. (2)B=prod(A,dim):返 ...

基于Verilog的带FIFO写入缓冲的串口发送接口封装

一.模块框图及基本思路 tx_module:串口发送的核心模块,详细介绍请参照前面的“基于Verilog的串口发送实验” fifo2tx_module:当fifo不为空时,读取fifo中的数据并使能发 ...