码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • docker mysql 容器中执行mysql脚本文件并解决乱码


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

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

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

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

    因此,我们要做的就是将宿主机的sql文件拷贝到容器内部,然后再让它去执行,这样就好了。
    我把sql文件放置到了这里,这里是我曾经做的和docker sql文件挂载的普通目录,当然,你现在放在哪里都行。
    在这里插入图片描述
    要拷贝到容器内部的话,就需要先找到容器。
    首先列举出来,看看正在运行的容器,对应mysql的id就知道了。

    docker ps
    
    • 1

    在这里插入图片描述

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

     docker exec -it 4f50fbeb15ee /bin/bash
    
    
    • 1
    • 2

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

    docker cp /mysql/mysql/1.sql   4f50fbeb15ee:/home/1.sql
    
    
    • 1
    • 2

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

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

     docker exec -it 4f50fbeb15ee /bin/bash
    
    
    • 1
    • 2

    然后我们进去到容器的home

    cd home
    
    • 1

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

    ls
    
    
    • 1
    • 2

    在这里插入图片描述
    有的
    在容器中执行,就用容器中的路径,和宿主机路径无关。
    然后我们就执行

    source /home/1.sql
    
    • 1

    在这里插入图片描述
    但是有的时候啊,执行完毕后,他会存在一些乱码。

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

     show variables like '%char%';
    
    
    • 1
    • 2

    我将这些编码全部改为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;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

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

  • 相关阅读:
    Java并发 | 17.[锁机制] 重量级锁(Monitor+自旋锁)
    适配器模式
    (免费分享)基于springboot医药进销存系统
    大前端 业务架构 插件库 设计模式 属性 线程
    gif动态图怎么制作?gif动态图在线制作一键搞定
    微信3.7版小程序数据分析
    Pytest 和 Selenium 的结合的一个例子及注意事项
    SpringBoot +Mybatis + Redis实现缓存(案例解析)
    树莓派在Raspbian系统(Bookworm)中无法获取RJ45网口eth0或end0的IP地址(没有IPv4的地址无法操作)
    【Maui正式版】创建可跨平台的Maui程序,以及有关依赖注入、MVVM双向绑定的实现和演示...
  • 原文地址:https://blog.csdn.net/jgdabc/article/details/126118574
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号