环境

  • CentOS 7.5
  • Docker 1.13.1
  • MySQL 8.0.16

安装

拉取镜像

默认拉取最新版本的镜像

$ docker pull mysql

如果要指定版本,使用下面的命令

$ docker pull mysql:8.0.16

创建数据目录和配置文件

在宿主机创建放置mysql的配置文件的目录和数据目录,并且进行授权

$ mkdir -p /usr/mysql/conf /usr/mysql/data

$ chmod -R 755 /usr/mysql/

创建配置文件

在上面创建的配置文件目录/usr/mysql/conf下创建MySQL的配置文件my.cnf

$ vim /usr/mysql/conf/my.cnf

添加以下内容到上述创建的配置文件中

[client]

#socket = /usr/mysql/mysqld.sock

default-character-set = utf8mb4

[mysqld]

#pid-file        = /var/run/mysqld/mysqld.pid

#socket          = /var/run/mysqld/mysqld.sock

#datadir         = /var/lib/mysql

#socket = /usr/mysql/mysqld.sock

#pid-file = /usr/mysql/mysqld.pid

datadir = /usr/mysql/data

character_set_server = utf8mb4

collation_server = utf8mb4_bin

secure-file-priv= NULL

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Custom config should go here

!includedir /etc/mysql/conf.d/

启动创建容器

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

参数解释:

-v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录

-d : 后台运行容器

-p 映射容器端口号和宿主机端口号

-e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码

执行上述命令后,执行查询容器的命令就可以看到创建的mysql容器

$ docker ps -a

结果如下所示:

问题

上述虽然安装好了mysql,但是使用远程的Navicat连接时提示错误,不能正确连接mysql,此时需要修改按照下面说的步骤修改一下mysql的密码模式以及主机等内容才可以。

修改mysql密码以及可访问主机

  • 进入容器内部
$ docker exec -it mysql /bin/bash
  • 连接mysql
$ mysql -uroot -p
  • 使用mysql库
$ mysql> use mysql
  • 修改访问主机以及密码等,设置为所有主机可访问
$ mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';

注意:

mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接

  • 刷新
$ mysql> flush privileges

经过以上步骤,再次远程使用Navicat连接数据库时就可以正常连接了。

最新文章

  1. HDF5基本使用方法
  2. C# 小知识
  3. 揭秘史上最完美一步到位的搭建Andoriod开发环境
  4. Xxtea加解密
  5. ubuntu 12.04 安装Docker 实战
  6. mysql merge
  7. 移动端 touchmove高频事件与requestAnimationFrame的结合优化
  8. mac攻略(2) -- apache站点配置
  9. Linux一些常用操作
  10. vba打开输入文件
  11. 简单封装mongodb
  12. Class_fourh_异常总结
  13. 批量操作RunTime之获取的Dic换成Model
  14. POJ 1743 Musical Theme(后缀数组 + 二分)题解
  15. angular的异步处理$q的使用(promise)
  16. 集训DAYn——拉格朗日插值法
  17. kafka学习总结之kafka核心
  18. nginx 学习笔记(4) Connection处理方法
  19. 使用终端命令行将本地项目上传到Github
  20. deploy: [mkdir] Created dir: C:\Program Files\Java\apache-cxf-2.4.2\samples\java_first_pojo\build [loadfile] Do not set property srcbuild.classpath as its length is 0.

热门文章

  1. 精确报告Linux内存使用情况实用脚本:ps_mem
  2. linux进阶之计划任务及压缩归档
  3. 大对象数据LOB的应用(Day_10)
  4. 最适合新手的Redis Cluster搭建过程
  5. YOLOv4实用训练实践
  6. Tomcat配置probe详细过程(步骤加截图)
  7. 三、部署被监控主机-Zabbix Agent
  8. 二、Linux基本防护措施
  9. 提高GUI自动化测试稳定性解决方案
  10. winform/WPF 多语言的实现