使用docker在debian服务器上搭建mysql并挂载(图文详解)

273 阅读3分钟

image.png

前言:docker作为现在大火的容器技术,安装各种环境是十分方便的,厌倦了之前各种安装包的各种报错,决定写个博客记录一下。

欢迎评论区指正错误或者补充!

1. 首先在服务器上安装mysql,这个是非常简单的,只需要一行命令 (当然你要有docker环境)

docker pull mysql

image.png

2. 然后构建需要的容器并进行挂载数据卷

-p:端口号,mysql对应的是3306

-v:挂载数据卷( 宿主机:容器)

-d:后台运行

最后的mysql就是你之前的镜像名字默认拉过来的都是mysql

如果有版本号的话记得要mysql:5.0这样写,版本是lastest的话就不用写

docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

-e:一开始我也忘记了,不过没关系我们可以

docker run --help

image.png

可以看到是set environment variables,设置环境变量

或者上docker的官网进行查询,官网写的文档都是很清楚的。 (不过从后面MYSQL_ROOT_PASSWORD也差不多猜到了是mysql设置root密码)

image.png

输入之后会返回一段编号(就是mysql容器的编号)

这里输入

docker ps -a

可以查看正在运行的容器

3. 进入mysql容器

image.png

上面我们-d是指令mysql容器在后台运行的所以我们可以进入容器

-it:交互

exec:新开一个终端进入容器之中

/bin/bash:运行在哪里

docker exec -it 5a9ccf50e9adf76b1b4daf9cd15b11bc73cce585856dc829d99dfd7469ee9860 /bin/bash

4.进行mysql的一些设置

mysql -u root -p

我们上面设置的密码是123456

image.png

可以看到我们已经进入了mysql!

image.png

通过这个目录启动:

service mysql start

还可以停止或者停止:

service mysql stop

重启(修改完配置文件重启生效):

service mysql restart

安装完成,MySQL的服务端是默认开机自启动的,我们可以通过下列命令打开/关闭MySQL的开机自启动:

systemctl enable mysql

禁用开机自启:

systemctl disable mysql

设置外网可以连接:

use mysql; 
update user set host='%' where user='root'; 
flush privileges;

可能会出现的一些错误:

image.png

解决办法:

如果有两个root就删掉一个剩余localhost

image.png

这样就好了

image.png

添加用户(远程登录):

创建用户b密码为123456,b可以从外网任何主机远程登录(主机字段为%):

create user 'b'@'%' identified by '123456';

给b授予操作所有数据库的所有表的全部权限:

grant ALL on *.* to 'b'@'%';

到这里基本的功能也都实现了。

--------------------------------------------分割线--------------------------------------------

5. 进行一些备份(备份到本地,防止删库跑路)

先exit,这时候遇到了一个问题

image.png

command not found!!!

原来这里是返回到容器,ctrl+pq就可以退出容器了。

创建一个和迁移的库同名的库

新建一个sql文件并上传

image.png

docker cp MineFV.sql mysql:/

6. 迁移数据

mysql -uroot -p MineFV < MineFV.sql

这个是将sql数据导入数据库的,因为我这里没有所有就没有导入

关于mysql的数据迁移可以看看这一篇文章: blog.csdn.net/u010305057/…

这样就大功告成啦!

image.png