Mysql主从配置详细过程记录
发布时间:2023-10-20 16:02:49 所属栏目:MySql教程 来源:
导读:下文主要给大家带来Mysql主从配置详细步骤,希望这些内容能够带给大家实际用处,这也是我编辑Mysql主从配置详细步骤这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。
环境:
系统版本:centos6.6
环境:
系统版本:centos6.6
下文主要给大家带来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失效。 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