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
重新运行:
--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
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