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

ubuntu搭建mysql主从

在Ubuntu上搭建MySQL主从复制是一个常见的任务,用于提高数据库的性能和可靠性。以下是详细步骤和相关概念:

基础概念

主从复制(Master-Slave Replication)

  • 主服务器(Master):负责处理写操作,并将数据变更记录到二进制日志(Binary Log)中。
  • 从服务器(Slave):复制主服务器的二进制日志,并应用这些变更到自己的数据库中,从而保持数据同步。

优势

  1. 读写分离:主服务器处理写操作,从服务器处理读操作,提高整体性能。
  2. 数据备份:从服务器可以作为备份,防止主服务器故障导致数据丢失。
  3. 负载均衡:多个从服务器可以分担读取压力。

类型

  • 异步复制:主服务器不需要等待从服务器确认即可继续处理事务。
  • 半同步复制:主服务器在提交事务前至少等待一个从服务器确认收到并记录事务。

应用场景

  • 高并发读写场景:如电商网站、社交平台等。
  • 数据备份与恢复:确保数据安全性和可用性。

搭建步骤

1. 安装MySQL

在主服务器和从服务器上安装MySQL:

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

2. 配置主服务器

编辑MySQL配置文件 /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 'repl'@'从服务器IP' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从服务器IP';
FLUSH PRIVILEGES;

3. 配置从服务器

编辑MySQL配置文件 /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='主服务器IP',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',  -- 从主服务器SHOW MASTER STATUS获取
MASTER_LOG_POS=154;  -- 同上
START SLAVE;

4. 验证配置

在主服务器上执行一些写操作,然后在从服务器上检查数据是否同步:

代码语言:txt
复制
-- 主服务器
USE your_database_name;
CREATE TABLE test (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));
INSERT INTO test (name) VALUES ('Test User');

-- 从服务器
USE your_database_name;
SELECT * FROM test;

常见问题及解决方法

1. 从服务器无法连接主服务器

  • 检查网络连接:确保两台服务器可以互相通信。
  • 防火墙设置:开放MySQL默认端口(3306)。
  • 权限问题:确认复制用户有足够的权限。

2. 数据不同步

  • 检查日志文件和位置:确保 MASTER_LOG_FILEMASTER_LOG_POS 设置正确。
  • 查看错误日志:在从服务器上查看 /var/log/mysql/error.log 文件,查找具体错误信息。

3. 性能问题

  • 优化配置:调整MySQL的缓冲区和线程池设置。
  • 监控工具:使用如 pt-query-digest 等工具分析慢查询并进行优化。

通过以上步骤和注意事项,你应该能够在Ubuntu上成功搭建MySQL主从复制环境。

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

相关·内容

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主从复制,您可以根据实际情况进行调整和优化。

    43050

    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.8K40

    Ubuntu下MySQL主从同步配置步骤

    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'

    96910

    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

    MySQL主从复制集群搭建

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

    1.5K20
    领券