docker 安装mysql
通过命令: docker search mysql 搜索mysql,可以发现标记的那两个是官方的
也可以在https://hub.docker.com上搜索mysql
网站上面搜索的会有很多配置提示,
右边显示的是pull命令:
输入命令: docker pull mysql/mysql-server
也可以直接 docker run 语法,因为当run的时候,docker发现本地没有该镜像,回去该网站上pull
最好在创建镜像的时候就指定用户名,密码和字符集,语法:
docker run -d -p 3306:3306 -e MYSQL_USER="nsky" #新增用户名 nsky -e MYSQL_PASSWORD="password" #nksy的密码 -e MYSQL_ROOT_PASSWORD="password" #root的密码 --name [Name] [ImageName] #容器名称 镜像名称,就是说以哪个镜像为基础创建容器 --character-set-server=utf8 #字符集 --collation-server=utf8_general_ci #级别
根据上面的语法,修改容器名称和镜像名称
docker run -d -p 3306:3306 -e MYSQL_USER="nsky" -e MYSQL_PASSWORD="password" -e MYSQL_ROOT_PASSWORD="password" --name mysql01 mysql/mysql-server --character-set-server=utf8 --collation-server=utf8_general_ci
注意,你直接这样复制命令是不行的,因为回车
解决方法:
1:不回车,变成一行
2:在回车后面加入空格右斜杠 \
docker run -d -p 3306:3306 \ -e MYSQL_USER="nsky" \ -e MYSQL_PASSWORD="password" \ -e MYSQL_ROOT_PASSWORD="password" \ --name mysql01 mysql/mysql-server \ --character-set-server=utf8 \ --collation-server=utf8_general_ci
然后在命令工具里面粘贴,回车,创建成功
docker ps 查看运行的容器,状态显示已经启动
启动中是这样的:
进入容器: docker exec -it mysql01 bash
登录mysql : mysql -uroot -p
使用数据库:
查看用户名: select user,host from user;
从可以看到root的host是localhost,说明只能通过localhost登陆,localhost以外的地方就不能连接了。用Navicat可以测试下
用nsky可以
我用nsky登陆的,没有权限使用数据库,用root登陆,给权限命令: GRANT ALL PRIVILEGES ON *.* TO 'nsky'@'%' WITH GRANT OPTION;
可以在创建用户的时候,就让他可以在外部连接: CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';
查看字符集: show variables like '%char%';
查看当前的collation: show variables like 'collation%';
但容器一删除,刚这些配置都没有了,所以建议是数据卷volume ,挂载
后期建议用mount ,语法更简单
其实就是容器的文件跟宿主机的一个绑定
退出mysql容器,输入exit即可
语法:
#注意:需要先创建/docker/mysql/config/my.cnf文件和/docker/mysql/data文件夹
docker run -d -p 3306:3306 --name mysql01 -v=/docker/mysql/config/my.cnf:/etc/my.cnf -v=/docker/mysql/data:/var/lib/mysql mysql/mysql-server
在chentos系统中,要区分是根目录还是root目录
这是root目录,[root@localhost~]
这是根目录 [root@localhost /]
如果是root目录。那么:-v=/root/mysql/m.cnf
如果是根目录,那么:-v=/mysql/m.cnf
my.cnf如下
[mysqld] user=mysql character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8
确定后,进入容器,修改密码
修改密码语句
mysql5.7版本语法:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
mysql5.7之后版本语法:
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'
可以通过命令: docker inspect mysql02
来看这个容器的一些参数和配置,比如我们配置的资料卷挂载
这样删除容器,在重新创建一个的话的,配置依然存在
当然,你创建容器的时候,-v后面的环境变量绑定必须之前的宿主机的路径
参考:https://shimo.im/docs/anrlYMFEYloN52c8
转载于:https://www.cnblogs.com/nsky/p/10413136.html
docker 安装mysql相关推荐
- Centos-安装Docker并使用Docker安装mysql遇到的问题以及解决方法
为什么安装Docker?? ----不知道啊,说是用其安装mysql简单 step1: 首先百度,查找安装的教程,哎,找到了: 如下: https://www.jianshu.com/p/9c9 ...
- 虚拟机中docker安装mysql远程无法访问解决方法
#docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d ...
- [转]Docker学习之四:使用docker安装mysql
本文转自:https://blog.csdn.net/qq_19348391/article/details/82998391 Docker学习之一:注册Docker Hub账号 Docker学习之二 ...
- docker安装mysql并配置,Docker安装MySql-挂载外部数据和配置
在上一篇中<在CentOS7中使用Docker安装MySql>中介绍了怎样在Docker中安装Mysql,但存在两个问题: 1.用户密码和字符集等的设置,需要安装完MySql后,进入到My ...
- Docker 安装MySQL以及外部访问
Docker 安装MySQL以及外部访问 (1)因为我们的镜像是linux环境下的,我所在的系统是windows系统.首先通过docker客户端切换到linux环境下. (2)使用docker pul ...
- 史上最详细Docker安装Mysql 带每一步详图及解释 并教你Docker 打印容器日志!!!相信值得你的阅读!!!
众所周知,如果我们要把项目放在服务器上运行,那么数据存储就是必需的,就用这篇小小文章记录一下我的经历吧. MySQL是一个关系型数据库管理系统,也是是最流行的关系型数据库管理系统之一,在 WEB 应用 ...
- docker安装mysql远程不能访问,虚拟机中docker安装mysql远程无法访问解决方法
#docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d ...
- macos docker 安装mysql,mac 中docker安装mysql的图文教程
今天在docker中安装了mysql ,是自己打的docker包. 首先新建dockerfile 内容如下: from mysql:latest 新建dockerfile后执行build命令: 构建镜 ...
- docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像
为了方便本地测试项目,为了方便开启新的环境,为了方便部署,打算本地利用Docker安装Mysql和Redis. 搭建Springboot项目,编写Dockerfile,打包构建镜像. 简单使用dock ...
- docker 安装mysql 实战文档_docker 安装mysql
PassJava (佳必过) 项目全套学习教程连载中,关注公众号第一时间获取. docker 安装mysql 1.下载镜像 sudo docker pull mysql:5.7 ubuntu@VM-0 ...
最新文章
- Django ModelForm操作及验证
- GCD -- 倒计时
- centos 6.5 rpm mysql_Linux平台(CentOS 6.5) RPM包方式安装 Mysql 5.7
- Java之多线程里面的锁理解以及synchronized与Lock的区别
- ZABBIX Agent2监控docker
- 苹果x翻新机序列号开头_Android翻新电话每隔X秒
- request.getContextPath()和request.getRealPath()的区别
- 国外变电站3d可视化技术发展_盘点:测量技术五大发展趋势,含3D扫描
- android自带下拉阻尼动画,Android 自带阻尼效果的ScrollView,仿ios效果
- acs代表什么_ACS 是什么意思
- #路由配置以及华为路由协议优先级
- Jquery 实现表格单行获取数据
- Jmeter对webSocket测试
- 网页请求localhost可以,但是请求ip地址就会出现连接超时
- Kafka Streams开发单词计数应用
- 数二第一章函数、极限、连续做题总结
- 一阶常系数微分方程组的笔记
- Beauty diary
- SimSwap 高保真人脸交换的高效框架 以及 deepfake辨别图片或者视频真假 dalle-mini文字生成图片
- Socialbook告诉你这才是KOL营销的终极秘诀