连接mysql集群_mysql集群

mysql集群

1.主从复制原理

ff335cd5c3604688811c8e7334096ed0.png

(1)mysql主(master)从(slave)复制的原理?(面试题)

① master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这

些记录叫作二进制日志事件,binary log events)

② slave将master的binary log events拷贝到它的中继日志(relay log);

③ slave重做中继日志中的事件,将改变反映他自己的数据(数据重演);

(2)主从配置注意点:

主DB server 和从 DB server 数据库版本一致;

主DB server和从 DB server数据库数据一致;

主DB server 开启二进制日志,主DB server 和从DB server 的server_id 都必须一致。

2.主库配置文件 my.conf

(1)开启主从复制

[mysqld] log-bin = mysql-bin

#指定主库

serverid server-id=1

#记录同步的数据库,如果不指定则记录全部数据库以及同步全部数据库

binlog-do-db=db_a

(2)执行SQL语句查询状态

SHOW MASTER STATUS

3.在主库创建同步用户

(1)授权用户slave01使用123456 密码登入mysql

grant replication slave on *.* to 'slave01'@'ip 地址' identified by 'kgc';

(2)刷新配置

flush privileges;

4.从库配置文件 my,conf

(1)指定serverid,只要不复制即可,从库也只有这一个配置,其他都在

[mysqld] server-id=2

(2)Navicat中执行同步数据库配置操作

CHANGE MASTER TO

master_host='127.0.0.1',

#从数据库中查询得来 (show master status;)

master_user='slave01',

master_password='123456',

master_port=3306,

master_log_file='mysql-bin.000006',

master_log_pos=1120;

(3)启动slave同步

START SLAVE;

(4)查看同步状态

SHOW SLAVE STATUS;

5.搭建主库

(1)创建目录

mkdir /data/mysql/master01 -p

cd /data/mysql/master01

mkdir conf data

chmod 777 * -R

(2)创建配置文件

cd /data/mysql/master01/conf

vim my.conf

#在文件中写入

[mysqld]

log-bin=mysql-bin #开启二进制日志

server-id=1#服务 id,不可重复

附注:#出现[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and 错误解决方案,在 my.cnf 配置文件中设置

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

(3)创建容器

docker create --name percona-master01 -v /data/mysql/master01/data:/var/lib/mysql -v /data/mysql/master01/conf:/etc/my.cnf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

(4)启动容器

docker start percona-master01 && docker logs -f percona-master01

(5)创建同步账号以及授权打开(navicat连接)

create user 'kgc'@'%' identified by 'kgc'; grant replication slave on *.* to 'kgc'@'%'; flush privileges;

(6)重新启动容器

docker restart percona-master01 && docker logs -f percona-master01

(7)查看配置是否成功

① 查看master状态

show master status;

② 查看二进制日志相关的配置

show global variables like 'binlog%';

③ 查看server相关的配置项

show global variables like 'server%';

6.搭建从库

(1)创建目录

mkdir /data/mysql/slave01

cd /data/mysql/slave01

mkdir conf data

chmod 777 * -R

(2)创建配置文件

cd /data/mysql/slave01/conf

vim my.cnf

#输入内容

[mysqld] server-id=2 #服务 id,不可重复

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

(3)创建容器

docker create --name percona-slave01 -v /data/mysql/slave01/data:/var/lib/mysql -v /data/mysql/slave01/conf:/etc/my.cnf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

(4)启动容器

docker start percona-slave01 && docker logs -f percona-slave01

(5)设置 master 相关信息(navicat 连接 mysql3307 端口)

set sql_mode = ''; set sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';

# user:主数据库名 password : 主服务器密码

...file pos:主数据库中的参数

CHANGE MASTER TO

master_host='192.168.115.188',

master_user='kgc',

master_password='kgc',

master_port=3306,

master_log_file='mysql-bin.000002',

master_log_pos=648;

(6)启动同步

start slave;

(7)查看master状态

show slave status;

