宝塔面板Docker 安装mysql5.6,为什么要docker安装呢?因为这个办法是可以让你一台机器共存两个不同的mysql,有的宿主机安装了mysql8.0,有的项目又需要5.6,总不能再买服务器吧?所以就这样操作,如果你的本地php,甚至web环境nginx也用不了,那就只能尝试docker部署系统然后搭建宝塔,最后反向代理了
docker搭建宝塔反向代理参考:https://blog.csdn.net/jijinduoduo/article/details/118625507
1、从docker hub 上拉取镜像到本地
docker pull mysql:5.6
如果是不加版本直接拉取的话,默认的是最新版本
docker pull mysql
默认拉取最新的版本
2、启动
①基本启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD="设置你的mysql的密码"-d mysql:5.6
解析:--name 给容器取名字为mysql
-p 端口1:端口2 端口1是对外暴露的端口(即宿主机的端口),端口2 使我们的mysql端口
-e MYSQL_ROOT_PASSWORD=密码 即root用户的密码
-d mysql:5.6 代表后台运行我们的mysql
注意:(此方式的缺点:容器关闭再启动我们的数据就没有了)
②高级启动
docker run --privileged=true --name mysql -p 3306:3306 -v /mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
代表将宿主机/mysql/data 挂载到 mysql容器的/var/lib/mysql
/mysql/data 这个目录是我们虚拟机的地址,文件夹不用建,启动成功自动生成
注意:(容器关闭再启动我们的数据不会消失),一般我们选择用这个启动
3、查看是否启动成功(到这里我们就已经安装成功了)
docker ps -a
结果如下(会有个container id)
4、操作数据库
使用如下命令连接上mysql(这个534cfceb874b是上一步的容器di)
docker exec -it 534cfceb874b /bin/bash
登录mysql
特别注意:
①:注意虚拟机的端口的开放和防火墙的问题,可能导致在外部用工具连接的是后连接不上的问题。
②:如果是部署在云服务器上的使用远程连接的时候连接不上的特别要注意安全组的设置,开放相关的端口。
个人尝试
本地宿主机测试docker 链接情况的命令
mysql -h 127.0.0.1 -P 3307 -u root -p
输入命令,然后再粘贴密码
拉取镜像后已经修改的自定义语句
docker run --privileged=true --name mysql -p 3307:3306 -v /mydockerapp/mysql/data:/var/lib/mysql -v /mydockerapp/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=m3a666888heiqw -d mysql:5.6.51
这条 docker run
命令是用来启动一个 MySQL 容器的。下面是它的作用:
-
--privileged=true
:给容器更多的权限,允许它执行更多的操作,比如访问宿主机的设备。 -
--name mysql
:为容器命名为mysql
,方便以后引用和管理。 -
-p 3307:3306
:将宿主机的3307
端口映射到容器的3306
端口。这样可以通过宿主机的3307
端口访问 MySQL 服务。 -
-v /mydockerapp/mysql/data:/var/lib/mysql
:把宿主机的/mydockerapp/mysql/data
目录挂载到容器中的/var/lib/mysql
目录,用于存储数据库数据。 -
-v /mydockerapp/mysql/conf:/etc/mysql
:把宿主机的/mydockerapp/mysql/conf
目录挂载到容器中的/etc/mysql
目录,用于存储 MySQL 配置文件。 -
-e MYSQL_ROOT_PASSWORD=m3a666888heiqw
:设置 MySQLroot
用户的密码为m3a666888heiqw
。 -
-d
:让容器在后台运行。 -
mysql:5.6.51
:指定使用mysql
镜像的5.6.51
版本。