利用Docker仅花1分钟时间安装好MySQL服务
一、安装Docker
# 使用一键脚本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
二、拉取MySQL镜像
这里默认拉取的是最新版的MySQL,如果想拉具体版本的可以到仓库里查找标签,在后面加上版本号就好,如MySQL的5.7版本,使用mysql:5.7。
docker pull mysql
下面的仓库中可以找到你想要的版本。
https://hub.docker.com/_/mysql?tab=tags
拉取完成后我们看一下我们的镜像
docker images
三、启动
略过上面的操作,也可以直接复制下面的命令,我这里使用5.7的版本并将端口映射为12345,做数据持久化。
docker run \
-p 12345:3306 \
--name mysql \
-v /docker/mysql/conf:/etc/mysql/conf.d \
-v /docker/mysql/logs:/logs \
-v /docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
docker run -d --restart=always -p 3306:3306 --privileged=true -v /mnt/disk0/appdata/mysql/conf:/etc/mysql/conf.d -v /mnt/disk0/appdata/mysql/data:/var/lib/mysql -v /mnt/disk0/appdata/mysql/logs:/logs -eMYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
参数说明:
run:run 是运行一个容器
-d:表示后台运行
-p:表示容器内部端口和服务器端口映射关联
--privileged=true:设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
-v /docker/mysql/conf/my.cnf:/etc/my.cnf:将服务器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
-v /docker/mysql/data:/var/lib/mysql:同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
-e MYSQL_ROOT_PASSWORD=123456:设置MySQL数据库root用户的密码
--name mysql:设值容器名称为mysql
mysql:5.7:表示从docker镜像mysql:5.7中启动一个容器
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci:设值数据库默认编码
新建MySQL用户:
先进入容器
docker exec -it mysql bash
执行MySQL命令, 输入root密码, 连接MySQL
mysql -uroot -p
输入密码后, 执行下面命令创建新用户 (用户名: test , 密码: test123)
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test123' WITH GRANT OPTION;
我们可以通过下面的命令登录进去这个MySql里面来管理,也可以使用第三方的工具来连接12345端口。
-
获取容器的id
docker ps
-
进入容器
# 把容器id替换成你自己的 docker exec -it id /bin/bash # 也可以直接使用下面的命令,效果一样 docker exec -it mysql /bin/bash
-
输入用户名密码登录,然后就可以正常使用了
mysql -uroot -p123456
当然也可以用第三方软件DBeaver来连接,此款软件社区版免费,功能也强大,推荐给大家!
最后说一句,不建议在docker里运行MySQL数据库软件,仅当测试或数据重要性不高时使用。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。