docker上安装mysql

docker上安装mysql

1、拉取镜像

  docker pull mysql:5.7.26

 2、运行容器

  docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26

  2.1 查看mysql容器:docker ps |grep mysql

  2.2 进入容器:docker exec -it mysql /bin/bash

 3、修改配置文件

  3.1 创建挂载目录

  退出容器,创建挂载目录

  mkdir -p /mysql/conf
     mkdir -p /mysql/data
  mkdir -p /mysql/logs

  3.2 进入容器查看创建的目录

  docker exec -it mysql /bin/bash

  进入etc/mysql 下查看文件

  

 第一个文件内容

 第二个文件内容

 第一个文件的配置文件中的内容

 第二个文件的配置文件中的内容

上面配置文件中可以看到(也可以搜索:find / -name "*mysql*",有通配符需要加引号)

数据目录:/var/lib/mysql/

日志目录:/var/log/mysql/

配置目录:/etc/mysql/mysql.conf.d/

也可以这样查看数据目录

自带的mysql数据库有user.frm:find / -name "user.frm"

 

查看数据目录,框起来的是数据库

 3.3 修改配置文件

  复制容器中配置文件到本机:docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /mysql/conf/

  修改配置文件:vim mysqld.cnf

 

这里只修改编码

在 [mysqld] 前添加如下配置:

  [client]

  default-character-set=utf8

在 [mysqld] 后添加如下配置:

  character-set-server=utf8

 3.4 重新运行容器

  删除之前的容器:docker rm -f mysql 

  重新运行:

  docker run \
  --name mysql \
  -p 3306:3306 \
  -v /mysql/conf:/etc/mysql/mysql.conf.d/ \
  -v /mysql/data:/var/lib/mysql/ \
  -v /mysql/logs:/var/log/mysql/ \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -d mysql:5.7.26
  
  宿主机可以看到容器的mysql数据目录

 

  进入容器:docker exec -it mysql /bin/bash
  cat /etc/mysql/mysql.conf.d/mysqld.cnf,可以看到宿主机的配置文件
  

 4、本地连接

  4.1  执行命令mysql -uroot -p123456

  4.2  查看数据库字符集

   4.3 远程连接数据库

    连接不上的问题?

    需要开放授权:grant all on *.* to root@'%' identified by 'root' with grant option;   

    刷新权限:flush privileges; 

 

  参考https://www.cnblogs.com/uncleyong/p/15573192.html

posted @   爱语默  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示