docker的镜像仓库
直接搜索mysql
sudo docker pull mysql:5.7
创建实例并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明
-p 3306:3306:将容器的3306端口映射到linux主机的3306端口,这样我们访问linux的3306 端口,就相当于访问docker的3306端口
-v /mydata/mysql/conf:/etc/mysql\ :将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql\:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql\:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root\:初始化root用户的密码
CONTAINER ID:唯一的ID
IMAGE:使用这个镜像启动的
COMMAND:启动时用的命令
CREATED:什么时候创建的
PORTS:端口3306映射到3306
NAMES:名字叫mysql
进入mysql容器里面,使用交互模式,进入mysql的 bin/bash的操作台
docker exec -it mysql /bin/bash
root@d2d6968f228f:表示以root用户,访问到容器的内部
列举整个目录的结构:ls /
这个目录结构,其实就是一个完整的linux目录结构,相当于mysql就被装到了这个小小的linux里面
看一下mysql被装到了哪里:whereis mysql
mysql配置
首次linux目录下是没有my.conf文件的,直接vi创建
vi /mydata/mysql/conf/my.conf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci’
init_connect='SET NAMES utf8’
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
然后一系列操作
注意:解决mysql连接慢的问题
在配置文件中加入如下,并重启mysql
[mysql]
skip-name-resolve
解释:
skip-name-resolve:跳过域名解析
测试windows连接linux的mysql
关闭防火墙:systemctl stop firewalld