首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ubuntu搭建mysql主从

基础概念

MySQL主从复制是一种数据库复制技术,它允许一个MySQL数据库(主库)的数据被复制到一个或多个其他MySQL数据库(从库)。这种架构可以提高数据的可用性、读取性能和数据备份。

优势

  1. 高可用性:如果主库发生故障,从库可以接管服务,保证系统的可用性。
  2. 负载均衡:通过将读操作分发到从库,可以减轻主库的负载,提高整体性能。
  3. 数据备份:从库可以作为数据备份,防止数据丢失。

类型

MySQL主从复制主要有三种类型:

  1. 异步复制:这是默认的复制方式,主库在执行完事务后立即返回,不等待从库确认。
  2. 半同步复制:主库在执行完事务后需要等待至少一个从库确认收到binlog(二进制日志)后才返回。
  3. 组复制:一种更高级的复制方式,允许多个主库组成一个复制组,提供更高的可用性和数据一致性。

应用场景

  1. 读写分离:将读操作分发到从库,写操作在主库进行。
  2. 数据备份和恢复:从库可以作为数据备份,方便数据恢复。
  3. 高并发读取:通过多个从库分担读取压力,提高系统的读取性能。

搭建步骤

以下是在Ubuntu上搭建MySQL主从复制的步骤:

1. 安装MySQL

代码语言:txt
复制
sudo apt update
sudo apt install mysql-server

2. 配置主库

编辑主库的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf

代码语言:txt
复制
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name

重启MySQL服务:

代码语言:txt
复制
sudo systemctl restart mysql

登录MySQL并创建复制用户:

代码语言:txt
复制
mysql -u root -p
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;

3. 配置从库

编辑从库的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf

