docker安装mysql5.7
-
下载镜像
docker pull mysql:5.7
-
创建映射文件夹
mkdir -p /docker/mysql/conf mkdir -p /docker/mysql/logs mkdir -p /docker/mysql/data
-
创建容器
docker run --privileged=true -p 3306:3306 --name mysql -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/logs:/var/log/mysql -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=223345 -d mysql:5.7
- -p 3306:3306 主机端口跟容器端口映射
- –name mysql 设置容器名字
- -v /docker/mysql/conf:/etc/mysql/conf.d 挂载配置文件
- -v /docker/mysql/logs:/var/log/mysql 挂载日志
- -v /docker/mysql/data:/var/lib/mysql 挂载数据文件,持久化到主机
- -e MYSQL_ROOT_PASSWORD=223345 设置密码
- -d mysql:5.7 后台启动,使用的镜像为mysql:5.7
-
配置my.cnf
#创建my.cnf cd /docker/mysql/conf/ vim my.cnf
#插入配置 [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
docker restart mysql
docker 安装mysql8.0
-
下载镜像
docker pull mysql:8.0
-
创建映射文件夹
mkdir -p /docker/mysql8/data mkdir -p /docker/mysql8/logs mkdir -P /docker/mysql8/conf
-
创建容器
docker run --privileged=true -p 3307:3306 --name mysql8 -v /docker/mysql8/conf:/etc/mysql/conf.d -v /docker/mysql8/logs:/var/log/mysql -v /docker/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=223345 -d mysql:8.0
-
设置root账户外网可访问
# 进入容器 docker exec -it mysql8 bash #进入mysql终端 mysql -uroot -p #设置root账户外网可访问 use mysql; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; flush privileges; #退出 exit exit
-
配置my.cnf
[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
docker restart mysql8