首页 > 数据库 >MySQL 5 从安装到同步

MySQL 5 从安装到同步

时间:2023-03-28 19:59:05浏览次数:38  
标签:bin 同步 log -- app MySQL master mysql 安装

安装部分

创建用户和组

由于采用直接初始化方式所以用户不会自动创建需要为mysql手动创建用户与组;

创建组

groupadd mongodbtest

创建用户

useradd mongodbtest -g mongodbtest

建立mysql文件夹与上传文件

建立mysql安装文件夹。使用根目录下的app文件夹

mkdir /app

上传并解压文件再重命名文件

修改my.cnf文件

备份系统原有的my.cnf文件

mv /etc/my.cnf /etc/my.cnf.bak

新建my.cnf文件内容为

[client]
socket=/usr/local/src/mysql/mysql/mysql.sock
[mysqld]
port=3306
lower_case_table_names=1
basedir=/app/mysql
datadir=/app/mysql/data
pid-file=/app/mysql/mysql.pid
socket=/app/mysql/mysql.sock
log_error=/app/mysql/error.log

修改文件夹权限

chown -R mongodbtest:mongodbtest /app/mysql/

初始化mysql

/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mongodbtest -- basedir=/app/mysql --datadir=/app/mysql/data

查看临时密码

cat /app/mysql/error.log |grep -i "password"

创建连接(可以不做)

ln -s /app/mysql/mysql.sock /tmp/mysql.sock
# 更改连接权限
chown -R  mongodbtest:mongodbtest /tmp/mysql.sock

启动服务

/app/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mongodbtest &

连接与修改数据库密码

/app/mysql/bin/mysql -uroot -p 

输入密码不会显示,输入刚才看到的临时密码

修改密码:

set password for 'root'@'localhost' = password('123456');

刷新权限:

flush privileges;

退出数据库:

quit;

修改数据库登录权限

打开mysql库

use mysql;

查看用户与登录限制

 select user,host from user

修改可登录用户的主机IP

update user set host='%' where user='root';
grant all privileges on *.* to root@'%';

刷新权限

flush privileges;

设置root用户任意主机名和IP登录时的密码

ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY
'123456';

刷新数据用户权限

flush privileges;

关闭数据库

/app/mysql/bin/mysqladmin -uroot -p shutdown

Enter password:输入密码(不显示)

出现问题

安装时不出现 sock文件。重新初始化即可。mysql中文件夹会自动创建不需要手动新建。

双主同步

注意

同步前一定要关闭数据库

关闭命令在bin目录下运行

./mysqladmin -uroot -p shutdown

输入密码即可关闭

例如

主:master 10.10.10.1 从:slave 10.10.10.2

这里只是称之为主从,实际搭建是双主。

主库

修改my.cnf文件

主:master

增加如下内容

relay-log=/app/mysql/data/relay-bin
relay-log-info-file=/app/mysql/data/relay-log-info
log-bin=/app/mysql/data/mysql-bin
server-id=101
binlog-do-db=test       #同步的库
binlog-ignore-db=mysql
replicate-do-db=test    #同步的库
replicate-ignore-db=mysql   #不同步的库
log-slave-updates
slave-skip-errors=all
skip-name-resolve
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1

其中replicate-do是要同步的库,binlog-do是要同步库的日志。

启动数据库

在mysql的bin目录下运行

./mysqld_safe --defaults-file=/etc/my.cnf --user=mongodbtest &

其中 file指向my.cnf文件 user是建立mysql的用户

连接数据库

/bin/mysql -uroot -p

输入密码

授权同步用户

grant replication slave,file on *.* to 'root'@'%';
flush privileges;

备份数据库

由于在同步前已经建立的数据库无法进行同步建表操作,所以需要进行一致性备份。

mysqldump -uroot -h10.10.10.1 --flush-logs --master-data=2 --routines --triggers
--events --lock-tables --databases test -p > test_date.sql

其中h为本机的ip地址 test为备份的库名 test_date.sql 为备份的文件

锁表

flush tables with read lock\G

查看master值

show master status\G

记录输出的内容

主要记录File和Position值

File: mysql-bin.000001

Position: 510

从库

编辑my.cnf文件

添加

relay-log=/app/mysql/data/relay-bin
relay-log-info-file=/app/mysql/data/relay-log-info
log-bin=/app/mysql/data/mysql-bin
server-id=102
binlog-do-db=test
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
skip-name-resolve
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2

其中replicate-do是要同步的库,binlog-do是要同步库的日志。

启动数据库

/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mongodbtest &

连接数据库

/app/mysql/bin/mysqld -uroot -p 

输入密码(不显示)

授权

grant replication slave, file on *.* to 'root'@'%';
-- 刷新权限
flush privileges;

关闭二进制日志

 set sql_log_bin=OFF;

恢复数据库

