docker部署数据库
搜索数据库镜像images
docker search mysql
搜索结果如下图所示:
选择合适自己的mysql版本
因为mysql新版本出来了,很多特性没有学习,所以笔者安装了mysql:5.6 这个版本比较友好
使用docker pull进行下载
docker pull mysql:5.6
等待下载完成之后,使用 docker run 进行部署
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.6
参数解析:
-d : 表示后台运行
-p : 表示端口映射 服务器端口:docker 内部mysql暴露的端口 即 你想自定义的端口号:3306
-e : 环境变量或者参数设置 这里设置的是mysql 的root密码
--name : 此容器的名字 可以通过 docker ps -a 进行查看 对容器的操作可以通过容器id 也可以通过容器名
mysql:5.6 指的是使用那一个镜像(image) 进行部署
如此mysql就部署成功了
进入容器,使用mysql,使用docker exec进入容器内部
docker exec -it mysql /bin/bash
参数解析:
-it : 可以理解为进入容器内部
mysql : 容器名称 也可以使用容器id
/bin/bash : 进入/bin/bash 目录 即可以使用命令行的方式
进入之后:
此时只是进入了容器之中,并没有进入mysql
使用 mysql -u root -p root 进入mysql
mysql -u root -p
root
进入之后就可以进行数据库的基本操作了。
附上 mysql 创建用户和权限: mysql:5.6 和最新的mysql 版本创建用户和权限管理有很大区别,如果读者是安装的最新版的mysl 下面的方法可能不适用
create user '用户名'@‘ip’ identified by '密码';
其中ip属性指的是限定某个ip才可以访问,%表示所有ip都可以访问 localhost 本机才可以访问
修改密码:
update mysql.user set password = password('新密码') where user = '用户名';
删除用户:
delete from mysql.user where user = '用户名';
修改用户权限:
grant all privileges on 数据库名.表名 to '用户名'@‘ip’
如果是所有数据库 所有表 使用 *.* ip同上创建用户 可以使用 % 表示所有ip
最后修改了需要刷新才能生效
flush privileges;