docker 安装Mysql
1、使用docker 安装mysql5.7
下载mysql 5.7镜像
docker pull mysql:5.7
使用docker run 命令创建容器
docker run -p 3306:3306 --name mysql -v /home/docker/mysql/log:/var/log/mysql -v /home/docker/mysql/data:/var/lib/mysql -v /home/docker/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ="Asia/Shanghai" -d mysql:5.7
或者:
docker run -p 3306:3306 \--name mysql \-v /home/docker/mysql/log:/var/log/mysql \-v /home/docker/mysql/data:/var/lib/mysql \-v /home/docker/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=123456 \-e TZ="Asia/Shanghai" \-d mysql:5.7
命令详解:
-
-p 3306:3306:将主机的3306端口映射到容器的3306端口
-
-v /home/docker/mysql/conf:/etc/mysql:将配置文件夹挂在到主机
-
-v /home/docker/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-
-v /home/docker/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-
-e MYSQLROOTPASSWORD=123456:初始化root用户的密码
-
-e TZ="Asia/Shanghai" : 指定时区
进入mysql设置root账号可以远程访问
docker exec -it mysql mysql -uroot -p123456
启动容器时密码设置的什么,-p后面就跟什么
设置root账号、native的密码远程访问(123456 就是 设置的密码):
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
grant all privileges on *.* to 'root'@'%' identified by '123456';
刷新权限并退出:
flush privileges;
exit;
退出:
开放linux端口
开放之前要先重启防火墙systemctl restart firewalld,不然会报错;
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重载防火墙
firewall-cmd --reload