mysql配置主从数据库
1.目的
1.1 实现数据备份
1.2 项目访问时可以实现读写分离,提高访问和操作数据的速度<读写分离好处>
2.背景
这次的主从配置主要实现主库数据的改变可以实现同步到从库中;
此次试验的主库为liunx<ubuntu4.8.2> 下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; //重启

3.5 每次修改配置文件,需要重启服务再查看结果
4. 配置主从数据库
4.1 打开3306端口,可以允许远程访问主库端口;
a.首先查看端口是否打开
netstat -an|grep 3306

上图是打开的情况下的数据展示,如果没有打开会出现 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;
可得到如下数据:

host中%表示可以远程使用root账号访问;
4.2 配置mysql主从配置文件
主库:192.168.0.175
从库:192.168.0.170
a.主库配置 </etc/mysql/my.conf>
*添加的配置必须在[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<mysqlpath/my.ini>
设置配置文件:
[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

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<cmdb.sql //导入数据
mysql> show databases;//查看从库已有该数据库和数据
+--------------------+
| Database |
+--------------------+
| information_schema |
| cmdb |
| mysql |
| performance_schema |
| test |
+--------------------+
cb.使用工具<Navicat>直接从主库复制到从库中
d.主库数据更改后,从库自动更新。
5. 后续问题
从库修改数据后,会导致从库同步主库出错,无法同步到主库的数据;
解决方案:重新配置从库数据,重新导入数据,重启服务。
6.项目配置读写分离
移步:http://www.cnblogs.com/springlight/p/5905720.html
参考资料:
1.http://www.cnblogs.com/zhoujie/p/mysql1.html
2.http://dev.mysql.com/doc/refman/5.6/en/replication-howto.html
3.http://www.linuxdiyf.com/linux/15206.html
4.http://www.cnblogs.com/linjiqin/p/5270938.html
能力有限,文档可能存在不当之处,各位指正。
mysql配置主从数据库的更多相关文章
- 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配置主从模式 Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
今天在学习MyCat环境搭建的时候,在配置MySql的主从模式,发现slave在配置完毕后,配置的内容全部正确的情况下,报错了? Last_IO_Error: Fatal error: The sla ...
- Mysql配置 主从同步
目录 一.准备 二.操作 主数据库操作 从服务器操作 一.准备 1.主从数据库版本最好一致 2.主从数据库内数据保持一致,若不一致,可将从库中所有数据删除,并将主库全部数据导入进去 主数据库:182. ...
- MySQL配置主从分离
主服务器 192.168.176.110 从服务器 192.168.176.120 主数据库操作(ip:192.168.176.110) 配置MySQL主服务器的配置文件 [root@localho ...
- mysql服务器主从数据库同步配置(转)
<a href=""></a> <p>首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务.< ...
随机推荐
- 第13章 Swing程序设计----常用面板
面板也是一个Swing容器,它可以作为容器容纳其他组件,但它也必须被添加到其他容器中. Swing常用的面板包括JPanel面板和JScrollPanel面板. 1.JPanel面板 import j ...
- asp.net MVC 3多语言方案--再次写, 配源码
之前写了一篇asp.net MVC多语言方案,那次其实是为American Express银行开发的.有许多都是刚开始接触,对其也不太熟悉.现在再回过头去看,自己做一个小网站,完全用asp.net m ...
- 转:XPath路径表达式
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. XML 实例文档 我们将在下面的例子中使用这个 XML 文档. & ...
- 10、end关键字和Fibonacci series: 斐波纳契数列
# Fibonacci series: 斐波纳契数列 # 两个元素的总和确定了下一个数 a, b = 0, 1 #复合赋值表达式,a,b同时赋值0和1 while b < 10: print(b ...
- opencart添加任意页面到导航栏(修改一级菜单)
pencart默认的黑色导航栏只显示分类目录下的一级分类,这块整个网页中最显眼的“风水宝地”怎么能让他闲置呢,因此我想到了为opencart导航栏添加自定义页面,它可以连接到任意一个网址或者ope ...
- eclipse proxy
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.ht ...
- gcd timer
//0.创建队列 dispatch_queue_t queue = dispatch_get_global_queue(, ); NSLog(@"%s",__func__); // ...
- typedef和block
为block类型对象取别名 1.没有使用typedef的情况 int (^block_add)(int, int) = ^(int value1, int value2) { return value ...
- 使用maven管理后,依然找不到需要的jar包
使用maven管理后,依然报错,找不到,比如如下错误java.lang.ClassNotFoundException: org.springframework.web.context.ContextL ...
- Cocos2dx 学习笔记整理----场景切换
据说Cocos2dx场景切换的方法有32种:cocos2dx 常见的32种切换场景的动画 无需一一求证,只需要知道切换场景需要怎么做就行了. 作为导演CCDirector,切换场景的事情当然归它管了. ...