首页 > 数据库 >mysql主从同步(一主一从)

mysql主从同步(一主一从)

时间:2024-07-17 11:59:24浏览次数:12  
标签:-- server 一主一 mysqld 服务器 mysql home 主从

一.准备两台服务器

二.在主服务器和从服务器安装mysql

1.去mysql官网找到自己需要的mysql版本(我这里使用的是5.7.23)

2.我这里使用的是解压tar.gz为例

3.把mysql解压出来(我解压的路径是/home/mysql)

4.cd /home/mysql进入mysql目录  使用mkdir mysqldb 创建存放数据库的文件夹

5.给mysql文件夹和mysqldb文件夹授权

chmod -R 777 /home/mysql

chmod -R 777 /home/mysql/mysqldb

  1. 配置安装参数

vi  /etc/my.cnf

  1. 下面是文件的内容

[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录

basedir=/home/mysql

# 设置mysql数据库的数据的存放目录

datadir=/home/mysql/mysqldb

# 允许最大连接数

max_connections=10000

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

# 服务端使用的字符集默认为UTF8

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证

default_authentication_plugin=mysql_native_password

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[client]

# 设置mysql客户端连接服务端时默认使用的端口

port=3306

default-character-set=utf8

  1. 保存退出后进入bin目录 cd /home/mysql/bin
  2. 执行命令并记住密码

./mysqld --initialize --console

  1. 启动mysql服务

cd /home/mysql/support-files #进入support-files

./mysql.server start #启动mysql服务

如果启动失败,重新进行授权

chmod -R 777 /home/mysql

chmod -R 777 /home/mysql/mysqldb

继续启动

./mysql.server start #启动mysql服务

这个时候mysql就启动成功了。

  1. 将mysql加入到系统进程中并重启

cp mysql.server /etc/init.d/mysqld

service mysqld restart # 然后重启MySQL服务

  1. 创建软链接

ln -s /home/mysql/bin/mysql /usr/bin

至此,Mysql安装完毕!

三.修改mysql密码

1.启动mysql程序

mysql -uroot -p

  1. 修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

#mysql8.0以后的版本修改密码可以使用:

ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '新密码';

  • 设置允许远程登录

1.use mysql;

update user set user.Host='%' where user.User='root';

flush privileges;

  1. 退出并重启mysql

quit;

service mysqld restart

  • 设置mysql开机自启
  1. 将服务文件拷贝到init.d下,并重命名为mysqld

cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld

输入y继续执行就行

  1. 赋予可执行的权限

chmod +x /etc/init.d/mysqld

  1. 添加服务

chkconfig --add mysqld

  1. 显示服务列表

chkconfig --list

如果2345是off就执行 chkconfig --level 2345 mysqld on

  1. 重启服务器  reboot
  2. ps -ef | grep mysql  #查看mysql服务的启动情况
  3. 查看端口是否开发 firewall-cmd --zone=public --list-ports

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent 

配置立即生效

firewall-cmd --reload 

  1. mysql安装结束,可以使用navicat连接mysql
  • 主从复制

1.修改主服务器的my.cnf

server_id=1

log-bin=mysql-bin

  1. 进入mysql服务

创建一个用于复制的用户,并赋予权限

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

  1. 查看主服务的二进制状态

SHOW MASTER STATUS;

保存file和position的值

  1. 在从服务器上修改my.cnf

[mysqld]

server-id=2

 relay-log=mysql-relay-bin

 read-only=1

注意:server-id不能跟主服务器一致

  1. 在从服务器上进入mysql服务器

执行以下命令

CHANGE MASTER TO

MASTER_HOST='主服务器IP',

MASTER_USER='主服务器账号',

MASTER_PASSWORD='主服务器密码',

MASTER_LOG_FILE='上面保存的file',

MASTER_LOG_POS=上面保存的position

  1. 在从服务器上执行以下命令

Start slave;

  1. 检查复制复制状态

SHOW SLAVE STATUS\G;

确保Slave_IO_Running和Slave_SQL_Running的值都是Yes。

如果不是yes,检查步骤5的参数是否正确或者看server-id是否不一致。

标签:--,server,一主一,mysqld,服务器,mysql,home,主从
From: https://blog.csdn.net/weixin_53598217/article/details/140490944

相关文章

  • MySQL安装过程中的问题,求大佬们帮忙解答。
    记录一个MySQL安装时的日志,麻烦大佬们帮忙看看。2024-07-15T14:12:49.255307Z0[System][MY-013169][Server]/usr/sbin/mysqld(mysqld8.0.33)initializingofserverinprogressasprocess227942024-07-15T14:12:49ZUTC-mysqldgotsignal11;Mostlikely,youh......
  • MySQL数据库基础教程(DDL、DML、DQL…)
    MySQL数据库基础教程:DDL、DML、DQL…文章目录1概述2数据库设计——DDL2.1数据库操作2.2表操作2.2.1约束2.2.2数据类型3数据库操作——DML4数据库查询——DQL4.1基本查询4.2条件查询4.3分组查询4.4排序查询4.5分页查询5多表设计5.1一对多5.2一对一5.3......
  • 不同局域网下mysql连接问题——子网穿透
    前言:通常情况下,MySQL服务器和应用程序部署在同一个局域网内,这样连接就比较简单。这次遇到的情况是MySQL部署在我个人PC上,需要其他局域网内的PC连接使用。首先两个网段之间是ping不通的。不是其他人说的防火墙问题。我试了网上说的方法,下面两种都不试过了不行的:第一种,编辑mysq......
  • 基于web的人力资源管理系统 毕业设计 springboot+Vue+mysql
    介绍在当今企业管理中,人力资源的有效管理对于组织的发展至关重要。为了提高人力资源管理的效率和准确性,我们开发了这个基于Web的人力资源管理系统。该系统旨在为企业提供一个全面、便捷、高效的人力资源管理平台,满足企业对人力资源规划、招聘、培训、绩效管理等方面的需求。......
  • 基于springboot的社区智慧养老监护管理平台 毕业设计 springboot+Vue+mysql
    介绍随着人口老龄化的加剧,养老服务的需求日益增长,传统的养老模式已经难以满足现代社会的需求。为了提供更高效、便捷、个性化的养老服务,我们开发了这个基于SpringBoot的社区智慧养老监护管理平台。该平台旨在整合社区养老资源,实现对老年人的全面监护和管理,提升养老服务的质......
  • 基于springboot的教师工作量管理系统 毕业设计 springboot+Vue+mysql
    介绍在教育领域,对教师工作量的准确评估和有效管理对于保障教学质量、合理分配资源以及激励教师积极性具有至关重要的意义。然而,传统的教师工作量管理方式往往依赖于手工记录和繁琐的统计,容易出现误差、效率低下且缺乏透明度。本基于SpringBoot的教师工作量管理系统旨在为......
  • MySQL常用命令的实战应用
    MySQL常用命令全攻略:从入门到精通的实用指南在数字化时代的浪潮中,MySQL作为关系型数据库管理系统的佼佼者,以其稳定性和高效性赢得了全球用户的青睐。无论是新手还是资深开发者,掌握MySQL的常用命令都是提升数据库管理能力的基础。以下是一份详尽的MySQL命令指南,涵盖从基础的连......
  • MySQL 上亿数据查询优化:策略与实践
    引言在大数据时代,数据库中存储的数据量经常达到数千万甚至上亿条记录。面对如此庞大的数据集,如何优化SQL查询以快速检索所需信息,成为了每个数据库管理员和开发人员必须掌握的技能。本文将深入探讨针对MySQL中上亿数据量的查询优化策略,并通过具体操作指导实践。了解数据分布......
  • MYSQL DQL in 到底会不会走索引&in 范围查询引发的思考。
    前情引子in会不会走索引?很多人肯定会回答、废话、如果命中了索引、那肯定会走。其实我和大多数人一样、一开始也是这么想的、直至有一个血淋淋的案子让我有所改观、有所思考。背景介绍业务的工单表、我们分了64张、以userId作为分表键、业务实际场景中未使用到搜索引擎、主要......
  • MySQL【表完整性约束】
    约束条件说明primarykey(PK)标识该字段为该表的主键,唯一性,不为空;UNIQUE+NOTNULLforeignkey(FK)标识该字段为该表的外键,实现表与表之间的关联null标识是否允许为空,默认为NULL。notnull标识该字段不能为空,可以修改。uniquekey(UK)标识该字段的值是唯一的......