热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql主从热备份

环境:主机:192.168.53.81从机:192.168.53.82一、查看主库mysql版本号,从库的mysql版本号要和主库一致。[root@53-81~]

环境:

主机:192.168.53.81

从机:192.168.53.82


一、查看主库mysql版本号,从库的mysql版本号要和主库一致。

[root@53-81 ~]# /usr/local/mysql/bin/mysql -V

/usr/local/mysql/bin/mysql Ver 14.14 Distrib 5.1.60, for unknown-linux-gnu(x86_64) using readline 5.1

创建测试表

# mysql -p123456

#use test;

mysql> create table t2 (id int(4));

mysql> insert into t2 values (1);

 

二、从库安装相同版本的mysql数据库。

1,下载相同版本的mysql源码包。

2,查看主机mysql编译参数。grep configure /usr/local/mysql/bin/mysqlbug

3,开始安装。可以写成批处理文件。

tar zxvf mysql-5.1.60.tar.gz

cd mysql-5.1.60

./configure '--prefix=/usr/local/mysql' '--with-extra-charsets=complex''--enable-assembler' '--with-mysqld-ldflags=-all-static' '--with-charset=utf8''--enable-thread-safe-client' '--with-big-tables' '--with-readline''--with-ssl' '--with-embedded-server' '--enable-local-infile'

make&& make install

cd ../

groupaddmysql

useradd-s /sbin/nologin -M -g mysql mysql

cp/usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

sed -i's/skip-locking/skip-external-locking/g' /etc/my.cnf

 

/usr/local/mysql/bin/mysql_install_db--user=mysql

chown -Rmysql /usr/local/mysql/var

chgrp -Rmysql /usr/local/mysql/.

cp/usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql

chmod 755/etc/init.d/mysql

 

cat >/etc/ld.so.conf.d/mysql.conf<

/usr/local/mysql/lib/mysql

/usr/local/lib

EOF

ldconfig

 

ln -s/usr/local/mysql/lib/mysql /usr/lib/mysql

ln -s/usr/local/mysql/include/mysql /usr/include/mysql

/etc/init.d/mysqlstart

 

ln -s/usr/local/mysql/bin/mysql /usr/bin/mysql

ln -s/usr/local/mysql/bin/mysqldump /usr/bin/mysqldump

ln -s/usr/local/mysql/bin/myisamchk /usr/bin/myisamchk

/usr/local/mysql/bin/mysqladmin-u root password 123456

三、主库创建/etc/my.cnf,修改里边的键值增加

server-id=1

log-bin=binlog_name

重启数据库,增加日志功能

 

四、主库增加用户,用于从库读取主库日志。

mysql> grant all on *.* toslave@'192.168.53.82' identified by 'slavekjh-123';

 

五、从库的操作

1,从库连接主库进行测试。

# mysql -u slave -pslavekjh-123 -h192.168.53.81

如果连接成功说明主库配置成功

 

2,停从库,

/etc/init.d/mysql stop

修改从库/etc/my.cnf,增加选项:

server-id=2

skip-slave-start

replicate-do-db=test    #需要同步的数据库

replicate-do-db=test2    #需要同步的数据库

replicate-do-db=email     #需要同步的数据库

replicate-do-db=ttreport   #需要同步的数据库

 

3,启动从库,进行主从库数据同步

/etc/init.d/mysql start

 

六,同步数据。

1,主库锁定数据库

mysql> flush tables with read lock;

测试是否锁定

mysql> use test;

mysql> insert into t2 values (1);

ERROR 1223 (HY000): Can't execute the querybecause you have a conflicting read lock

 

查看主库状态

mysql> show master status;

+------------------+----------+--------------+------------------+

| File            | Position |Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000033 | 74195486 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

 

2,从库开始同步

## mysql -p123456

mysql> change master tomaster_host='192.168.53.81',master_user='slave',master_password='slavekjh-123',master_port=3306,master_log_file='mysql-bin.000033',master_log_pos=74195486;

 

开始同步主库

mysql>load data from master;

 

开始同步

slave start ;

 

查看同步状态

show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

 

删除/etc/my.cnf   

skip-slave-start                 

 

3,主库操作

解锁:

unlock tables;

插入数据看是否同步。

mysql> use test;

mysql> insert into t2 values (123456);

 

4,从库查看是否同步成功

mysql> use test;

Database changed

mysql> select * from t2;

 

完成===============================================================

测试

一,从库停止一段时间后,再启动是否能自动同步?是的。

二,主库停止一段时间后,主库启动,从库能否自动同步?是的。

问题1:同步主库时出现Net error reading from master 报错

原因:load table from master只支持myisam表,如果试图载入一个非MyISAM表,会导致以下错误。如果抛出这个错误,确保所有在主表是MyISAM。如果是这样,请重试运行的SQL语句。在InnoDB表或其他引擎的数据库的情况下,使用mysqldump从初始化。

解决方法:

 


推荐阅读
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
author-avatar
颖子_忒美
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有