Docker部署mysql:8.0.31+dbsyncer

ops/2024/11/27 8:50:34/

Docker部署mysql8.0.31

  • 创建本地mysql配置文件

mkdir -p /opt/mysql/log

mkdir -p /opt/mysql/data

mkdir -p /opt/mysql/conf

cd /opt/mysql/conf

touch my.config

[mysql]

#设置mysql客户端默认字符集

default-character-set=UTF8MB4

[mysqld]

#设置3306端口

port=3306

#允许最大连接数

max_connections=200

#允许连接失败的次数

max_connect_errors=10

#默认使用“mysql_native_password”插件认证

default_authentication_plugin=mysql_native_password

#服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=UTF8MB4

#开启查询缓存

explicit_defaults_for_timestamp=true

#创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

#等待超时时间秒

wait_timeout=60

#交互式连接超时时间秒

interactive-timeout=600

secure_file_priv=/var/lib/mysql

[client]

default-character-set=UTF8MB4

  • 拉取镜像mysql:8.0.31

docker pull mysql:8.0.31

docker images

  • 运行镜像

docker run -d -p 3306:3306 --restart=always --privileged=true -v /opt/mysql/log:/var/log/mysql -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:8.0.31

docker ps

docker exec -it 9abe42c59a10 /bin/bash

mysql -u root -p

show databases;

SELECT VERSION();

五、mysql数据库开发远程访问

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

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

FLUSH PRIVILEGES;

从 MySQL 8.0 开始,mysql_native_password 插件已经被弃用,默认采用 caching_sha2_password 插件。

ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'root';

--privileged  允许挂载数据卷,默认是读写权限rw

-d:以后台方式运行实例,(退出容器mysql依旧运行)

配置端口映射:

-p 3306:3306  指定宿主机器3306 :docker容器3306端口 映射。

mysql数据卷挂载解读:

1.日志文件挂载 :-v /data/dockerData/mysql/logs:/logs ()

容器中的日志文件夹 /var/log/mysql 挂载到 宿主机对应的 /mydata/mysql 文件夹中。

2.数据文件挂载: -v /data/dockerData/mysql/data:/var/lib/mysql

容器中的数据文件夹 /var/lib/mysql 挂载到宿主机对应的 /mydata/mysql/data 文件夹中。

3.mysql 配置文件挂载:-v /data/dockerData/mysql/conf/my.config:/etc/mysql/my.config

容器的配置文件夹etc/mysql/my.config挂载到宿主机对应的 /data/dockerData/mysql/conf/my.config 文件夹中。

设置数据库root的密码:

MYSQL_ROOT_PASSWORD=数据库密码

设置mysql容器名称:

--name mysql5.7

c20987f18b13   :指定用这个镜像来创建运行实例。

所遇问题

ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

SHOW PLUGINS;

#安装插件

INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';

更改用户的认证方法

ALTER USER 'root'@'%' IDENTIFIED WITH auth_socket;

替换root为你的实际用户名
然后我们在重新执行ALTER USER 'root'@'%' IDENTIFIED WITH auth_socket BY '123456'

Docker部署DBSyncer

DBSyncer是一款开源的数据同步中间件,它具有以下优点:
1. **多数据源支持**:DBSyncer支持广泛的数据库和数据源,包括MySQL、Oracle、SQL Server、PostgreSQL、Elasticsearch、Kafka、文件系统等,能够满足多种不同数据源之间的同步需求。
2. **自定义同步逻辑**:通过插件机制和自定义转换业务功能,DBSyncer允许用户根据自己的特定需求编写同步逻辑,增强了工具的灵活性和适用性。
3. **实时监控**:提供实时的同步状态监控和统计功能,用户可以实时查看同步进度、结果、日志等信息,便于监控和问题诊断。
4. **灵活的部署方式**:支持通过下载安装包、使用Docker容器或手动编译等多种方式进行部署,方便用户根据自己的环境和需求进行选择。
5. **高性能**:DBSyncer在设计中注重性能,能够高效地处理大量数据的同步任务。
6. **易于配置**:提供了丰富的配置选项和图形化界面,使得用户能够轻松配置数据同步任务。
7. **增量同步与全量同步**:支持增量同步和全量同步,用户可以根据数据变化和业务需求选择合适的同步策略。
8. **跨平台兼容性**:基于Java开发,可以在主流的操作系统平台上运行,如Windows、Linux、macOS等。
9. **开源社区支持**:作为一个开源项目,DBSyncer可以获得社区的支持和贡献,不断得到改进和完善。
10. **成本效益**:作为开源软件,DBSyncer可以免费使用,降低了企业的使用成本。
然而,DBSyncer也存在一些不足之处:
    开源社区较小:相较于其他一些知名数据库中间件,DBSyncer的开源社区相对较小,活跃度和贡献度相对较低,这可能会影响到其后续的发展和维护。
    技术门槛较高:DBSyncer的使用和配置相对较为复杂,需要一定的技术能力和经验,对于一些技术新手可能存在一定的学习门槛。
    稳定性有待提高:在某些场景下,DBSyncer可能会出现一些稳定性问题,例如内存占用过高、处理速度较慢等,这可能会影响到数据同步的效率和可靠性。
    功能有待进一步完善:虽然DBSyncer已经具备一些基本的数据同步功能,但在某些高级功能方面还有待进一步完善,例如数据校验、断点续传等。

