mysql的主从配置

mysql linux 免安装配置

1.安装前必须删除原来的安装

需要检查 以下文件是否存在 ,如果存储则要删除之

/etc/my.cnf

/etc/init.d/mysqld

2.mysql 依赖的库

shell> yum search libaio # search for info

shell> yum install libaio # install library

3.创建mysql 与用户组,-s /bin/false 表示该用户不能登录

shell> groupadd mysql

shell> useradd -r -g mysql -s /bin/false mysql

 4.解压安装包至指定目录

shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz

shell> ln -s full-path-to-mysql-VERSION-OS mysql

shell> cd mysql

5.为 mysql 用户添加权限

shell> chown -R mysql ./

shell> chgrp -R mysql ./

#创建data目录并添加权限

shell> mkdir -p /data/mysql

shell> chown -R mysql:mysql /data/mysql

6.拷贝配置文件

shell> cp support-files/my-default.cnf  /etc/my.cnf

#修改配置

shell> vim /etc/my.cnf

shell> cp support-files/mysql.server /etc/init.d/mysql

7.初始化 mysql

shell> ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

8.添加环境变量

shell> vi /etc/profile

PATH=/home/cbt/svr/mysql/bin:$PATH

export PATH

#让刚才的修改生效

shell> source /etc/profile

9.启动及其它配置 #启动数据库


service mysql start

(如果启动失败, 查看hosts文件配置IP地址)

#开机启动

chkconfig mysqld on

#初始化mysql的一些设置

mysql_secure_installation

#回车

Enter current password for root (enter for none):

#y,设置mysql的root密码

Set root password?[Y/n] y

#以下都yes

Remove anonymous users?[Y/n] y

Disallow root login remotely?[Y/n] y

Remove test database and access to it?[Y/n] y

Reload privilege tables now?[Y/n] y

ThanksforusingMySQL!

 10.允许远程登陆

1. mysql> use mysql;

2. mysql> select host,user,password from user;

3. mysql> update user set password=password('123456') where user='root';

4. mysql> update user set host='%' where user='root' and host='localhost';

5. mysql> flush privileges; 


++++++++++++++++++++++++++++++++++++++++++++++++++

配置主从同步基本思路是


1.master my.cnf 配置

 
 
 
 
 
 
#数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值;   
server-id = 1  
#binlog 格式
binlog-format=ROW
#启用二进制日志;
log-bin=mysql-master-bin
#slave更新时是否记录到日志中;log-slave-updates=true
#开启半同步rpl_semi_sync_master_enabled=ON 
#需要同步的二进制数据库名;
binlog-do-db=tuling(这里你需要同步的数据库)
#不同步的二进制数据库名,如果不设置可以将其注释掉;
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=personalsite
binlog-ignore-db=test
#设定生成的log文件名;  
log-bin="D:/Database/materlog"  
#把更新的记录写到二进制文件中;  
log-slave-updates  

 
 

(如果重启mysql无法启动,通过查找err文件发现rpl_semi_sync_master_enabled=ON  有问题,注释掉

通过以下步骤进行配置半同步

mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
Query OK, 0 rows affected (0.21 sec)

mysql> show variables like 'rpl_%';
+------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| rpl_recovery_rank                  | 0     | 
| rpl_semi_sync_master_enabled       | OFF   | 
| rpl_semi_sync_master_timeout       | 10000 | 
| rpl_semi_sync_master_trace_level   | 32    | 
| rpl_semi_sync_master_wait_no_slave | ON    | 
+------------------------------------+-------+
5 rows in set (0.00 sec)
设置变量,启用半同步复制

mysql> set global rpl_semi_sync_master_enabled=on ;
Query OK, 0 rows affected (0.02 sec)
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
Query OK, 0 rows affected (0.21 sec)

mysql> show variables like 'rpl_%';
+------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| rpl_recovery_rank                  | 0     | 
| rpl_semi_sync_master_enabled       | OFF   | 
| rpl_semi_sync_master_timeout       | 10000 | 
| rpl_semi_sync_master_trace_level   | 32    | 
| rpl_semi_sync_master_wait_no_slave | ON    | 
+------------------------------------+-------+
5 rows in set (0.00 sec)
设置变量,启用半同步复制
mysql> set global rpl_semi_sync_master_enabled=on ;
Query OK, 0 rows affected (0.02 sec)

 
 

2.创建用户用于主从同步的数据库(是用于与从库进行连接的用户,与登入主库帐号无关)

grant replication slave,super,reload on *.* to slave1@192.168.142.128 identified by '123456';

3.查看主节点状态

mysql> show master status

#在主库上查看已连接的slave主机

mysql> show slave hosts;

#查看所有binlog日志

mysql> show binary logs;

#查看所有binlog 事件

mysql> show binlog events in 'mysql-bin.000003';


4.slave my.cnf 配置

#如果需要增加Slave库则,此id往后顺延;  
server-id = 2    
log-bin=mysql-bin  
#主库host  
master-host = 192.168.168.253  
#在主数据库服务器中建立的用于该从服务器备份使用的用户  
master-user = forslave  
master-password = ******  
master-port = 3306  
#如果发现主服务器断线,重新连接的时间差;  
master-connect-retry=60  
#不需要备份的数据库;   
replicate-ignore-db=mysql  
#需要备份的数据库  
replicate-do-db=minishop  
log-slave-update


5.Slave 相关操作


#启动slave

mysql>start slave;

mysql>stop slave;

#查看 slave 状态

show slave status\G;


备注:1)运行配置后的主数据库服务器先于从数据库服务器,这样运行从数据库服务器时,主库的 File 和 Position 与 从库的上设置Master_Log_File、Read_Master_Log_Pos 就会一致。否则,可能出现不一致的情况。这也可以通过命令调整。

2)如果发现主从复制失败时,可以先关闭从数据库服务器,然后删除从数据库服务器中data目录下relay-log.info,hosname-relay-bin*,master.info等文件,重启从服务器。

slave 节点修改master 配置

mysql>change master to master_host='192.168.142.128', master_user='slave1', master_password='123456' ,MASTER_AUTO_POSITION = 341;

 

读写分离实现 360 Atlas

安装与卸载Atlas

#安装

shell> rpm -i Atlas-2.2.1.el6.x86_64.rpm

#卸载

shell> rpm -e Atlas-2.2.1.el6.x86_64.rpm

安装目录在 /usr/local/mysql-proxy/ 当中

Atlass配置

#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔

proxy-backend-addresses = 127.0.0.1:3306

#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔

#proxy-read-only-backend-addresses = 127.0.0.1:3305@1

#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密。用户密码所有主库和从库都必须一至

pwds = root:/iZxz+0GRoA=

#Atlas监听的工作接口IP和端口

proxy-address = 0.0.0.0:1234

启动与关闭Atlas

./mysql-proxyd test start

./mysql-proxyd test stop

以代理方式进行管理员登录

mysql -h127.0.0.1 -P2345 -uroot -proot


猜你喜欢

转载自blog.csdn.net/u014801403/article/details/80031531