摘要:html
本文將介紹如何使用docker建立mysql容器,並使用navicat鏈接該mysql服務,最後提供一個navicat中文亂碼問題的解決方案。mysql
docker的安裝和使用在這裏再也不贅述,若是不是很熟悉能夠查看我前幾回博客:docker安裝教程 docker使用教程sql
$ docker pull mysql
建立mysql配置文件my.cnf,全路徑爲/data/mysql/conf/my.cnf,內容以下:docker
[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
啓動容器,執行如下命令:vim
$ 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
參數說明:bash
-d:以守護進程方式運行 -e:指定root密碼 -P:綁定3306端口號,前面是宿主機端口後面是docker容器的端口 --name: 指定容器的名稱 -v:掛載文件。以上例子掛在了兩個文件,一個是數據文件data,一個是配置文件my.cnf
進入容器命令:socket
$ docker exec -it seckill-mysql bash
進入容器後,可使用如下命令鏈接到mysql:字體
$ mysql -uroot -p123456
中止/啓動mysql:編碼
$ docker stop seckill-mysql
$ docker start seckill-mysql
官網下載地址:spa
https://www.navicat.com/en/download/navicat-for-mysql
解壓:
$ tar zxvf navicat120_mysql_en_x64.tar.gz
啓動navicat:
$ ./start_navicat
navicat啓動後,通常都會遇到中文亂碼問題,若是存在該問題,須要下載如下文泉正黑字體,並從新指定一下編碼格式。
ps:我這個方法可能不是最好的解決方案,可是通過本人親測,確定奏效。
$ sudo apt-get install ttf-wqy-zenhei
先查看系統編碼格式:
$ locale
LANG=zh_CN.UTF-8
再修改start_navicat:
$ vim start_navicat
把 export LANG="en_US.UTF-8" 改成 export LANG="zh_CN.UTF-8"
在菜單中找到 tools -》 options... 看到如下窗口:
把General、Editor、Records三個菜單下的GUI Font都改成:文泉驛正黑。
經過以上配置,中文亂碼問題才真正得以解決!