Docker安装mysql主从架构学习笔记(二)

MySQL安装

来自菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html

一:使用docker pull mysql从hub上拉取镜像文件
在这里插入图片描述
二:使用docker images查看本地镜像列表
在这里插入图片描述
三:创建mysql容器:docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
在这里插入图片描述
四:查看运行进程docker ps
在这里插入图片描述
五:测试连接:
先进入容器
docker exec -it mysql bash
登陆数据
mysql -u root -p
修改登陆密码和密码加密方式如下

alter user 'root'@'%' identified with mysql_native_password by 'root';

在这里插入图片描述
数据库安装完成可以自己搞着玩了!!!

MySQL的主从架构配置

Docker下一个镜像文件可以做成N个容器,每个容器相当于一个微型的系统运行在Docker下独立互不影响没有任何关系。一般容器里面需要配置的一些配置都挂载到宿主机下面方便管理不然会很麻烦还要进到容器里面去修改也很容易丢失配置文件。

环境:数据库版本maysql:5.7因为8.0版本有个问题解决不掉设置主从报错没解决掉。

No1.在宿主机创建主库挂载文件master节点配置
这是放到宿主机的文件需要容器运行时挂载目录。
/etc/mySql/mastermy.cnf和/etc/mySql/slave1/my.cnf目录下面了。

[mysqld]
#开启log
log-bin=mysql-bin
#实例ID
server-id = 1
binlog-do-db=king
#不同步二进制数据库设置如下(可以设置也可以不设置)
binlog-ignore-db=mysql
binlog-ignore-db=test

No2.在宿主机创建从库挂载文件slave1节点配置

[mysqld]
#开启log
log-bin=mysql-bin
#实例ID
server-id = 2
binlog-do-db=king
#不同步二进制数据库设置如下(可以设置也可以不设置)
binlog-ignore-db=mysql
binlog-ignore-db=test

在这里插入图片描述
No3.分别启动主从MySQL容器

docker run --name mysql_master -v /etc/mySql/master/:/etc/mysql/conf.d/ -e 	MYSQL_ROOT_PASSWORD=123456 -p 3316:3306 -d mysql:5.7
docker run --name mysql_slave1 -v /etc/mySql/slave1/:/etc/mysql/conf.d/ -e 	MYSQL_ROOT_PASSWORD=123456 -p 3326:3306 -d mysql:5.7
(如果报2059就是mysql密码加密规则的问题修改一下:
进入容器:docker exec -it 容器ID bash
进入mysql:mysql -u root -p
修改密码加密规则:alter user 'root'@'%' identified with mysql_native_password by '654321';
刷新:flush privileges;完成!!!)

在这里插入图片描述
No4.分别设置主从数据库远程访问权限

赋权限:GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'root'@'123.206.75.61' IDENTIFIED BY '123456';
刷新权限生效:FLUSH PRIVILEGES;

No5.进入从库登录mysql设置主库配置

进入从容器:docker ps拿到容器ID,docker exec -it 容器ID bash命令进入容器
进入从数据库:mysql -u root -p
从库关闭之后设置:stop slave;
从库设置主库配置:change master to 	master_host='123.206.75.61',master_port=3316,master_user='root',master_password='123456';
启动:start slave;
查看从库主从搭建是否成功:show slave status\G;#Slave_IO_Running:yes Slave_SQL_Running:yes即可
(这样我们在主库创建数据表添加数据都会同步到从库中去了navicat亲测有效)

在这里插入图片描述

No6.基于Atlas构建代理节点主要功能如下(读写分离,从库负载均衡,自动分表,IP过滤,SQL语句黑白名单等)
下载地址:https://github.com/Qihoo360/Atlas/releases/tag/sharding-1.0.1
下载后上传到服务器执行:rpm -i Atlas-2.2.1.el6.x86_64.rpm
执行完成后安装目录:/usr/local/mysql-proxy
在这里插入图片描述

生成加密密码进入目录:/usr/local/mysql-proxy/bin(执行:./encrypt 123456#得到/iZxz+0GRoA=)
修改配置文件:/usr/local/mysql-proxy/conf/test.cnf内容如下:
#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
proxy-backend-addresses = 127.0.0.1:3316#这里是主库IP
#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
proxy-read-only-backend-addresses = 127.0.0.1:3326@1#这里是从库IP可以多个用逗号隔开
#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名
和加密密码!
pwds = root:/iZxz+0GRoA=
#SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,REALTIME代表记录SQL日志且实时写入磁盘,默认为OFF
sql-log = REALTIME

修改后启动./mysql-proxyd test start 
关闭./mysql-proxyd test rstop
重启./mysql-proxyd test restart 

No7.测试Atlas

检查一下是否启动:
/usr/local/mysql-proxy/bin/mysql-proxyd test status

在这里插入图片描述
连到后台管理接口:
mysql -h123.206.75.61 -P2345 -uadmin -padmin
检查DBServer状态:
SELECT * FROM backends;#不知道第一次state是down重新过了一遍又是up了
在这里插入图片描述
在这里插入图片描述
No7.测试查看log

使用navicat连接atlas地址123.206.75.61:1234/root/123456执行查询和添加语句
查看日志路径/usr/local/mysql-proxy/log
既可以看到读写分离的日志了。

在这里插入图片描述
只是自己百度摸索敲了一遍,后续实战再补充!!!

Nginx安装

一:使用dicker search nginx产看镜像源存在docker hub上托管
在这里插入图片描述
二:使用docker pull nginx拉取镜像
在这里插入图片描述
三:使用docker images查看本地镜像列表
在这里插入图片描述
四:启动nginx容器:docker run -p 80:80 nginx
先在本地找nginx镜像没有就是Docker仓库下载到本地。
91表示宿主机80宿主机下的一个小箱子
在这里插入图片描述
五:查看nginx进程服务:ps -ef |grep nginx
在这里插入图片描述
六:使用ifconfig查看机器的ip进行测试nginx:
注意:直接访问宿主机地址加端口号即可,外部不可直接访问容器,宿主机是可以直接访问。
在这里插入图片描述
七:查看运行的容器:docker ps
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值