Mysql主从配置详细步骤
admin
2023-05-16 16:22:37
0次

下文主要给大家带来Mysql主从配置详细步骤,希望这些内容能够带给大家实际用处,这也是我编辑Mysql主从配置详细步骤这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

环境:

系统版本:centos6.6

mysql版本:mysql 5.6.11

ip状态
10.0.2.87
主
10.0.2.111从

Mysql主从配置详细步骤

1. 数据备份

在10.0.2.87上

先停掉服务,使数据库停止数据更新,然后备份数据库

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:

/etc/init.d/mysqld stop

1. 从10.0.2.87拷贝mysql安装包

cd /usr/local/src/
scp root@10.0.2.87:/home/nc_onldb/mysql-5.6.11.tar.gz ./

2. 解压

tar xzf mysql-5.6.11.tar.gz
cd mysql-5.6.11

3. 安装cmake

yum install cmake

4. 安装mysql

groupadd db
useradd nc_onldb -g db
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,重新编译即可

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,重新编译

yum install gcc gcc-c++
rm -f CMakeCache.txt
make && make install

5. 初始化数据库

/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时需注意区分

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

7. 修改配置文件

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

/etc/init.d/mysql start 

启动过程可能报错:

Starting MySQL.. ERROR! The server quit without updating PID file (/home/nc_onldb/DATA/xxx.pid).

====原因可能是配置的pid目录权限问题,此目录跟原有mysql的pid目录一样,但权限是原有mysql的用户,将/var/run/mysqld的所属用户和所属组改成nc_onldb

chown -R nc_onldb:nc_onldb /var/run/mysqld

3. 设置mysql主从

1. 配置主(10.0.2.87)

vi /usr/local/mysql/my.cnf
添加如下内容:
server-id=87
log-bin=mysql-bin

重启mysql

/etc/init.d/mysql restart 

设置权限

/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)

vi /usr/local/mysql/my.cnf
添加如下内容:
server-id=111

重启mysql

/etc/init.d/mysql restart
/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上:

unlock tables;

再到从上看mysql的状态

show slave status\G   (\G表示以列的形式显示)

更新主从关系(bin-log发生变化):

在从上:

>stop slave;
>reset slave;
>start slave;

删除主从关系:

在从上:

>stop slave;
>reset slave all;

4. mysql清理bin-log

(1)自动清理方法:编辑my.cnf

expire_logs_days = 7 // 表示日志保留7天,超过7天则设置为过期的
#/usr/local/mysql/bin/mysql -uroot
>show binary logs;
>show variables like '%log%';
>set global expire_logs_days = 7;

(2)手动清理

如果没有主从,可以通过下面命令重置数据库日志:

>reset master;

如果有主从复制,应通过purge命令来清理:

/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失效。

对于以上关于Mysql主从配置详细步骤,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...