前言:docker作为现在大火的容器技术,安装各种环境是十分方便的,厌倦了之前各种安装包的各种报错,决定写个博客记录一下。
欢迎评论区指正错误或者补充!
1. 首先在服务器上安装mysql,这个是非常简单的,只需要一行命令 (当然你要有docker环境)
docker pull mysql
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
可以看到是set environment variables,设置环境变量
或者上docker的官网进行查询,官网写的文档都是很清楚的。 (不过从后面MYSQL_ROOT_PASSWORD也差不多猜到了是mysql设置root密码)
输入之后会返回一段编号(就是mysql容器的编号)
这里输入
docker ps -a
可以查看正在运行的容器
3. 进入mysql容器
上面我们-d是指令mysql容器在后台运行的所以我们可以进入容器
-it:交互
exec:新开一个终端进入容器之中
/bin/bash:运行在哪里
docker exec -it 5a9ccf50e9adf76b1b4daf9cd15b11bc73cce585856dc829d99dfd7469ee9860 /bin/bash
4.进行mysql的一些设置
mysql -u root -p
我们上面设置的密码是123456
可以看到我们已经进入了mysql!
通过这个目录启动:
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;
可能会出现的一些错误:
解决办法:
如果有两个root就删掉一个剩余localhost
这样就好了
添加用户(远程登录):
创建用户b密码为123456,b可以从外网任何主机远程登录(主机字段为%):
create user 'b'@'%' identified by '123456';
给b授予操作所有数据库的所有表的全部权限:
grant ALL on *.* to 'b'@'%';
到这里基本的功能也都实现了。
--------------------------------------------分割线--------------------------------------------
5. 进行一些备份(备份到本地,防止删库跑路)
先exit,这时候遇到了一个问题
command not found!!!
原来这里是返回到容器,ctrl+pq就可以退出容器了。
创建一个和迁移的库同名的库
新建一个sql文件并上传
docker cp MineFV.sql mysql:/
6. 迁移数据
mysql -uroot -p MineFV < MineFV.sql
这个是将sql数据导入数据库的,因为我这里没有所有就没有导入
关于mysql的数据迁移可以看看这一篇文章: blog.csdn.net/u010305057/…
这样就大功告成啦!