mysql5.6版本进行主从配置

27 篇文章 1 订阅

yum 源安装:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

安装依赖包
yum -y install gcc make cmake ncurses-devel libxm12-devel libtool-ltdl-devel gcc-c++
autoconf automake bison zlib-devel bison-devel perl perl-devel

1、建议选择“Server with GUI”,并选择“Development Tools”和“Compatibility Libraries”
两项附加软件。确保gcc、libgcc、gcc-c++等编译器已经正确安装

下载mysql-5.6版本 wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.11.tar.gz

groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql

tar -xvf mysql-5.6.tar.gz -C /usr/src/

cd /usr/src/mysql-5.6/
cmake . -DENABLE_DOWNLOADS=1
make && make install
chown -R mysql.mysql /usr/local/mysql

装完后使用mysql_install_db脚本初始化数据库,用user定义数据库存名称,用basedir定义软件主目录,
用datadir定义数据库存存放目录,初始化完后复制主配置文件my.cnf到/etc/my.cnf一份
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

cp /usr/local/mysql/my.cnf /etc/my.cnf
vim /etc/my.cnf
[mysqld]

[mysqld_safe]
log-error=/var/log/mysqld.log //错误日志路径
pid-file=/var/lib/mysql/mysql.pid

以上步骤可完成安装
---------------------------设备服务管理-------------------------------------
/usr/local/mysql/bin/mysqld_safe --user=mysql &
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
PATH= P A T H : / u s r / l o c a l / m y s q l / b i n / e c h o " e x p o r t P A T H = PATH:/usr/local/mysql/bin/ echo "export PATH= PATH:/usr/local/mysql/bin/echo"exportPATH=PATH:/usr/local/mysql/bin/" >> /etc/profile 开机启动

mysql -uroot -e “select User, Host, password from mysql.user” 看默认创建的用户和密码

清除默认用户为了安全(下面进行回答一般全选yes)
/usr/local/mysql/bin/mysql_secure_installation
由于root没有密码,当打完这个命令提示要输入密码,直接回车进行选择Y或n

--------------------------------------主从复制---------------------------------------
主报务器设置:
创建一个测试用的数据库存及表
mysql -uroot -p

create database hr;

use hr;

create table employees(employee_id int not null auto_increment, name char(20) not null, e_mail varchar(55), primary key(employee_id));

insert into employees values (1,‘tom’,‘afaf@qq.com’),
(2,‘ydaxia’,‘afdaf@163.com’);

exit

vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
server-id = 254

[mysqld_safe]
log-error=/var/log/mysqld.log //错误日志路径
pid-file=/var/lib/mysql/mysql.pid
配置中不可以用skip-networking参数

service mysqld restart
firewall-cmd --set-default-zone=trusted

设备一个账号用于从服务器连接过来,必须有replcation slave权限
账户:slave 密码;admin
mysql -u root -p
GRANT replication slave ON . TO ‘slave’@’%’ IDENTIFIED BY ‘admin’;
exit

查看主服务器日志服务信息:
mysql -uroot -p
flush tables with read lock; 对所有数据库表只读锁定
show master status; 查看输出:mysql-bin.000001 319
unlock tables;对全局锁结束
其中File为二进制日志文件名,Position为日志记录位置

对原有的数据进行备份一下:
/usr/local/mysql/bin/mysqldump -uroot -p --all-databases --lock-all-tables >/db/back.sql

拷贝到从服务器上
scp /db/back.sql 192.168.17.130:/tmp/

-------------------------从服务器配置---------------------------
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
server-id = 100

[mysqld_safe]
log-error=/var/log/mysqld.log //错误日志路径
pid-file=/var/lib/mysql/mysql.pid
配置中不可以用skip-networking参数

service mysqld restart
firewall-cmd --set-default-zone=trusted

mysql -u root -p </tmp/back.sql 上面scp考过来的主服务器上的备份日志导进去

mysql -u root -p
stop slave;
关闭slave(如果你以前配置过主从的话,一定要先关闭)
下面几行名子一定要大写,不然不行
CHANGE MASTER TO MASTER_HOST=“192.168.17.138”,
MASTER_USER=“slave”,
MASTER_PASSWORD=‘admin’,
MASTER_LOG_FILE=“mysql-bin.000001”,主服务器上查看到的日志文件
MASTER_LOG_POS=319;主服务器上查看到的日位置

start slave;开启同步(stop slave 关闭同步)
show slave status\G;
配置完成然后在主服务器数据库上添加数据看下从服务器数据库有没有增加

如果这步失败就操作下面:
error:
ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
经分析,需要:
删除5张表,并重新导入脚本
use mysql
drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;

然后重启数据库存服务
service mysqld restart
-----------------------------------------mysql主主复制,首先完成上面的主从复制方可进行下面的主主---------------------------------------------------------
首先:必须先停掉原来的slave不然一会改完 my.cf文件重启服务会失败
stop slave;

第一台mysql主机:
第1台的/etc/my.cf文件
log-bin=mysql-bin
binlog_format=mixed
server-id = 254
auto_increment_increment=2 一共有几台master
auto_increment_offset=1 第一台意思
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysql.pid
重启mysql

第二台mysql主机:
grant replication slave on . to ‘mysql130’@‘192.168.17.138’ identified by ‘admin’; 添加一个第一台主机访问过来的账号和密码
FLUSH PRIVILEGES;

第2台的/etc/my.cf文件
log-bin=mysql-bin
binlog_format=mixed
server-id = 105
auto_increment_increment=2 一共有几台master
auto_increment_offset=2 第二台意思
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysql.pid
重启mysql

查看主服务器日志服务信息:
mysql -uroot -p
flush tables with read lock; 对所有数据库表只读锁定
show master status; 查看输出:mysql-bin.000004 120
unlock tables;对全局锁结束
其中File为二进制日志文件名,Position为日志记录位置

mysql> CHANGE MASTER TO MASTER_HOST=“192.168.17.130”,
-> MASTER_USER=“mysql130”,
-> MASTER_PASSWORD=‘admin’,
-> MASTER_LOG_FILE=“mysql-bin.000004”,
-> MASTER_LOG_POS=120;

然后在两台mysql主机都看下是否不yes
show slave status\G;
show master status\G;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目工程师余工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值