mysql在ubuntu环境下配置主从数据学习笔记
来源:互联网 发布:用友软件招聘信息 编辑:程序博客网 时间:2024/05/29 10:56
本来是很简单的一个配置,但是因为mysql版本的原因致使照着网上别人的文章花了老鼻子力气也没配出来。现在把整个过程记录下来以供以后使用的时候有所参照!
纸上得来终觉浅 绝知此事要躬行!切记切记!
首先装备Ubuntu环境,我本机用的是ubuntu-12.04.3-desktop-amd64版本。
第一步,建立两个ubuntu的虚拟机
ubuntu 主: 192.168.80.129
ubuntu 备: 192.168.80.130
第二步,分别建立mysql:
1.命令行下执行 sudo apt-get install mysql-server
执行中间会要求输入root的密码,整个过程不报错,则安装成功。我当前的安装后的mysql版本是5.5.38-0ubuntu0.12.04.1-log
2.分别为2台服务器上的mysql修改root账号密码
用root账号,密码不输登陆mysql,选择mysql数据库 use mysql
update user set password=password('newpassword') where user='root';
flush privileges; #一定要刷新,不然不生效
3.分别为2台机器设置允许其他主机远程连接mysql服务
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限
flush privileges;
执行完后最好重启mysql服务!
4.创建共享数据库
分别登录master机和slave机的mysql:mysql –u root –p
创建数据库:create database testrep;
5.修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
sudo gedit /etc/mysql/my.cnf
在[mysqld]配置段添加如下字段
server-id=129
log-bin=log
binlog-do-db=testrep
binlog-ignore-db=mysql
在master机上为slave机添加一同步帐号
grant replication slave on *.* to 'repl'@'192.168.80.130' identified by '123456';
重启master机的mysql服务:service mysqld restart
用show master status
mysql>show master status;
+-----------------+------------+-------------------+-----------------------+
| File
+-----------------+------------+-------------------+-----------------------+
|
+-----------------+------------+-------------------+-----------------------+
1 row in set (0.00 sec)
记录下File 和 Position的值,后续再slave机中设置slave备份需要。
6.修改slave机中mysql配置文件(有很多网上教程说在my.cnf中配置master-host等master开头的参数,结果在本mysql版本中,配置了识别不了,坑爹!最好是改为用change master方式解决)
同样在[mysqld]字段下添加如下内容
server-id=130
replicate-ignore-db=mysql
replicate-do-db=testrep
然后重启slave机的mysql
在slave机中进入mysql
再首先执行 stop slave;
然后执行 change master to master_host='192.168.80.129', master_user='repl', master_password='123456', master_log_file='log.000003' ,master_log_pos=98; (此处值需和master机器中查出的一致)
最好执行
mysql>start slave;
mysql>show slave status\G;
如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。
7、测试主从服务器是否能同步
在主服务器上面新建一个表,必须在testrep数据下
mysql> use testrep
Database changed
mysql> create table test(id int,name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values(1,'zaq');
Query OK, 1 row affected (0.00 sec)
mysql> insert into test values(1,'xsw');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+------+------+
| id
+-------+------+
|
|
+-------+------+
2 rows in set (0.00 sec)
在从服务器查看是否同步过来
mysql> usetestrep;
Database changed
mysql> select * from test;
+------+------+
| id
+------+------+
|
|
+------+------+
2 rows in set (0.00 sec)
说明已经配置成功,第一种主从成功
再加一个备份slave,ubuntu 备2: 192.168.80.132, 执行步骤如第一个slave的配置后,第一种主从从成功
接着实验双机互为主备:
ubuntu 主备1: 192.168.80.129
ubuntu 主备2: 192.168.80.130
1.修改原 ubuntu 主备1: 192.168.80.129 的配置文件my.cnf
server-id=129
log-bin=log
binlog-do-db=testrep
binlog-ignore-db=mysql
replicate-ignore-db=mysql
replicate-do-db=testrep
2.在master机上为slave机添加一同步帐号
grant replication slave on *.* to 'repl'@'192.168.80.130' identified by '123456';
重启master机的mysql服务:service mysqld restart
用show master status
mysql>show master status;
+-----------------+------------+-------------------+-----------------------+
| File
+-----------------+------------+-------------------+-----------------------+
|
+-----------------+------------+-------------------+-----------------------+
1 row in set (0.00 sec)
记录下File 和 Position的值为log.000004和107,后续在(ubuntu 主备2)slave机中设置slave备份需要。
binlog-do-db=testrep
binlog-ignore-db=mysql
replicate-ignore-db=mysql
replicate-do-db=testrep
auto_increment_offset = 2
auto_increment_increment = 2
log-bin=log
change master to master_host='192.168.80.129', master_user='repl', master_password='123456', master_log_file='log.000004' ,master_log_pos=107;
然后重启slave,start slave;
查看show slave status\G;,出现如下两个YES则Slave备份配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
4.ubuntu 主备2中为为slave用户(ubuntu 主备1: 192.168.80.129)添加同步专用权限
grant replication slave on *.* to 'repl'@'192.168.80.129' identified by '123456';
flush privileges;
change master to master_host='192.168.80.130', master_user='repl', master_password='123456', master_log_file='log.000001' ,master_log_pos=107;
然后重启slave,start slave;
查看show slave status\G;,出现如下两个YES则Slave备份配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
解决slave进程No的情况
http://zhidao.baidu.com/link?url=eewPAI9oQCes7umENqRdo3Z6Z5wXn_Qv7NuU_6iJ1PuFONUgtCJOoZvnzctsts_04BQ4ayZKFow7Xlpm0vicPq
- mysql在ubuntu环境下配置主从数据学习笔记
- ubuntu环境下配置mysql主从复制
- mysql主从配置学习笔记
- Ubuntu环境下的MySQL主从分离
- ubuntu下的mysql主从配置:
- ubuntu下配置mysql主从复制
- MySQL主从环境配置(笔记系列)
- wamp环境下MySQL配置主从复制
- mysql在windows下主从同步配置
- MySQL学习笔记--简单主从复制配置
- Ubuntu环境下配置mysql
- mysql主从数据配置
- mysql主从配置笔记
- Ubuntu下MySQL主从库配置(未测)
- Ubuntu下安装Mysql(5.5)和主从功能配置
- Ubuntu下Mysql的主从配置(一)
- centOS6.5环境下mysql主从配置步骤
- ubuntu 14.04 mysql 主从配置
- zoj 2778 - Triangular N-Queens Problem
- 问题11:参数文件spfile丢失的情况下,如何恢复?
- Copy from chromium-dev!
- 快速求幂
- 怎样使用Navigation Drawer控件?
- mysql在ubuntu环境下配置主从数据学习笔记
- 双电源之间切换最简单实用
- 细谈Lucene(二):Lucene的搜索组件 详解
- OpenGL如何利用glDrawPixels来读取glreadPixels保存的文件
- pthread_cond_init,pthread_cond_wait
- zoj 2711 - Regular Words
- 抽象类,抽象方法
- Unity3D - AssetBundle 在Android机子上进行读取
- Lua中table求长度的集中方法