Mysql主从同步部署
来源:互联网 发布:vray3 for sketch mac 编辑:程序博客网 时间:2024/06/10 15:23
1、创建两台虚拟机
Master:172.10.12.248
Slave:172.10.12.249
2、安装mysql,我这里是通过脚本来安装二进制mysql5.5
#!/bin/bash####Author:lsy########Time:2017/07/25########一键安装Mysql-5.5版本####
####查询mysql用户是否存在####
user=mysqlgroup=mysql#create group if not exists egrep "^$group" /etc/group >& /dev/nullif [ $? -ne 0 ]then groupadd $groupfi#create user if not exists egrep "^$user" /etc/passwd >& /dev/nullif [ $? -ne 0 ]then useradd -g $group $userfi####安装依赖####yum -y install autoconf libaio*####源码包存放路径####if [ -d /tools ]then echo "Dir already exists"else echo "Dir don't exists" mkdir /toolsficd /tools####下载Mysql源码包#####if [ -e /tools/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz ]#then# echo "Mysql源码包已存在"#else# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz#fi####二进制安装mysql####m_name="mysql-5.5.22-linux2.6-x86_64"package="${m_name}.tar.gz"M_dir=`ls -l /usr/local |egrep "^d" |awk '{print $9}' |egrep "^mysql"`if [ $? -eq 0 ]then echo "Mysql already exists"else tar xf $package -C /usr/local cd /usr/local mv $m_name mysql cd mysql chown -R mysql . chgrp -R mysql . #mkdir -p /data/mydb #chown -R mysql:mysql /data/mydb scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data cp support-files/mysql.server /etc/init.d/mysqldficd /etc/if [ -e /etc/my.cnf ]then echo "File already exists" > /etc/my.cnf cat >> /etc/my.cnf << EOF[mysqld]user = mysqlbasedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306server_id = 1socket = /tmp/mysql.sockEOFelse echo "File don't exists" cat >> /etc/my.cnf << EOF[mysqld]user = mysqlbasedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306server_id = 1socket = /tmp/mysql.sockEOFfiln -s /usr/local/mysql/bin/* /usr/bin####启动mysql####/etc/init.d/mysqld start####判断mysql是否正常启动####ps -ef |grep mysql |grep -v grep >/dev/nullif [ $? -eq 0 ]then echo "Mysqld started successfully"else echo "Mysqld started failed"fi
3、安装好mysql后,我们需要给mysql设置密码
#mysqlmysql> USE mysql ;mysql> UPDATE user SET Password = password('123456') WHERE User='root';mysql> flush privileges ;mysql> quit
主库操作
4、创建主从同步的账号
mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'slave'@'172.10.12.249' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.00 sec)REPLICATION SLAVE用于复制型从属服务器(从主服务器中读取二进制日志事件)RELOAD允许使用FLUSHSUPER允许使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL语句172.10.12.249是从库的地址slave是需要同步的用户名123456为远程同步密码
5、主从同步的账号创建好了,我们就要锁住主数据库的表
mysql>flush table with read lock;
mysql>show master status;
6、这步我备份了主数据库所有库,用于导入从数据库。
#mysqldump -uroot -p123456 --all-databases > /work/all.sql
从库操作
在从数据库上有以下几步
1)修改server-id
2)启用中继日志
3)连接主服务器
4)启动复制线程
7、修改从服务器的相关配置文件信息
# vim /etc/my.cnfserver-id = 2relay-log = /usr/local/mysql/log/relay-binMysql使用的相应目录都需要授权为mysql 用户的chown -R mysql:mysql /var/log/mysql/logs/relay-bin重启Mysql服务/etc/init.d/mysqld restart连接到从服务器的Mysql上mysql -uroot -pits123查看从服务器的中继日志是否在启动状态mysql>show global variables like '%relay%'
8、在从库服务器上执行
mysql> CHANGE MASTER TO MASTER_HOST='172.10.12.248', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=330, MASTER_CONNECT_RETRY=10;参数说明MASTER_HOST 主服务器的IPMASTER_USER 主服务器上授权复制的用户名MASTER_PASSWORD 主服务器上授权用名的密码MASTER_PORT 主服务器的Mysql端口MASTER_LOG_FILE 主服务器上的日志文件MASTER_LOG_POS 主服务器上日志文件的位置MASTER_CONNECT_RETRY 重连次数
9、启动进程
mysql>start slave;10、检查主从同步状态,主要检查Slave_IO_Running和Slave_SQL_Running的值,两个都是YES,才说明主从连接正确。如果有一个是no,需要重新确定刚才在从服务器上执行的命令,停掉"stop slave;",查询主库master状态,然后重新进行配置主从连接。
11、进行测试
在主库随意创建一个库
mysql>CREATE DATABASE IF NOT EXISTS tongbu DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
从库查询
mysql>show databases;
tongbu库存在说明,Mysql主从同步完成了。
阅读全文
1 0
- mysql主从同步部署
- mysql主从同步部署
- mysql主从同步部署
- Mysql主从同步部署
- MySQL主从同步部署
- MySQL主从同步原理+部署
- shell一键部署mysql主从同步
- Mysql主从同步(1)-主从/主主环境部署梳理
- ansible-playbook实战之批量部署mysql主从同步
- mysql主从数据同步的部署与实现
- mysql主从双向同步
- mysql主从同步
- MYSQL主从同步相关
- mysql 主从同步原理
- Mysql 主从数据库同步
- mysql 主从同步原理
- MySQL主从数据库同步
- mysql 主从同步
- Windows 10用于Fluent Design的UWP社区工具包蓄势待发
- Mybatis——1 简单数据查询
- c++读取写入文件--IO操作合集
- java 定时器配置信息 采用spring-quartz方式
- 第三方库的使用
- Mysql主从同步部署
- Request获取URL的方法
- 好记性不如烂笔头,从现在开始
- 基于Mysql的Sequence实现
- CSerialPort类接收数据时comstat未初始化
- VIM
- Android BLE ERROR CODE
- ViewPager 无限轮播 自动轮播
- 用AndroidStudio中的git将项目放到coding