本站首页 返回顶部 关于博主

在Ubuntu Server上安装mysql容器

PDF版

给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 数据库。


相关文档




请你留言