建议:多看几篇相关文章,掌握整个流程,想清楚,再执行,错了再重新弄太麻烦,感谢以下链接文章支持
一,
1 ,拉取mysql镜像,采用网易加速地址
docker pull hub.c.163.com/library/mysql:5.7
查看镜像
docker images
2 ,重命名镜像名
docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7
参考
https://segmentfault.com/a/1190000019708313
二,创建mysql容器
1,在本地创建mysql的映射目录
mkdir -p /home/mysql/data /home/mysql/logs /home/mysql/conf
2,在/home/mysql/conf中创建 *.cnf 文件(my.cnf)
touch my.cnf
3,创建容器,将数据,日志,配置文件映射到本机
先别执行,尤其注意配置文件的挂载,
docker run --name mysql -p 3306:3306 -v /home/mysql/data:/var/lib/mysql -v /home/mysql/logs:/var/log -v /home/mysql/conf/:/etc/mysql/ -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
-v /home/mysql/conf/:/etc/mysql/,意思是本地服务器/home/mysql/conf/文件,与mysql容器/etc/mysql/,文件进行同步
而我自己的服务器,etc,压根不存mysql文件,/etc/mysql/mysql.conf.d,我直接在etc下创建mysql,文件,再找个my.cnf,丢到etc/mysql/下,my.cnf模板,见文章最后
上传文件,rz,如果无法上传执行如下
yum install lrzsz -y
在/etc下没有my.cnf 解决办法
https://blog.csdn.net/weixin_38455187/article/details/83450961
https://blog.csdn.net/qq_35823078/article/details/88874493
配置文件及乱码
https://www.cnblogs.com/zhangs1986/p/6603334.html
-d: 后台运行容器
-p 将容器的端口映射到本机的端口
-v 将主机目录挂载到容器的目录
-e 设置参数
4,启动mysql容器
docker start mysql
查看是否运行:docker ps
注意:centos7 systemctl start mysql 没用,应该是docker安装的只能用docker方式启动
5,进入data目录,是否生成数据
cd ../data
三,连接数据库
1,进入mysql容器
docker exec -it mysql bash
2,登录
mysql -uroot -p
密码是创建容器时默认的123456
查看数据库 show databases,退出mysql quit
3,并设置远程的授权等信息
grant all privileges on *.* to root@"%" identified by "123456" with grant option;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
四,本地连接mysql,报错10036
有的说,修改配置文件,关闭防火墙,授权远程连接,结果都不行,本文正解,开放阿里云服务对mysql 3306端口
https://www.itbulu.com/aliyun-security-group.html
如何添加配置,先进入实例

my.cnf模板
[client]
#password = your_password
port = 3306
socket = /usr/local/mysql/data/mysql.sock
default-character-set=utf8
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
datadir=/home/mysql/data
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-storage-engine=INNODB
character_set_server=utf8
lower_case_table_names=1