解決Docker容器中MySQL中文亂碼


  1. 通過容器id進入容器內部

    docker exec -it container_id bash
    
  2. 進入Mysql通過SHOW VARIABLES LIKE 'character%';查看編碼,發現部分編碼為latin1

  3. 容器的系統默認為debian,而且沒有安裝vim,並且下載速度感人,所以先配置一波鏡像

    1. 查看debian版本

      cat /etc/debian_version
      
    2. 查看該版本阿里雲的鏡像配置

    3. 進入/etc/aptsources.list就是鏡像配置文件

    4. 備份文件

      cp sources.list sources.list_bak
      
    5. 刪除sources.list

      rm sources.list
      
    6. 重寫sources.list

      我用的是debian9

      echo "deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib" > sources.list
      
  4. 更新源庫並安裝vim

    apt-get update
    
    apt-get install vim
    
  5. 進入/etc/mysql,使用vim修改my.cnf

    1. 因為這時候的vim不支持復制粘貼,需要用以下方法解決

      • 在普通模式下鍵入下面的值

        :set mouse-=a
        

        但是每次重新打開vim都需要重新設置

      • 編輯~/.vimrc文件,加入以下代碼便可一勞永逸

        if has('mouse')
            set mouse-=a 
        endif
        
    2. 復制粘貼以下配置

      [client]
      port = 3306
      socket = /var/lib/mysql/mysql.sock
      default-character-set=utf8
      
      [mysqld]
      port = 3306
      socket = /var/lib/mysql/mysql.sock
      character-set-server=utf8
      
      [mysql]
      no-auto-rehash
      default-character-set=utf8
      
  6. 回到docker,輸入以下命令重啟容器

    docker restart container_id
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM