当前位置:网站首页>docker mysql 容器中执行mysql脚本文件并解决乱码
docker mysql 容器中执行mysql脚本文件并解决乱码
2022-08-03 19:00:00 【兰舟千帆】
docker 容器中执行mysql脚本文件并解决乱码
网上搜索了一大推,在容器mysql中执行一段代码这么难吗?搞得十分复杂。 于是自己记录一下,虽然简单,但是还是怕后面忘记掉,又搜大半天。
现在的需求是将我的sql文件导入进来,然后让docker中的mysql 来执行它。
注意mysql在docker容器中,如果你只导入到宿主机,然后进入容器去执行sql文件的话,一定会告诉你是打不开的,因为宿主机外部和容器内部是相对隔离的,不可能在容器内部去找宿主机的路径。
因此,我们要做的就是将宿主机的sql文件拷贝到容器内部,然后再让它去执行,这样就好了。 我把sql文件放置到了这里,这里是我曾经做的和docker sql文件挂载的普通目录,当然,你现在放在哪里都行。
要拷贝到容器内部的话,就需要先找到容器。 首先列举出来,看看正在运行的容器,对应mysql的id就知道了。
docker ps
然后我们通过id 去指定容器,这个也就是mysql容器的id 我们通过这个命令就可以进去到容器,我们进去到这里呢,句可以在这里去登录mysql,然后执行脚本。
docker exec -it 4f50fbeb15ee /bin/bash
ctrl+d,退出容器 但是在这之前,我们要将sql文件拷贝进来。
docker cp /mysql/mysql/1.sql 4f50fbeb15ee:/home/1.sql
cp后面是你宿主机sql文件所在的路径,容器id后面一个是容器home文件夹,一个是我拷贝后命名的sql文件。这里就拷贝了。
拷贝后呢,我们再次进去容器。
docker exec -it 4f50fbeb15ee /bin/bash
然后我们进去到容器的home
cd home
查看目录下是否有一个1.sql,容器内部查看不能用ll,所以用ls
ls
有的 在容器中执行,就用容器中的路径,和宿主机路径无关。 然后我们就执行
source /home/1.sql
但是有的时候啊,执行完毕后,他会存在一些乱码。
于是我们可以去尝试查看一些编码
show variables like '%char%';
我将这些编码全部改为utf-8
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;
这样做是有效的,后来我数据库中存在乱码的字段就全部正常了。
边栏推荐
- 201709-3 CCF jason查询 (满分题解)
- JumpServer开源堡垒机完成龙芯架构兼容性认证
- 【C语言学习笔记(六)】分支与跳转(if、else、continue、break、switch)
- if/else或switch替换为Enum
- 使用range-based for循环的注意事项
- Difference差分数组
- 货比四家 version tb1.63
- With the help of Kubernetes kubekey speed installation
- pytest接口自动化测试框架 | 基于Pytest的Web UI自动化测试框架介绍
- 字节跳动三面拿offer:网络+IO+redis+JVM+GC+红黑树+数据结构,助你快速进大厂!!
猜你喜欢
随机推荐
fatal error: jni.h: No such file or directory
Oracle 脚本实现简单的审计功能
[Dataset][VOC] Rat dataset voc format 3001 sheets
When does MySQL use table locks and when to use row locks?You should know this
使用安全浏览器将网页保存为pdf的方法步骤
软件测试回归案例,什么是回归测试?
YAML中多行字符串的配置方法:|+、 |、 |-、 >+、 >、 >-的区别
87.(cesium之家)cesium热力图(贴地形)
ImportError: /lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name
使用range-based for循环的注意事项
MYSQL误删数据恢复
ImportError: /lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name
Cobalt Strike (CS) 逆向初探
MySQL 啥时候用表锁,啥时候用行锁?这些你都应该知道吧
图像超分——Real-ESRGAN快速上手
阿里巴巴政委体系-第五章、阿里政委体系建设
基于ck+redash构建MySQL慢日志+审计日志展示平台
201712-3 CCF Crontab满分题解
Don't look down upon the WebSocket!Long connection, stateful, two-way, full-duplex king is Fried
MySQL详细学习教程(建议收藏)