docker部署–mysql

安装mysql镜像(默认最新版本)

docker pull mysql

mysql中docker相关目录与映射目录

mysql中docker相关文件

  • 自定义配置文件目录:/etc/mysql/conf.d
  • 数据文件目录:/var/lib/mysql

在本地创建mysql映射目录
分别创建自定义配置目录和数据存放目录

mkdir -p ~/docker/mysql/conf ~/docker/mysql/data
touch ~/docker/mysql/conf/my.cnf

并编辑自定义配置文件

[mysqld]
default_authentication_plugin=mysql_native_password #使用mysql8以前的密码插件,以便navicat等工具能够正常连接
character_set_server = utf8
default-time-zone = '+08:00'
[mysqld_safe]
character_set_server = utf8
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[client]
default-character-set = utf8

运行容器并映射目录和密码

docker run -d --name mysql -p 3306:3306 -v ~/docker/mysql/conf/:/etc/mysql/conf.d -v ~/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345666 mysql

进入容器修改密码

进入容器

docker exec -it mysql bash

链接mysql,输入上面的密码

mysql -u root -p

更改密码

Use mysql;
Update mysql.user set authentication_string=password('xxxxxx') where user='root' and host='%';
flush privileges;

创建mysql新用户

create user 'bitjian'@'%' identified by 'your_password;
grant select,update,delete,insert on bitjian.* to bitjian@'%' identified by 'your_password';
flush privileges;

问题总结

  • 不设置自定义配置文件mysql时间戳默认早8小时

    image
  • 查看容器映射后的本地目录,数据文件都复制到本地了

    image
  • 查看容器挂载目录,本地文件也挂载到容器里了

    image
  • dbeaver链接数据库问题

    image