Docker 部署mysql 5.7.20

1 下载镜像

[root@node-11 ~]# docker pull mysql:5.7.20

2 创建mysql目录

[root@node-11 ~]# mkdir /opt/mysql/{data,conf,logs} -p
目录说明:
    data:数据目录
    conf:配置文件
    logs:日志目录

3 编辑配置文件

[root@node-11 ~]# vim /opt/mysql/conf/mysqld.cnf
[mysqld]
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
datadir		= /var/lib/mysql
lower_case_table_names = 1  ## 忽略mysql查询大小写

注意:这只是简单的mysql参数,具体的参数需要根据业务需求,自行添加即可,这里需要注意的是,涉及到mysql数据目录的话,一定要写容器内的路径,而不是映射到宿主机的目录。

4 启动

[root@node-11 ~]# docker run -d -p 3306:3306 --name mysql 
 -v /opt/mysql/data:/var/lib/mysql 
 -v /opt/mysql/logs:/var/log/mysql 
 -v /opt/mysql/conf:/etc/mysql/mysql.conf.d 
 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.20

参数解释:

  1. --name: 容器名称
  2. -p 3306: 映射端口
  3. MYSQL_ROOT_PASSWORD:mysql初始密码
  4. -v冒号前面是宿主机目录,后面是容器目录

查看启动状态

5 设置远程登录

[root@node-11 ~]# docker exec -it mysql /bin/bash
root@cd0fb7617eb9:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.7.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> exit

6 测试远程登录

使用navicat输入ip地址,用户名密码测试连接即可

原文地址:https://www.cnblogs.com/tchua/p/12408073.html