摘要:
本文将介绍如何使用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都改为:文泉驿正黑。
通过以上配置,中文乱码问题才真正得以解决!