去搜索mysql的镜像
docker search mysql
选择自己需要的版本对应的镜像,拉取镜像
docker pull mysql 不带版本号默认拉取最新版本对的镜像
创建外部挂载的文件并进行授权
mkdir mysqldata 创建文件chmod 777 /usr/mysqldata 对文件进行授权 因为我这里是在usr目录下创建的,如果就在当前目录下则可以不带/usr/
创建容器并启动
docker run -p 3306:3306 --name mysql-v /usr/mysqldata/log:/var/log/mysql-v /usr/mysqldata/data:/var/lib/mysql-v /usr/mysqldata/conf:/etc/mysql-e MYSQL_ROOT_PASSWORD=password-d mysql --restart=always
命令说明
run:启动名称-d 在后台运行容器,并且打印容器id--name mysql 给创建的容器取的容器名称-v /usr/mysqldata/data:/var/lib/mysql 给容器内部的数据文件指向mysqldata ,即删除了容器,容器数据也不会丢失,下次创建容器继续挂载到mysqldata即可看到删除容器之前的数据 -p 3306:3306 端口映射 前面是外部访问端口:后面内部开发的端口-e MYSQL_ROOT_PASSWORD=password 指定容器内的环境变量 初始化root账号的密码--restart=always 容器挂掉后自动重启mysql 镜像名 也可用镜像id
搭建好后就可以用navicat远程连接了(开放服务器的连接端口或者关闭防火墙)
进入容器内部 (修改root密码可以进入容器内部进行修改)
docker exec -it mysql bash 这里mysql是容器的名称
登录容器
mysql -u root -p -u 后面的是创建容器指定的账号 -p 后面跟的是创建容器指定的密码
退出容器命令快捷键
先ctrl+p 然后ctrl+q
Navicat连接docker部署的mysql报错host xxxis not allowed to connect to this mysql处理方案https://blog.csdn.net/qq_41973632/article/details/124378821
来源地址:https://blog.csdn.net/qq_41973632/article/details/130321564