1. 程式人生 > >ubuntu16.04下使用navicat連接docker mysql5.7.20

ubuntu16.04下使用navicat連接docker mysql5.7.20

conf 配置 啟動mysql 好的 mysql基本 cte comm 主機 版本

摘要:

本文將介紹如何使用docker創建mysql容器,並使用navicat連接該mysql服務,最後提供一個navicat中文亂碼問題的解決方案。

一、docker下創建mysql容器

1、下載mysql最新版本鏡像:

$ docker pull mysql

2、啟動mysql容器

創建mysql配置文件my.cnf,全路徑為/data/mysql/conf/my.cnf,內容如下:

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
#log-error      = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
init_connect=‘SET collation_connection = utf8_unicode_ci‘
init_connect=‘SET NAMES utf8‘
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

啟動容器,執行以下命令:

$ docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name seckill-mysql -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql

參數說明:

-d:以守護進程方式運行
-e:指定root密碼
-P:綁定3306端口號,前面是宿主機端口後面是docker容器的端口
--name: 指定容器的名稱
-v:掛載文件。以上例子掛在了兩個文件,一個是數據文件data,一個是配置文件my.cnf

3、docker下mysql基本操作

進入容器命令:

$ docker exec -it seckill-mysql bash

停止/啟動mysql:

$ docker stop seckill-mysql
$ docker start seckill-mysql

二、安裝navicat for mysql

1、下載、安裝

官網下載地址:

https://www.navicat.com/en/download/navicat-for-mysql

解壓:

$ tar zxvf navicat120_mysql_en_x64.tar.gz

啟動navicat:

$ ./start_navicat

2、解決mysql中文亂碼問題

navicat啟動後,一般都會遇到中文亂碼問題,如果存在該問題,需要下載以下文泉正黑字體,並重新指定一下編碼格式。
ps:我這個方法可能不是最好的解決方案,但是經過本人親測,肯定奏效。

1、安裝文泉正黑字體

$ sudo apt-get install ttf-wqy-zenhei 

2、修改start_navicat文件中編碼格式,與系統一致

先查看系統編碼格式:

$ locale

LANG=zh_CN.UTF-8

再修改start_navicat:

$ vim start_navicat

把 export LANG="en_US.UTF-8" 改為 export LANG="zh_CN.UTF-8"

3、修改navicat顯示編碼格式

在菜單中找到 tools -》 options... 看到以下窗口:

把General、Editor、Records三個菜單下的GUI Font都改為:文泉驛正黑。
技術分享圖片

通過以上配置,中文亂碼問題才真正得以解決!

ubuntu16.04下使用navicat連接docker mysql5.7.20