U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 常见问题解答 >

windows docker里安装并使用mysql(内含mysql主从搭建)

来源:http://www.tudoupe.com时间:2022-07-21

安装请看这里: docker介绍和安装以及常用命令 ,现在假设已经安装好了docker。

首先,命令行引出mysql镜子

查看是否拉取成功

步骤2,运行mysql镜子并启动mysql实例

3306:3306第一个是Windows中的MySQL端口,第二个是Docker中的MySQL端口,如果MySQL端口安装在Windows外部,端口也为3306,那么Windows中的MySQL端口必须首先关闭,否则会发生端口冲突:
在这里插入图片描述

检查是否启动mysql

在这里插入图片描述

步骤3,输入容器实例并登录tomysql

进入容器实例:

在这里插入图片描述
退出bash命令行:

复制并粘贴命令行中的文本:
选择中文文本,按鼠标右键复制. 按鼠标右键粘贴.

然后输入mysql -uroot -p进行登录:

在这里插入图片描述
输入密码并输入mysql控制面板:
在这里插入图片描述
查询字符集:

退出mysql命令行:

第四步是使用mysql客户端工具连接到窗口

在这里插入图片描述

步骤5,解决数据备份

要解决在多克中删除MySQL容器后数据丢失的问题,需要修改容器创建的代码:
宿主机是linux

主机是窗口

其中,--privileged=true让容器有根权限,-v /mydata/mysql/log:/var/log/mysql是将数据库日志从/var/log/mysql备份到/mydata/mysql/log容器数据卷中。

特权详细介绍:
当特权值是正确的时,container内的root拥有真正的root权限。privileged为true启动的容器可以看到很多host上的设备,可以执行安装,您可以在多克容器中启动多克容器。
privileged值为false时,container内的root只是外部的一个普通用户权限,默认为false。

如何删除数据卷:
删除容器时,数据量同时被删除,如果另一个容器引用数据量,删除失败。

只删除数据体积,如果存在一个引用数据体积的容器,删除失败。

删除所有未使用的数据卷,而不指定名称。

步骤6:解决问题代码问题

为了解决Mysql不能将中文存储在多克上的问题,我去了Baidu并发现提供的解决方案是修改容器创建的代码:

如果mysql容器处于“退出”状态,并不能检测docker ps命令,你可以使用:

查看错误日志, 指定200只查看200行.
在这里插入图片描述
我发现上面的方法不有效,mysql不认出来unknown variable 'character-set-connection=utf8'您还必须使用旧方法。 容器中的mysql和外部的mysql之间没有内在的区别,其配置文件位于/etc/mysql/conf.d或添加自己的配置文件/etc/mysql/my.cnf

老办法如下:

https://blog.csdn.net/u012643122/article/details/46799943

https://blog.csdn.net/u012643122/article/details/47980233

步骤7设置MySQL服务器数据库

新主服务器容器3307的例子

进入C:/Users/tang8/.docker/mydata/mysql-master/conf新我的目录下.cnf

文件内容如下:

修改配置3307后重新启动容器的例子

减少/etc/mysql/conf.d/my.cnf文件权限的3307个实例

重启容器后/etc/mysql/conf.d/我们只是在目录下添加了我的窗口。 cnf文件,但文件权限太高,需要降低,否则MySQL会拒绝阅读。

进入实例

修改权限

再次重启

my.cnf许可相关条目: https://blog.csdn./u012643122/article/details/107280186

在容器中创建数据同步用户例3307

进入实例

登录mysql:

主机上的数据只能由指定的用户同步,以避免数据泄露。

相关文章: https://blog.csdn.web/u012643122/article/details/52643715

来自服务器容器3308的新实例

进入C:/Users/tang8/.docker/mydata/mysql-slave/conf新我的目录下.cnf

文件内容如下:

修改配置3308后重新启动容器的例子

减少/etc/mysql/conf.d/my.cnf文件权限的3308个实例

重启容器后/etc/mysql/conf.d/我们只是在目录下添加了我的窗口。 cnf文件,但文件权限太高,需要降低,否则MySQL会拒绝阅读。

进入实例

修改权限

再次重启

my.cnf许可相关条目: https://blog.csdn./u012643122/article/details/107280186

从主数据库中的同步状态查看主机3307

1,输入例mysql-master,省略
2,登录tomysql,跳过
3,show master status;
在这里插入图片描述

从数据库3308中配置主数据库相关信息

1,输入例mysql-slave,省略
2,登录tomysql,跳过
3,认主归从

或者

记住这个master_host一定不可能是127.0.0.1,而是master容器的ip地址。

如何查询主容器的IP?

1,输入例mysql-master,省略
2,cat /etc/hosts
在这里插入图片描述
使用容器IP的话,端口就要用3306,。也可以不使用容器的IP,使用外部宿主机器windows的IP也是可以的。不过如果使用宿主机IP的话,端口就要使用3307。
在这里插入图片描述

主语解释

master_host=主数据库IP
master_port=主数据端口
master_user=用于主数据库同步的用户帐户
master_password=主数据库中为同步创建的用户密码
master_log_file=指定一个日志文件从主数据库复制数据,并查看主数据状态的文件字段值
master_log_pos=指定从主数据库中开始复制数据的地点,以及查看主数据状态的定位字段的值
master_connect_retry=连接失败时从主数据库重新尝试连接的间隔时间,单位秒

从数据库3308的同步状态中查看主机

1,输入例mysql-master,省略
2,登录tomysql,跳过
3,show slave status G;G只要使用关键值,便于查看格式的输出结果。
在这里插入图片描述
Slave_IO_Running和 Slave_SQL_Running的值是Yes或No。

从数据库3308中打开主服务器同步

从数据库中执行SQLstart slave;开启主从同步:

关闭主从同步:

从数据库3308重新同步查看主机

在这里插入图片描述
如果连不上,Slave_IO_Running的值一直是Connecting,那就退出mysql命令行,在bash命令行上,使用mysql -h IP -P Port -u Username -p该命令将连接到主数据库以尝试连接。
mysql -h master_host -P 3307 -u slave -p

增加测试数据是否由同步运行的测试主机

在主数据库建库建库表中, 查看是否从数据中同步更新.

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息