给Ubuntu Server上装了MySQL容器,做个笔记,用以备忘。步骤如下:
1. 在Dockerhub上搜到MySQL的网页,下载MySQL容器镜像。
MySQL的官方镜像网址是:https://hub.docker.com/_/mysql,运行如下命令下载MySQL 5.7的镜像。
docker pull mysql:5.7
2. 启动一个临时的MySQL容器,并把MySQL的数据文件保存到宿主机。
sudo docker run --name tmpmysql --rm \ -p 3306:3306 -p 33060:33060 \ -e MYSQL_ROOT_PASSWORD=rootpass \ -d mysql:5.7
在以上命令中,运行了一个命名为 tmpmysql 的MySQL容器。在这个命令中, 3306 为 MySQL协议的默认端口,用于客户端连接MySQL,33060 是 MySQL 数据库扩展接口(MySQL X 协议)的默认端口,容器中的这两个端口映射成宿主机中同名端口。登录数据库时,root 账号的登录密码为 rootpass。
为了验证 MySQL 是否正常运行,打开 HeidiSQL,输入 IP 与账号信息,点击数据库旁的倒三角,如果能看到表信息,则说明 MySQL 能正常连接。
创建目录 mysql-data ,把容器中数据库存储目录中的文件复制到 mysql-data 中,命令如下:
mkdir mysql-data sudo chmod 777 mysql-data // 可选,防止运行 docker cp 的时候提示没有权限 cd mysql-data docker cp tmpmysql:/var/lib/mysql .
如果在运行 docker cp 时,提示没有权限,可以在docker cp 命令之前加上sudo, 或者先运行 sudo chmod 777 mysql-data。
3. 关闭临时容器,启动永久的MySQL容器。
停止运行临时容器 tmpmysql,并启动永久的 MySQL 容器即可。
docker stop tmpmysql sudo docker run --name mysql \ -v /home/ubuntu/mysql-data/mysql:/var/lib/mysql \ -p 3306:3306 -p 33060:33060 \ -e MYSQL_ROOT_PASSWORD=rootpass \ -d mysql:5.7 \
以上命令中, -v 之后的参数表示把宿主机的目录 /home/ubuntu/mysql-data/mysql 中的数据映射到容器中的目录 /var/lib/mysql,也就是 mysql 的数据存储目录。目的在于让数据库文件独立于容器之外,方便备份。
4. 启动HeidiSQL,连接MySQL容器,测试成功。
详细步骤可参见第 2 步中使用 HeidiSQL 连接 MySQL 数据库。
相关文档
请你留言