(8)测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用 Navicat 连接 Docker 中的 MySQL 数据库,需要执行以下步骤: 1. 确保已经安装了 Docker 和 Navicat 应用程序。 2. 在 Docker 中启动 MySQL 容器,可以使用以下命令: ``` docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag ``` 其中,`some-mysql` 是容器的名称,`my-secret-pw` 是 MySQL 的 root 用户的密码,`tag` 是所使用的 MySQL 镜像的版本号。 3. 获取 MySQL 容器的 IP 地址,可以使用以下命令: ``` docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' some-mysql ``` 其中,`some-mysql` 是 MySQL 容器的名称。 4. 在 Navicat 中创建新的数据库连接,选择 MySQL 数据库类型,并填写以下信息: - Host:步骤 3 中获取到的 MySQL 容器的 IP 地址。 - Port:3306(默认的 MySQL 端口号)。 - User Name:root。 - Password:步骤 2 中设置的 MySQL root 用户的密码。 - Database:要连接MySQL 数据库的名称。 完成上述步骤后,就可以使用 Navicat 连接 Docker 中的 MySQL 数据库了。 ### 回答2: Navicat是一款很常用的数据库管理工具,能够方便地管理数据库和进行数据库开发工作。而Docker则是一种容器化技术,它可以将应用程序打包为容器,从而方便地进行部署和管理。如果想要使用Navicat管理在Docker中运行的MySQL数据库,需要进行一定的设置和配置。 首先,需要在Docker中启动MySQL容器。可以使用以下命令: docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest 这条命令会在Docker中运行一个名为mysql的容器,并且设置root用户的密码为123456,使用最新版本的MySQL镜像。 然后,在Navicat中连接MySQL数据库时,需要填写一些参数。在连接MySQL服务器的对话框中,需要填写服务器主机名或IP地址,端口号,默认的数据库名称和登录凭据。这些参数的设置如下: 主机名或IP地址:可以使用Docker容器的IP地址。可以使用以下命令查询容器的IP地址: docker inspect -f '{{.NetworkSettings.IPAddress}}' mysql 端口号:在Docker容器中启动MySQL时,可以将MySQL的默认端口映射到主机的端口。可以使用以下命令将容器内的3306端口映射到主机的3306端口: docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest 默认的数据库名称:如果在容器中没有创建数据库,则需要手动创建。可以使用以下命令创建一个名为test的数据库: docker exec -it mysql mysql -uroot -p123456 -e "create database test;" 登录凭据:需要输入root用户的用户名和密码,这里的用户名为root,密码为使用-e参数设置的123456。 最后,点击“测试连接”按钮进行连接测试。如果连接成功,则可以在Navicat中对MySQL数据库进行管理和操作。 ### 回答3: Navicat是一种常用的数据库管理工具,可以用于连接各种类型的数据库,包括运行在Docker容器中的MySQL数据库。本文将介绍如何使用Navicat连接Docker中的MySQL。 Docker中运行MySQL 首先,我们需要在Docker上启动MySQL。我们可以使用docker run命令在容器中运行MySQL。以下是运行命令的示例: docker run --name=mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:latest 这个命令会在容器中运行MySQL,并将容器中的3306端口映射到本地机器的3306端口。我们也可以为MySQL指定root密码。 连接MySQL 接下来,我们使用Navicat连接MySQL。在Navicat界面上,我们需要选择MySQL作为我们要连接的数据库类型,并填写连接信息。 填写连接信息: 1.在连接名中输入任意名称。 2.选择MySQL作为数据库类型。 3.在主机名或IP地址中输入本机IP地址或者远程服务器IP地址。 4.将端口号设置为3306。 5.输入用户名和密码及选择连接的数据库。 最后,点击连接按钮,Navicat即可连接MySQL并开始管理您的数据库。 总结 在本文中,我们介绍了如何使用Navicat连接Docker容器中运行的MySQL数据库。通过Navicat,我们可以轻松管理MySQL数据库,包括增删改查和备份还原等功能。在使用Navicat之前,我们需要确保MySQL已经在Docker容器中成功运行。为了更好的安全性,我们还可以设置MySQL账户和密码,避免非法访问造成的损失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值