环境centos7
一、拉取mysql镜像5.7的版本docker pull mysql:5.7二、安装mysql镜像
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 -p 3306:3306 将主机的3306端口映射到容器内部的3306端口 --name mysql 指定运行的容器名为mysql -v $PWD/conf:/etc/mysql/conf.d 将容器内部的配置目录/etc/mysql/conf.d挂载到主机目录$PWD/conf -v $PWD/logs:/logs 将容器内部的日志目录/logs挂载到主机目录$PWD/logs -v $PWD/data:/var/lib/mysql 将容器内部的数据目录/var/lib/mysql挂载到主机目录$PWD/data -e MYSQL_ROOT_PASSWORD=123456 设置数据库root用户的密码为123456 -d 设置容器在后台运行 mysql:5.7 运行的镜像为mysql:5.7三、配置mysql 通过bin/bash的方式进入容器
docker exec -it mysql bin/bash登录mysql
mysql -uroot -p使用mysql
use mysql;查询mysql的用户
select host,user from user;添加远程登录用户
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';刷新
flush privileges;【1】docker安装容器报错:
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql (97bd1a090c440dcb893f26150667fb60b7ee4f09bf6a9bdb2fced55ca42fc6c7): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNA【1】解决办法:
systemctl restart docker(重新启动docker)【2】部署至云服务器的springboot,插入数据库乱码的问题(centos7环境docker中的mysql)
#先登录mysql mysql -uroot -p #查询数据库编码 show variables like '%character%';【2】解决办法:
创建容器的时候映射mysql配置路径:-v /home/mysql/conf:/etc/mysql
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Lyk@3144 --name mysql mysql:5.7
在/home/mysql/conf里面新建my.cnf
在my.cnf加入下列配置
[client] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci
重启mysql容器,解决