mysql -uroot -p -S /app/mysql/mysql.sock
test<test_date.sql

test是要恢复的表名称 test_date.sql是要恢复的文件

锁表

flush tables with read lock\G

记录master值

show master status\G

主要记录File和Position的参数值

File: mysql-bin.000001

Position: 510

开启二进制日志

set sql_log_bin=ON;

同步配置

主:master

连接数据库输入

-- 输入同步信息
change master to
-- 从slave的ip
master_host='10.10.10.2',
-- 从slave的mysql端口
master_port=3306,
-- 从slave的同步用户
master_user='root',
-- 从slave同步用户的密码
master_password='123456',
之前记录的File和Position的参数值
master_log_file='mysql-bin.000004',
master_log_pos=534;

执行后输出 Query OK, 0 rows affected (0.01 sec) 便为成功

开启同步

start slave;

从:slave

进行相同操作

change master to
master_host='10.10.10.1',
master_port=3306,
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000004',
master_log_pos=542;

执行后输出 Query OK, 0 rows affected (0.01 sec) 便为成功

开启同步

 start slave;

查看是否同步

show processlist\G;

查看server_id是否和配置文件中的一致

show variables like 'server_id';

开始同步

两个库全部执行

-- 取消锁表
unlock tables;
show slave status\G;

查看 Slave_IO和Slave_SQL是否为yes[^错误]

同步测试

建立同步的表

CREATE TABLE IF NOT EXISTS `A`( `id` INT UNSIGNED AUTO_INCREMENT
PRIMARY KEY, `name` VARCHAR(100) NOT NULL);

插入数据

INSERT INTO A(name) values('test1');

查询数据

SELECT * FROM A;

查询库

show databases;

打开库

use test;

test为库名

查询表

show tables;

查询字段

select * from table_name;

关闭防火墙命令: systemctl stop firewalld.service

启动防火墙: systemctl start firewalld.service

行开机禁用防火墙自启命令 : systemctl disable firewalld.service

防火墙随系统开启启动 : systemctl enable firewalld.service

标签:bin,同步,log,--,app,MySQL,master,mysql,安装
From: https://www.cnblogs.com/u1s3/p/16874465.html

相关文章

  • mysql 查看表的大小方法
    mysql查看表的大小方法:1.查看所有数据库容量大小selecttable_schemaas'数据库',sum(table_rows)as'记录数',sum(truncate(data_length/1024/1024,2))as'数据......
  • MySQL学习笔记-存储引擎
    存储引擎一.MySQL体系结构MySQLServer连接层:连接的处理、认证授权、安全方案、检查是否超过最大连接数等。服务层:SQL接口、解析器、查询优化器、缓存引擎层:引擎......
  • asp.net 应用程序中同步方法调用异步方法无响应解决方法
    微软发布C#async/await异步语法功能已经好久了,但是目前来看使用并不广泛。本人经过实践在开发过程中使用async/await一路到底确实很爽,而且也没有啥问题。但是在面对旧......
  • JDK的安装教程
    Java三大版本javaSE:标准版(桌面程序,控制台开发...)javaME:嵌入式开发(小家电,手机..)javaEE:E企业级开发(wed端,服务器开发..)卸载JDK删除java的安装目录删除JAV......
  • MySQL事务还没提交,Canal就能读到消息了?
    【问题描述】开发有天碰到一个很奇怪的问题,他的场景是这样子的:通过Canal来订阅MySQL的binlog,当捕获到有数据变化时,回到数据库,反查该数据的明细,然后做进一步处理。有一......
  • mysql binlog 几种日志格式的区别?
    在MySQL中,二进制日志(binlog)是用于记录数据库操作的一种日志文件,主要用于主从复制、恢复数据等操作。MySQL提供了三种不同的二进制日志格式,分别是Statement、Row和Mixed......
  • Power BI如何连接MySQL数据库
    既然写了如何卸载MySQLconnectornet(相关文章见如何解决MySQLConnectorNETxxxx无法卸载的问题(win10)),那就顺便再写一篇PowerBI(以下简称PBI)如何连接MySQL数据库吧在系统......
  • elasticsearch-head 安装
    概念elasticsearch-head是elasticsearch的可视化工具,能够比较简便的查看、删除索引,查看索引数据,执行查询命令。它需要安装node和grunt才能使用安装ubuntu安装:下......
  • RabbitMq安装教程(超详细)
    RabbitMq安装教程RabbitMq简介安装准备工具安装步骤(图文)RabbitMq简介1.1消息队列中间件简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问......
  • 如何解决MySQL Connector NET xxxx无法卸载的问题(win10)
    使用PowerBI(以下简称PBI)的小伙伴想必都知道,想要在PBI连接MySQL数据库,必须安装MySQLconnectornet,我之前安装过MySQLconnectornet6.9.3,PBI是可以正常连接MySQL的,最近更......