mysql读写分离(主从复制)实现
mysql主从复制
怎么安装mysql数据库,这里不说了,仅仅说它的主从复制。过程例如以下:
主从最好都是同一种系统比方都是linux,或者都是windows,当然混合着也是能够成功,不解释了
1、主从server分别作下面操作:
1.1、版本号一致
1.2、初始化表,并在后台启动mysql
1.3、改动root的password
2、改动主servermaster:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
注意 windows下的是在安装文件夹下的my.ini,假设是my-default.ini就重命名为my.ini。其它配置一样,命令不一样,你们自己百度吧
注意一下mysql的5.6版本号里面的server_id是下横杠"_"不是中横杠"-"。不然会报错,版本号差异还是有的
3、改动从serverslave:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
4、重新启动两台server的mysql
/etc/init.d/mysql restart
Windows是这种
1.点击“開始”->“执行”(快捷键Win+R)。
2.启动:输入 net stop mysql
3.停止:输入 net start mysql
或者windows下能够在安装bin文件夹下运行 : "mysqladmin -uroot -p --port 3306 shutdown "进行关闭mysql后再启动 注意:--port是两个"-";
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaDM0ODU5MjUzMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
启动能够双击安装文件夹/bin下的mysqld.exe启动
5、在主server上建立帐户并授权slave:
#/usr/local/mysql/bin/mysql -uroot -pmttang
mysql>GRANT REPLICATION SLAVE ON *.* to '授权的username'@'%' identified by 'password'; //一般不用root帐号,“%”表示全部client都可能连,仅仅要帐号。password正确,此处可用详细clientIP取代,如192.168.145.226,加强安全。
6、登录主server的mysql,查询master的状态
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000007 | 308 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:运行完此步骤后不要再操作主serverMYSQL。防止主server状态值变化
7、配置从serverSlave:
mysql>change master to master_host='192.168.1.222',master_user='主库的username',master_password='密码',
master_log_file='mysql-bin.000004',master_log_pos=308; //注意不要断开,“308”无单引號。
Mysql>start slave; //启动从server复制功能
8、检查从server复制功能状态:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.222 //主server地址
Master_User: test //授权帐户名。尽量避免使用root
Master_Port: 3306 //数据库port,部分版本号没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于>=Exec_Master_Log_Pos
Relay_Log_File: ddte-relay-bin.000003
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
......
注:Slave_IO及Slave_SQL进程必须正常执行,即YES状态,否则都是错误的状态(如:当中一个NO均属错误)。
以上操作过程,主从server配置完毕。
9、主从server測试:
主serverMysql,建立数据库,并在这个库中建表插入一条数据:
mysql> create database hi_db;
Query OK, 1 row affected (0.00 sec)
mysql> use hi_db;
Database changed
mysql> create table hi_tb(id int(3),name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into hi_tb values(001,'bobu');
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hi_db |
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
从serverMysql查询:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hi_db | //I'M here。大家看到了吧
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use hi_db
Database changed
mysql> select * from hi_tb; //能够看到在主server上新增的详细数据
+------+------+
| id | name |
+------+------+
| 1 | bobu |
+------+------+
1 row in set (0.00 sec)
最新文章
- centos mysql 安装及配置
- zabbix 分布式监控(proxy)源码安装
- lightning mdb 源代码分析(5)-事务控制
- php中封装的curl函数(抓取数据)
- C#开发-ftp操作方法整理
- Message,MessageQueue,Looper,Handler ——由view.post(runnable想到的)
- 01-资料管理器(Directory/DirectoryInfo操作文件夹类)
- 《小猪CMS(PigCms)多用户微信营销服务平台系统V6.1完美破解至尊版带微用户管理CRM+微信支付》
- Android高斯模糊技术,实现毛玻璃效果(转)
- AGC010 - C: Cleaning
- [LeetCode] Minimum ASCII Delete Sum for Two Strings 两个字符串的最小ASCII删除和
- bzoj3212 Pku3468 A Simple Problem with Integers 线段树
- php代理
- Vue系列之 =>; webpack-babel的配置
- 要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10;
- tomcat运行超时问题解决
- 第三个sprint冲刺第二阶段
- 关于Unity中NGUI的背包实现之Scrollview(基于Camera)
- Python爬虫使用MD5加密的坑
- 枚举+最短路 poj1062