代码语言:txt
复制
[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name

重启MySQL服务:

代码语言:txt
复制
sudo systemctl restart mysql

登录MySQL并设置主库信息:

代码语言:txt
复制
mysql -u root -p
CHANGE MASTER TO
MASTER_HOST='master_ip_address',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
START SLAVE;

4. 验证主从复制

在主库上插入一些数据:

代码语言:txt
复制
INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');

在从库上查询数据,确认数据已经同步:

代码语言:txt
复制
SELECT * FROM your_table;

常见问题及解决方法

1. 主从复制延迟

原因:可能是由于网络延迟、从库负载过高或主库写入压力大。

解决方法

  • 优化网络配置,减少网络延迟。
  • 增加从库数量,分担读取压力。
  • 优化主库的写入性能,例如使用SSD、优化SQL查询等。

2. 主从复制中断

原因:可能是由于网络故障、主库或从库宕机、配置错误等。

解决方法

  • 检查网络连接,确保主从库之间的网络通畅。
  • 检查主从库的状态,确保它们正常运行。
  • 检查配置文件,确保配置正确无误。
  • 如果主库宕机,需要手动将从库提升为主库,并重新配置其他从库。

参考链接

希望这些信息对你有所帮助!如果有更多问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL主从搭建

前言 公司规定,生产环境中一旦与数据(缓存也不例外)扯上关系的一律不由k8s统一管理 因此,别想一键式部署了,只能老老实实单独部署 再此,就记录一下搭建过程,分享给小伙伴们,避免浪费时间 废话不多说,...上车 下载 没有安装mysql,我这边也给大伙们准备了~ MySQL详细安装 配置 1、master和node二台服务器,分别到/etc/my.cnf配置文件, 在mysqld里添加一下属性 #master...= 1001 2、进入Mysql,分别为二台master创建各种的用户供对方使用 温馨提示: 本案例为双主从,也就是master同步到node,node同步到master。...单主从,就只需要不执行带*即可 #master的机器上 CREATE USER 'master'@'%' IDENTIFIED BY '123456';   #node的机器上(*) CREATE USER....000026',MASTER_LOG_POS=0; slave start; show slave status; 4、数据库主从日志很大 设置只保留30天的binlog (临时,重启mysql

2.4K10
  • 搭建Mysql主从复制

    MySQL主从复制是一种常用的数据库高可用性解决方案,可以提高数据库的可用性和性能。本教程将介绍如何搭建MySQL主从复制。...2、MySQL主从复制的工作过程 ---- 主从复制原理: 1、change master to 时,ip pot user password binlog position写入到master.info...---- 步骤1:环境准备 在开始搭建之前,您需要准备以下环境: 两台服务器(一台作为主服务器,一台作为从服务器) 安装了MySQL的服务器 确保主服务器可以通过网络访问从服务器 步骤2:主从服务器时间同步...//如果需要停止主从服务复制的功能,使用以下命令: stop slave; //若搭建主从复制的过程出错,则需要清理掉之前的配置,还需要执行以下命令: reset slave all; 4、主从延迟问题...5、结论 ---- MySQL主从复制是一种提高数据库可用性和性能的常用解决方案。本教程介绍了如何搭建MySQL主从复制,您可以根据实际情况进行调整和优化。

    40650

    mysql主从复制搭建

    原理: MySQL主从复制涉及到三个线程,一个运行在主节点(log dump thread),其余两个(I/O thread, SQL thread)运行在从节点,如下图所示: ?...l 从节点SQL线程 SQL线程负责读取relay log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性。 对于每一个主从连接,都需要三个进程来完成。.../mysql.conf.d) [mysqld] log-bin=mysql-bin server-id=3307 1.3重启数据库查看主数据库的当前状态 mysql> show master status.../mysql.conf.d)并重启mysql server-id=3306 2.2设置从服务器的信息并启动 mysql> change master to -> master_host = "192.168.99.100...Slave_IO_Running: Yes //主要查看这两个指标状态 Slave_SQL_Running: Yes    //主要查看这两个指标状态 到这里主从配置就配置完了

    1.7K40

    MySQL5.7 搭建主从同步

    性能更好的新服务器申请下来了,我们决定在2台新服务器上使用MySQL 5.7,并且使用主从同步、读写分离架构,很不幸这个任务落到了我的头上。...读写分离是在业务代码中实现的,在此不做详述,介绍一下我搭建MySQL主从的过程。...,主库和从库的server-id必须不同 3.binlog-ignore-db设置不需要同步的库 二、创建用于主从同步的账户 1.登录MySQL    mysql -uroot -p 2.create...0000';  (赋予主从同步权限) 5.flush privileges; 6.重启mysql 三、查看主库状态,记录必要信息 1.登录MySQL 2.show master status; 记录File...在5.7之前的版本这一步的相关参数是写到配置文件中的,5.7如果再写进配置文件会报参数错误) 4.start slave; 如果顺利的话,到目前为止主从同步已经搭建完成,在从库中使用show slave

    1.5K10

    UbuntuMySQL主从同步配置步骤

    1)安装mysql Ubuntu中安装一台mysql了,docker安装另外一台mysql 获取mysql的镜像,主从同步尽量保证多台mysql的版本相同,我的ubuntu中存在的mysql是5.7.22.../mysql.conf.d  mysql:5.7.22 MYSQL_ROOT_PASSWORD 是创建mysql root用户的密码 测试,在ubuntu中使用mysql命令尝试连接docker容器中的...mysql mysql -uroot -pmysql -h 127.0.0.1 --port=8306 2)备份主服务器原有数据到从服务器 如果在设置主从同步前,主服务器上已有大量数据,可以使用mysqldump...-uroot -pmysql -h127.0.0.1 --port=8306 < ~/master_db.sql 3)配置主服务器master(Ubuntu中的MySQL) 编辑设置mysqld的配置文件...登入主服务器Ubuntu中的mysql,创建用于从服务器同步数据使用的帐号 mysql –uroot –pmysql GRANT REPLICATION SLAVE ON *.* TO 'slave'

    93310

    MySQL主从复制集群搭建

    ,今天我们就来讲讲如何实现MySQL集群的搭建。...一主一从集群搭建 binlog 简介 Mysql中有一个binlog二进制日志,这个日志会记录下主服务器所有修改了的SQL语句,从服务器把主服务器上的binlog二进制日志,在指定的位置开始复制主服务器所有修改的语句...主主复制集群搭建 上面介绍了主从复制的实现方法,我们在主从复制的基础上介绍主主复制(只需要把 111 也变成 222 的从机),把上面讲的222从库改成主库,实现111和222两个库互为主从,不懂的同学可以看看上篇文章的主主复制架构图...步骤和第一个主从复制集群搭建的一样,按照上面的操作即可。 当我们做好所有操作之后,在111主机上新增数据进行测试,发现222和333均已同步数据。...老哥结语 MySQL主从复制,是实现高性能,高可用MySQL的基石,所以一定要会这个知识,才能进一步往下深入学习MySQL,跟紧老哥的脚步,我们下篇文章讲讲主从复制的原理。

    1.5K20
    领券