centos7 docker 安装mysql
为什么用docker安装
centos7 mysql非docker安装方式大概有三种:
编译安装MySQL
二进制方式安装MySQL
YUM方式安装MySQL
直接安装和docker安装的区别
1、docker安装快速,效率高;
2、docker隔离性好,可以安装无数个mysql实例,互相不干扰,只要映射主机端口不同即可;
3、占用资源少,MB级别,而服务器安装GB级别;
4、启动速度秒级,而服务器安装启动分钟级别;
5、性能接近原生,而服务器安装较低;
6、数据备份、迁移,docker更方便强大;
7、卸载管理更方便和干净,直接删除容器和镜像即可;
8、稳定性,只要保证docker环境没问题,mysql就没问题。
mysql安装步骤
1、docker search mysql 命令来查看可用版本:
[root@localhost ~]# docker search mysql
2、拉取 MySQL 镜像
默认拉取最新的镜像
[root@localhost ~]# docker pull mysql
3、查看本地镜像
[root@localhost ~]# docker images mysql
4、创建用于挂载的目录
防止容器删除导致数据丢失
[root@localhost local]# mkdir mysql
#用于挂载mysql数据文件
[root@localhost local]# mkdir mysql/data
#用于挂载mysql配置文件
[root@localhost local]# mkdir mysql/conf.d
5、开放端口
检查防火墙状态
[root@localhost ~]# firewall-cmd --state
如果防火墙开启需要开放3306端口,否则无法正常连接数据库
[root@localhost sysconfig]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
[root@localhost sysconfig]# firewall-cmd --reload
命令解析
–zone #作用域
–add-port=3306/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
6、启动容器
[root@localhost mysql]# docker run --name mysql --privileged=true --restart always -p 3306:3306 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql
命令解析:
–restart always:开机启动
–privileged=true:提升容器内权限
-e MYSQL_ROOT_PASSWORD=”123456”:设置root的密码为123456
7、进入容器
[root@localhost mysql]# docker exec -it mysql mysql -uroot -p123456
查询数据库
mysql> show databases;
8、设置远程客户端登录
mysql> GRANT ALL ON . TO ‘root’@’%’;
mysql> ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
刷新权限:
mysql> FLUSH PRIVILEGES;