首页 > 编程知识 正文

mysql权限和配置主从数据库,mysql配置用户权限

时间:2023-12-26 22:40:29 阅读:322765 作者:SNUZ

本文目录一览:

如何在一台windows主机上搭建mysql主从配置

1、首先要在本地建立两个mysql服务(参考这里),指定不同的端口。我这里一个主(3306),一个从(3307)。2、然后修改主配置文件:

[mysqld]

server-id = 1

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

#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的

log-bin=mysql-bin #要生成的二进制日记文件名称

修改从配置文件:

[mysqld]

server-id = 2

log-bin = mysql-bin

replicate-do-db=test

3、在主库添加一个用户 repl 并指定replication权限

create user 'repl'@'127.0.0.1' identified by 'asdf';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1'; -- --这里我指定数据库(test.*)时报错,而指定全库(*.*)时会成功。

4、保持主从mysql的test数据库初始状态一致。

一般是先将所有的表加读锁,然后copy磁盘上的数据库文件夹。我这里直接停止服务,然后将数据文件拷贝过去。

5、在主数据库里面运行show master status;记下file和position字段对应的参数。

mysql show master status;

安全最重要!MySQL配置主从复制,主主复制

为了保障数据的安全与稳定性,我们常用数据库的主从复制与主主复制来实现。主从复制为从机实时拷贝一份主机的数据,当主机有数据变化时,从机的数据会跟着变,当从机数据有变化时,主机数据不变;同样地,主主复制就是,多个主机之间,只要有一个主机的数据变化了,其它主机数据也会跟着变化。

添加以下内容

如果你是使用我之前那种方式启动的MySQL,那么你只需要去你相关联的宿主机的配置文件夹里面去建立一个 my.cnf 然后写入上面的类容就好了。

比如:我的启动命令如下(不应该换行的,这里为了方便查看,我给它分行了)

那么我只需要在 /docker/mysql_master/conf 这个目录下创建 my.cnf 文件就好了。

这个命令是需要在容器里面执行的

docker重启mysql会关闭容器,我们需要重启容器。

确保在主服务器上 skip_networking 选项处于 OFF 关闭状态, 这是默认值。 如果是启用的,则从站无法与主站通信,并且复制失败。

我的命令如下

在从服务器配置连接到主服务器的相关信息 (在容器里面的mysql执行)

上面代码的xxxxx你需要换成你的IP,docker 查看容器 IP 的命令如下:

启动的那个从服务器的线程

测试的话,你可以在主服务器里面,创建一个数据库,发现从服务器里面也有了,就成功了。

如果你还想要一个从服务器,那么你只需要按照上面配置从服务器再配置一个就行了,新建的从服务器,会自动保存主服务器之前的数据。(测试结果) 如果你上面的主从复制搞定了,那么这个主主复制就很简单了。我们把上面的从服务器也改成主服务器

1)、修改上面的从服务器的my.cnf文件,和主服务器的一样(注意这个server-id不能一样)然后重启服务器 2)、在从服务器里面创建一个复制用户创建命令一样(这里修改一下用户名可以改为 repl2) 3)、在之前的主服务器里面运行下面这个代码

上面主要是教你怎么搭建一个MySQL集群,但是这里面还有很多其它的问题。也是我在学习过程中思考的问题,可能有的小伙伴上来看到文章长篇大论的看不下去,只想去实现这样一直集群功能,所以我就把问题写在下面了。

1)、MySQL的replication和pxc MySQL的集群方案有replication和pxc两种,上面是基于replication实现的。

replication: 异步复制,速度快,无法保证数据的一致性。 pxc: 同步复制,速度慢,多个集群之间是事务提交的数据一致性强。

2)、MySQL的replication数据同步的原理 我们在配置的时候开启了它的二进制日志,每次操作数据库的时候都会更新到这个日志里面去。主从通过同步这个日志来保证数据的一致性。

3)、可否不同步全部的数据 可以配置,同步哪些数据库,甚至是哪些表。

4)、怎么关闭和开始同步

5)、我就我的理解画出了,主从、主从从、主主、复制的图。

往期推荐:

利用Docker仅花1分钟时间安装好MySQL服务

Linux下MySQL 5.7的离线与在线安装(图文)

Linux下安装MySQL8.0(收藏!)

如何用mysql搭配主从数据库

两台机器,192.168.162.128(主) 192.168.162.130(从)

配置主的配置文件

vi /etc/my.cnf

创建复制用户并授权给从服务器

grant replication slave on *.* to 'rpl'@'192.168.162.130' identified by '123456';

重启主服务器的MySQL  /etc/init.d/mysqld restart

查看master信息: 进入MySQL  show master status G;

修改从库配置文件

vi /etc/my.cnf

重启从服务器MySQL,进入MySQL

指定主服务器IP等信息

change master to master_host='192.168.162.128 ',master_user='rpl',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=647;

启动slave  :start slave;

查看slave状态:show slave status G;

报错Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work

意思是主和从必须都要有不同的uuid,我们分别去查看下主从的uuid

主:server-uuid=4e6c5a78-1e9a-11e7-8c65-000c29426312

查看从库uuid  从库uuid:server-uuid=4e6c5a78-1e9a-11e7-8c65-000c29426312

可以看出是真的一样,原因在于 我是先安装了一个虚拟机并装好MySQL,后面有复制了一遍,作为从服务器,所以导致了这个UUID是一样的。

接下来就是解决这个UUID问题,将从库上的auto.cnf 备份下。然后重启从库。再看下从库的UUID

[auto]

server-uuid=2e9c834a-1eb2-11e7-864b-000c2928472e

再次查看从库状态

从库状态正常了

11.测试主从是否正常

主库上创建一个测试库,test :create database test;

创建测试表:

create table test.test(

id int,

username varchar(10)

)ENGINE='innodb'

12.查看从库: 

正常,说明主从搭建成功

mysql (percona)5.7 安装及主从配置

开始安装:

注意提示需要安装net-tools包:

按顺序安装:

查询日志里面的初始化密码:

修改密码:

1,设置utf-8字符格式,两个主机配置相同

授权

主机(master)添加配置文件信息:

主机添加配置信息:

从机添加的配置信息:

master服务器查看MySQL状态:

运行slave服务器MySQL(从服务器):执行接入master服务器MySQL服务语句:

运行:

主库上操作

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。