Docker安装Mysql5.7
- 拉取
mysql 5.7
Docker镜像
docker pull mysql:5.7
其他版本请查看 tags
- 创建容器
docker run -it -p 3306:3306 --name mysql57 \
-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 \
--restart=always \
-d mysql:5.7
参数说明:
-
-i: 以交互模式运行容器,通常与 -t 同时使用
-
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口,此处是将宿主机的3306端口映射到容器的3306端口
-
--name: 指定容器名称
-
-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:初始化root账户的密码
-
--restart=always:docker重启时,自动启动此容器
-
-d: 后台运行容器,并返回容器ID
- Mysql配置
修改默认编码
vi /mydata/mysql/conf/my.cnf
[client]
default_character_set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
skip-character-set-client-handshake
skip-name-resolve
重启容器:
docker restart mysql57
- 通过容器的 mysql 命令行工具连接
docker exec -it mysql57 mysql -uroot -proot
- 设置 root 远程访问
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;