前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker mysql 容器中执行mysql脚本文件并解决乱码

docker mysql 容器中执行mysql脚本文件并解决乱码

作者头像
兰舟千帆
发布2022-08-03 18:26:00
2.2K0
发布2022-08-03 18:26:00
举报

docker 容器中执行mysql脚本文件并解决乱码

网上搜索了一大推,在容器mysql中执行一段代码这么难吗?搞得十分复杂。 于是自己记录一下,虽然简单,但是还是怕后面忘记掉,又搜大半天。

现在的需求是将我的sql文件导入进来,然后让docker中的mysql 来执行它。

注意mysql在docker容器中,如果你只导入到宿主机,然后进入容器去执行sql文件的话,一定会告诉你是打不开的,因为宿主机外部和容器内部是相对隔离的,不可能在容器内部去找宿主机的路径。

因此,我们要做的就是将宿主机的sql文件拷贝到容器内部,然后再让它去执行,这样就好了。 我把sql文件放置到了这里,这里是我曾经做的和docker sql文件挂载的普通目录,当然,你现在放在哪里都行。

在这里插入图片描述
在这里插入图片描述

要拷贝到容器内部的话,就需要先找到容器。 首先列举出来,看看正在运行的容器,对应mysql的id就知道了。

代码语言:javascript
复制
docker ps
在这里插入图片描述
在这里插入图片描述

然后我们通过id 去指定容器,这个也就是mysql容器的id 我们通过这个命令就可以进去到容器,我们进去到这里呢,句可以在这里去登录mysql,然后执行脚本。

代码语言:javascript
复制
 docker exec -it 4f50fbeb15ee /bin/bash

ctrl+d,退出容器 但是在这之前,我们要将sql文件拷贝进来。

代码语言:javascript
复制
docker cp /mysql/mysql/1.sql   4f50fbeb15ee:/home/1.sql

cp后面是你宿主机sql文件所在的路径,容器id后面一个是容器home文件夹,一个是我拷贝后命名的sql文件。这里就拷贝了。

拷贝后呢,我们再次进去容器。

代码语言:javascript
复制
 docker exec -it 4f50fbeb15ee /bin/bash

然后我们进去到容器的home

代码语言:javascript
复制
cd home

查看目录下是否有一个1.sql,容器内部查看不能用ll,所以用ls

代码语言:javascript
复制
ls
在这里插入图片描述
在这里插入图片描述

有的 在容器中执行,就用容器中的路径,和宿主机路径无关。 然后我们就执行

代码语言:javascript
复制
source /home/1.sql
在这里插入图片描述
在这里插入图片描述

但是有的时候啊,执行完毕后,他会存在一些乱码。

于是我们可以去尝试查看一些编码

代码语言:javascript
复制
 show variables like '%char%';

我将这些编码全部改为utf-8

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
在这里插入图片描述
在这里插入图片描述

这样做是有效的,后来我数据库中存在乱码的字段就全部正常了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • docker 容器中执行mysql脚本文件并解决乱码
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档