摘要:

本文将介绍如何使用docker创建mysql容器,并使用navicat连接该mysql服务,最后提供一个navicat中文乱码问题的解决方案。

docker的安装和使用在这里不再赘述,如果不是很熟悉可以查看我前几次博客:docker安装教程  docker使用教程

一、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= --name seckill-mysql -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -p : mysql

参数说明:

-d:以守护进程方式运行
-e:指定root密码
-P:绑定3306端口号,前面是宿主机端口后面是docker容器的端口
--name: 指定容器的名称
-v:挂载文件。以上例子挂在了两个文件,一个是数据文件data,一个是配置文件my.cnf

3、docker下mysql基本操作

进入容器命令:

$ docker exec -it seckill-mysql bash

进入容器后,可以使用以下命令连接到mysql:

$ mysql -uroot -p123456

停止/启动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的更多相关文章

  1. Ubuntu16.04下使用ufw保护docker容器

      ufw屏蔽服务器非docker容器应用端口没有任何问题.问题出在屏蔽不了容器应用对应端口.排除了"ufw使用不当"."docker-compose.yml端口映射不正 ...

  2. ubuntu16.04下docker安装和简单使用(转)

    ubuntu16.04下docker安装和简单使用   转自:https://www.cnblogs.com/hupeng1234/p/9773770.html 前提条件 操作系统 docker-ce ...

  3. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  4. ubuntu16.04下Hyperledger之搭建Fabric环境简单操作(五步启动e2e_cli)

    如果你已经安装好go等工具.git及checkout相关代及下载相关镜像,您只需下面5步就能up e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo ...

  5. Ubuntu16.04下安装数据库oracle客户端

    在Ubuntu16.04下安装oracle数据库客户端,使Django项目连接到远程Oracle数据库. 1.下载oracle客户端安装包: 进入官网http://www.oracle.com/tec ...

  6. Ubuntu16.04下添加打印机FujiXerox CP116w

    今天要打印一份北马的成绩单, 不想重启机器了, 在Ubuntu下尝试添加打印机, 最后成功了, 记录一下 打印机型号是FujiXerox CP116w, 通过WIFI连接的, 在Ubuntu16.04 ...

  7. Ubuntu16.04下caffe CPU版的详细安装步骤

    一.caffe简介 Caffe,是一个兼具表达性.速度和思维模块化的深度学习框架. 由伯克利人工智能研究小组和伯克利视觉和学习中心开发. 虽然其内核是用C++编写的,但Caffe有Python和Mat ...

  8. Ubuntu16.04下,rabbimq集群搭建

    rabbitmq作为企业级的消息队列,功能很齐全,既可以作为单一的部署模式,又可以做集群的部署模式 单一部署就不说了,就是在一台服务器上部署rabbitmq消息队列,可以参考我的博客:Ubuntu16 ...

  9. Linux:Ubuntu16.04下创建Wifi热点

    Linux:Ubuntu16.04下创建Wifi热点 说明: 1.Ubuntu16.04里面可以直接创建热点,而不用像以前的版本,还要其他辅助工具. 2.本篇文章转载自编程人生 具体步骤如下: 1.  ...

随机推荐

  1. springboot发送邮件

    1.在发送端邮箱平台开通SMTP服务 1)以163邮箱为例: step 1: step 2: 2.编写代码: 1)添加发送邮箱maven依赖 <dependency> <groupI ...

  2. ActiveMQ(1)---初识ActiveMQ

    消息中间件的初步认识 什么是消息中间件? 消息中间件是值利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,可以在分布式架构下扩展进 ...

  3. Keepalived+MySQL实现高可用

    MySQL的高可用方案有很多,比如Cluster,MMM,MHA,DRBD等,这些都比较复杂,我前面的文章也有介绍.最近Oracle官方也推出了Fabric.有时我们不需要这么复杂的环境,这些方案各有 ...

  4. Ubuntu安装pyucharm的专业版本

    看到了不错的教程,亲测有效. https://www.cnblogs.com/huozf/p/9304396.html

  5. DB2 公共表表达式(WITH语句的使用)

    ----start 说起WITH 语句,除了那些第一次听说WITH语句的人,大部分人都觉得它是用来做递归查询的.其实那只是它的一个用途而已,它的本名正如我们标题写的那样,叫做:公共表表达式(Commo ...

  6. AngularJS学习笔记(二)

    一.AngularJS Select(选择框) 1.使用 ng-options 创建选择框 <div ng-app="myApp" ng-controller="m ...

  7. 关于深度学习中的batch_size

    5.4.1 关于深度学习中的batch_size 举个例子: 例如,假设您有1050个训练样本,并且您希望设置batch_size等于100.该算法从训练数据集中获取前100个样本(从第1到第100个 ...

  8. CSS3 white-space属性

    white-space 属性设置如何处理元素内的空白. 可能的值 值 描述 normal 默认.空白会被浏览器忽略. pre 空白会被浏览器保留.其行为方式类似 HTML 中的 <pre> ...

  9. 网络基础-- 之 子网划分 and 一些基础解释

    子网划分的核心思想就是------   借主机为为网络位 最近几天--看了一下今天就分享一波. 首先我们先来理解一下 -----   one. 进制的转换   -----   two. IP地址 -- ...

  10. Solidity的地址 数组如何判断是否包含一个给定的地址?

    Q: given address[] wallets. What is the correct method to check that the list contains a given addre ...