拉取镜像

docker pull mysql:5.7

创建数据目录和配置文件

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

sudo mkdir -p /usr/mysql/conf /usr/mysql/data /var/log/mysql

sudo chmod -R 755 /usr/mysql/ /var/log/mysql

创建配置文件

vim /usr/mysql/conf/my.cnf
添加以下内容到上述创建的配置文件中

  1. [client]
  2. #socket = /usr/mysql/mysqld.sock
  3. default-character-set = utf8mb4
  4. [mysqld]
  5. #pid-file = /var/run/mysqld/mysqld.pid
  6. #socket = /var/run/mysqld/mysqld.sock
  7. #datadir = /var/lib/mysql
  8. #socket = /usr/mysql/mysqld.sock
  9. #pid-file = /usr/mysql/mysqld.pid
  10. datadir = /usr/mysql/data
  11. general_log = 1
  12. general_log_file = /var/log/mysql/access.log
  13. log-error = /var/log/mysql/error.log
  14. character_set_server = utf8mb4
  15. collation_server = utf8mb4_bin
  16. secure-file-priv= NULL
  17. # Disabling symbolic-links is recommended to prevent assorted security risks
  18. symbolic-links=0
  19. # Custom config should go here
  20. !includedir /etc/mysql/conf.d/

启动创建容器

  1. docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7

参数解释: -v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录 -d : 后台运行容器 -p 映射容器端口号和宿主机端口号 -e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码

查询容器

sudo docker ps -a

配置远程的Navicat连接

进入容器内部

sudo docker exec -it mysql /bin/bash

连接mysql

mysql -uroot -p123456

使用mysql库

use mysql;

修改访问主机以及密码等,设置为所有主机可访问

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

刷新

flush privileges;
使用Navicat连接数据库时就可以正常连接