设为首页 收藏本站
查看: 804|回复: 1

[经验分享] Mysql主从配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-8-18 12:36:55 | 显示全部楼层 |阅读模式
环境:
系统版本:centos6.6
mysql版本:mysql 5.6.11
ip
状态
10.0.2.87
10.0.2.111

1. 数据备份
10.0.2.87
先停掉服务,使数据库停止数据更新,然后备份数据库
1
2
mysqldump -R -uroot -p nc_onldb > /root/nc_onldb_`date +%Y%m%d`.sql
mysqldump -R -uroot -p rxrc > /root/rxrc_`date +%Y%m%d`.sql



如果数据较大,可以考虑直接拷贝库文件

2. 安装mysql 5.6
从库mysql版本与主库不一致,重新安装。
首先停掉原有的mysql
1
/etc/init.d/mysqld stop




1. 10.0.2.87拷贝mysql安装包
1
2
cd /usr/local/src/
scp root@10.0.2.87:/home/nc_onldb/mysql-5.6.11.tar.gz ./



2. 解压
1
2
tar xzf mysql-5.6.11.tar.gz
cd mysql-5.6.11



3. 安装cmake
1
yum install cmake



4. 安装mysql
1
2
groupadd db
useradd nc_onldb -g db



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/home/nc_onldb/DATA \
-DMYSQL_USER=nc_onldb \
-DMYSQL_TCP_PORT=3306




可能会出现的错误:
1. -- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (MESSAGE):
  Curses library not found.  Please install appropriate package,
      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
====安装 ncurses-devel,然后删除CMakeCache.txt,重新编译即可
1
2
yum install ncurses-devel
rm -f CMakeCache.txt




2. CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Performing Test HAVE_PEERCRED - Failed
====缺少gcc相关的包,然后删除CMakeCache.txt,重新编译
1
2
yum install gcc gcc-c++
rm -f CMakeCache.txt




1
make && make install



5. 初始化数据库
1
/usr/local/mysql/scripts/mysql_install_db --user=nc_onldb --basedir=/usr/local/mysql --datadir=/home/nc_onldb/DATA --pid-file=/var/run/mysqld/mysqld.pid




初始化时可能会出现错误:
/usr/local/mysql/bin/mysqld: File './mysql-bin.index' not found (Errcode: 13 - Permission denied)
2016-10-19 15:06:48 30553 [ERROR] Aborting
2016-10-19 15:06:48 30553 [Note] Binlog end
2016-10-19 15:06:48 30553 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
====先将原有的mysql服务停掉再进行初始化。

6. 复制服务启动脚本
由于有老版本的mysql启动脚本,复制到/etc/init.d时需注意区分
1
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql




7. 修改配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mv /etc/my.cnf /etc/my.cnf.bak
vi /usr/local/mysql/my.cnf
[mysqld]
  
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
  
datadir=/home/nc_onldb/DATA
socket=/var/run/mysqld/mysql.sock
user=nc_onldb
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
  
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid




启动mysql
1
/etc/init.d/mysql start




启动过程可能报错
Starting MySQL.. ERROR! The server quit without updating PID file (/home/nc_onldb/DATA/xxx.pid).
====原因可能是配置的pid目录权限问题,此目录跟原有mysqlpid目录一样,但权限是原有mysql的用户,将/var/run/mysqld的所属用户和所属组改成nc_onldb
1
chown -R nc_onldb:nc_onldb /var/run/mysqld



3. 设置mysql主从
1. 配置主(10.0.2.87)
1
2
3
4
vi /usr/local/mysql/my.cnf
添加如下内容:
server-id=87
log-bin=mysql-bin



重启mysql
1
/etc/init.d/mysql restart




设置权限
1
2
3
4
5
/usr/local/mysql/bin/mysql -uroot
>grant replication slave on *.* to 'repl'@'10.0.2.111' identified by 'aabbcc';
>flush privileges;
>flush tables with read lock;  #数据库加读取锁
>show master status; #查看主库状态,记住内容,配置从时会用到




2. 配置从(10.0.2.111)
1
2
3
vi /usr/local/mysql/my.cnf
添加如下内容:
server-id=111




重启mysql
1
/etc/init.d/mysql restart



1
2
3
4
/usr/local/mysql/bin/mysql -uroot
>stop slave;
>change master to master_host='10.0.2.87', master_port=3306, master_user='repl', master_password='aabbcc', master_log_file='mysql-bin.xxxx', master_log_pos=xxxx;
>start slave;



10.0.2.87上:
1
unlock tables;



再到从上看mysql的状态
1
show slave status\G   (\G表示以列的形式显示)




更新主从关系(bin-log发生变化):
在从上:
1
2
3
>stop slave;
>reset slave;
>start slave;



删除主从关系
在从上:
1
2
>stop slave;
>reset slave all;



4. mysql清理bin-log
(1)自动清理方法:编辑my.cnf
1
expire_logs_days = 7 // 表示日志保留7天,超过7天则设置为过期的



1
2
3
4
#/usr/local/mysql/bin/mysql -uroot
>show binary logs;
>show variables like '%log%';
>set global expire_logs_days = 7;




(2)手动清理
如果没有主从,可以通过下面命令重置数据库日志:
1
>reset master;



如果有主从复制,应通过purge命令来清理:
1
2
3
4
/usr/local/mysql/bin/mysql -uroot
>purge master logs to 'mysql-bin.010'; //清除mysql-bin.010日志以前的(不包括010)
>purge master logs before '2016-02-28 13:00:00'; //清除2016-02-28 13:00:00前的日志
>purge master logs before date_sub(now(), interval 3 day); //清除3天前的bin日志



注意,不要轻易手动去删除binlog,会导致binlog.index和真实存在的binlog不匹配,而导致expire_logs_day失效。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-403129-1-1.html 上篇帖子: 自动备份mysql数据库脚本 下篇帖子: MySQL5.7修改密码
累计签到:6 天
连续签到:1 天
发表于 2017-8-18 14:50:19 | 显示全部楼层
回服不加金币了  擦

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表