# 从Docker Hub拉取(以最新镜像为例,具体镜像名和标签可能有所不同)  
docker pull crazylife/dbsyncer-web:latest 
# 或者从阿里云镜像仓库拉取(推荐)  
docker pull registry.cn-hangzhou.aliyuncs.com/xhtb/dbsyncer:latest  
# 或者  
docker pull registry.cn-hangzhou.aliyuncs.com/lifewang/dbsyncer:latest

http://192.168.68.143:18686/

1、添加连接

2、配置数据库同步

 


http://www.ppmy.cn/ops/137037.html

相关文章

【贪心算法第五弹——300.最长递增子序列】

目录 1.题目解析 题目来源 测试用例 2.算法原理 3.实战代码 代码解析 注意本题还有一种动态规划的解决方法,贪心的方法就是从动态规划的方法总结而来,各位可以移步博主的另一篇博客先了解一下:动态规划-子序列问题——300.长递增子序列…

基于K8S编排部署EFK日志收集系统

基于K8S编排部署EFK日志收集系统 案例分析 1. 规划节点 节点规划,见表1。 表1 节点规划 IP主机名节点192.168.100.3masterk8s-master192.168.100.4nodek8s-node 2. 基础准备 Kubernete环境已安装完成,将提供的软件包efk-img.tar.gz上传至master节…

ElasticSearch学习笔记六:Springboot整合

一、前言 在前一篇文章中,我们学习了ES中的一部分的搜索功能,作为一名Java工程师,更多时候我们是用代码去操作ES,同时对于Java而言时下最流行的就是Springboot了,所以这里我们将ES和Springboot整合将上一篇文章中的所…

基础入门-Web应用架构搭建域名源码站库分离MVC模型解析受限对应路径

知识点: 1、基础入门-Web应用-域名上的技术要点 2、基础入门-Web应用-源码上的技术要点 3、基础入门-Web应用-数据上的技术要点 4、基础入门-Web应用-解析上的技术要点 5、基础入门-Web应用-平台上的技术要点 一、演示案例-域名差异-主站&分站&端口站&…

在远程服务器和本地同步数据的指南

在远程服务器和本地同步数据的指南 在现代软件开发和数据管理中,保持本地和远程服务器之间的数据同步是至关重要的。无论是代码、配置文件还是其他数据,确保它们在不同环境中的一致性都是高效工作的关键。本文将介绍如何使用 Bash 脚本和 rsync 工具在本…

Unity中动态生成贴图并保存成png图片实现

实现原理&#xff1a; 要生成长x宽y的贴图&#xff0c;就是生成x*y个像素填充到贴图中&#xff0c;如下图&#xff1a; 如果要改变局部颜色&#xff0c;就是从x1到x2(x1<x2),y1到y2(y1<y2)这个范围做处理&#xff0c; 或者要想做圆形就是计算距某个点&#xff08;x1,y1&…

【Python爬虫实战】深入解析 Scrapy:从阻塞与非阻塞到高效爬取的实战指南

&#x1f308;个人主页&#xff1a;易辰君-CSDN博客 &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html ​ 目录 前言 一、阻塞和非阻塞 &#xff08;一&#xff09;阻塞 &#xff08;二&#xff09;非阻塞 二、Scrapy的工作…

【c语言】文件操作详解 - 从打开到关闭

文章目录 1. 为什么使用文件&#xff1f;2. 什么是文件&#xff1f;3. 如何标识文件&#xff1f;4. 二进制文件和文本文件&#xff1f;5. 文件的打开和关闭5.1 流和标准流5.1.1 流5.1.2 标准流 5.2 文件指针5.3 文件的打开和关闭 6. 文件的读写顺序6.1 顺序读写函数6.2 对比一组…