Docker最全教程之MySQL容器化 (二十四)
前言
MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过此块,本篇仅从笔者角度进行总结和编写。
目录
镜像说明
运行MySQL容器镜像
1.运行MySQL容器
2.修改“root”账户的认证模式和密码
管理MySQL
1. MySQL命令行工具
2. Visual Studio Code的MySQL插件
3. phpmyadmin
MySQL是目前最流行的开源的关系型数据库,因其高性能、可靠性和易用性而广受开发者的欢迎,尤其是开放源码这一特点,一般中小型网站的开发都会优先选择MySQL作为网站数据库。
与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL虽然有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。
镜像说明
MySQL的官方镜像地址为:https://hub.docker.com/_/mysql
运行MySQL容器镜像
1.运行MySQL容器
接下来,我们使用PowerShell来运行MySQL镜像。脚本如下所示:
docker run --name mysql `-e MYSQL_ROOT_PASSWORD=123456 `-p 3306:3306 `-d mysql
相关参数说明如下所示:
表7-2
参数 |
描述 |
-e MYSQL_ROOT_PASSWORD=123456 |
此变量是必须的,用于指定MySQL超级管理员帐户(root)的密码。 |
-p 3306:3306 |
建立容器端口和主机端口的映射。MySQL默认端口为3306。 |
-d |
在后台运行容器并打印容器ID。 |
--name mysql |
为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。 |
mysql |
MySQL容器镜像。 |
执行界面如图所示:
同样的,我们可以参考前面的章节使用数据卷或者主机目录来完成MySQL的数据持久化,参考命令参数如下:
- 使用数据卷“-v my-volume:/var/lib/mysql”
- 使用主机目录“-v d:\temp\data:/var/lib/mysql”
2.修改“root”账户的认证模式和密码
MySQL容器已经运行了,如果我们满怀欣喜地使用Visual Studio Code的MySQL扩展插件去连接时,就会碰到这么一个错误:
究其原因,其实就是MySQL新版本的“caching_sha2_password”授权认证模式的问题,我们将其改回“mysql_native_password”授权模式即可。
主要有以下几步操作:
1) 进入MySQL容器
docker exec -it mysql /bin/bash
2) 使用MySQL命令行工具连接MySQL
mysql -h localhost -u root -p
需要输入密码:
3) 修改“root”账户的认证模式
连接成功后,接下来我们就可以使用SQL语句来修改“root”账户的认证模式了:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
注意,最后的字符串“123456”为“root”账户的密码。
4) 验证外部连接
同样的,我们使用Visual Studio Code的MySQL扩展插件进行验证,正常情况如下所示:
管理MySQL
这里我们主要简单的介绍以下MySQL命令行工具和Visual Studio Code的MySQL扩展插件。
1. MySQL命令行工具
进入方式在前面的章节我们已经多次讲述了,这里就不赘述了。使用MySQL命令行工具,我们可以非常方便的进行管理数据库。比如:
- 查看数据库
- 创建数据库
- 执行其他查询
2. Visual Studio Code的MySQL插件
由于大部分MySQL UI管理工具都要钱,这里就首要推荐使用万能的Visual Studio Code的MySQL的插件来进行管理。
- MySQL插件
使用起来非常简单:
- SQLTools
支持多种数据库(MySQL、MSSQL、PostgreSQL、Oracle、SQLite、SAP HANA),支持书签、查询语句智能提示和自动完成以及将数据导出CSV或JSON:
3. phpmyadmin
phpMyAdmin 是一个B/S架构的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。我们可以使用容器来运行phpmyadmin,官方镜像地址:https://hub.docker.com/r/phpmyadmin/phpmyadmin
执行命令如下:
docker run --name myadmin `--link mysql:db `-e MYSQL_ROOT_PASSWORD=123456 `-p 8080:80 `-d phpmyadmin/phpmyadmin
如上述命令所示,我们运行了一个phpmyadmin容器实例,其中MySQL的“root”账户密码为“123456”。运行成功后,就可以访问“http://localhost:8080/”以进入以下管理界面(登录账户和密码分别为“root”、“123456”):
管理功能很强大,非常值得推荐。
往期内容链接
Docker最全教程——从理论到实战(一)
Docker最全教程——从理论到实战(二)
Docker最全教程——从理论到实战(三)
Docker最全教程——从理论到实战(四)
Docker最全教程——从理论到实战(五)
Docker最全教程——从理论到实战(六)
Docker最全教程——从理论到实战(七)
Docker最全教程——从理论到实战(八)
Docker最全教程之使用Tencent Hub来完成CI(九)
Docker最全教程——数据库容器化(十)
Docker最全教程——数据库容器化之持久保存数据(十一)
Docker最全教程——MongoDB容器化(十二)
Docker最全教程——Redis容器化以及排行榜实战(十三)
Docker最全教程之Ubuntu下安装Docker(十四)
Docker最全教程之树莓派和Docker(十五)
Docker最全教程之使用TeamCity来完成内部CI、CD流程(十六)
Docker最全教程之使用Docker搭建Java开发环境(十七)
Docker最全教程之Go实战,墙裂推荐(十八)
Docker最全教程之使用.NET Core推送钉钉消息(十九)
Docker最全教程之使用 Visual Studio Code玩转Docker(二十)
Docker最全教程之Python爬网实战(二十一)
Docker最全教程之使用PHP搭建个人博客站点(二十二)
Docker最全教程之使用Node.js搭建团队技术文档站(二十三)
转载于:https://www.cnblogs.com/lonelyxmas/p/11003006.html
Docker最全教程之MySQL容器化 (二十四)相关推荐
- Docker最全教程之MySQL容器化 (二十五)
前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过此块,本篇仅从笔者角度进行总结和编写. 目录 镜像说明 运行MySQL容器镜像 1.运行MySQL容器 ...
- Docker最全教程之Python爬网实战(二十二)
Python目前是流行度增长最快的主流编程语言,也是第二大最受开发者喜爱的语言(参考Stack Overflow 2019开发者调查报告发布).笔者建议.NET.Java开发人员可以将Python发展 ...
- Docker最全教程之Go实战,墙裂推荐(十九)
前言 与其他语言相比,Go非常值得推荐和学习,真香!为什么?主要是可以直接编译成机器代码(性能优越,体积非常小,可达10来M,见实践教程图片)而且设计良好,上手门槛低.本篇主要侧重于讲解了Go语言的优 ...
- Docker最全教程之Ubuntu下安装Docker(十五)
前言 Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,应用很广.本篇主要讲述Ubuntu下使用SSH远程登录并安装Docker,并且提供了Docker安装的两种方式,希望对大家有所帮 ...
- java+mysql性能优化_Java培训实战教程之mysql优化
Java培训实战教程之mysql优化 更新时间:2015年12月29日13时30分 来源:传智播客Java培训学院 浏览次数: 1. mysql引擎 1.1. 引擎类型 MySQL常用的存储引擎 ...
- 沙场秋点兵——MySQL容器化性能测试对比
容器技术改变了应用交付.运行的方式,几乎各种Linux环境下的应用程序都可以使用容器来运行.但是否能在容器环境里运行数据库应用,以及数据库应用是否适合在容器里运行,一直都是大家很关注的问题,今天我们就 ...
- 叩丁狼—Java培训实战教程之mysql优化
Java培训实战教程之mysql优化 Java培训过程中精点.难点知识解析 1. mysql引擎1.1. 引擎类型MySQL常用的存储引擎为MyISAM.InnoDB.MEMORY.MERGE,其中I ...
- mysql容器化后的缺点_沙场秋点兵——MySQL容器化性能测试对比
容器技术改变了应用交付.运行的方式,几乎各种Linux环境下的应用程序都可以使用容器来运行.但是否能在容器环境里运行数据库应用,以及数据库应用是否适合在容器里运行,一直都是大家很关注的问题,今天我们就 ...
- Docker系列(二十四)——Docker实例六Docker安装Redis实例
< Docker实例三Docker安装Redis实例 > 前言 在前面一篇文章种,完成了 < Docker安装MongoDB实例 >,本篇将继续镜像安装教程,并完成Docker ...
最新文章
- FastReport 导出pdf时中文乱码的解决办法
- ImportError: No module named _sqlite3 报错解决方法
- Android版本dp,Android中sp和dp区别
- java 革命_JAVA数据库连接池的革命 -- 从BoneCP到HikariCP(转)
- [css] 什么是zoom?它有什么作用?
- 归并排序,我举个例子你就看懂了
- Modal View Controllers, Not Model-View-Controller(MVC)
- godaddy虚拟主机access数据库中文乱码的解决方法
- 安卓手机免root修改hosts文件
- Java代码审计: ClassLoader应用
- WinRunner和QTP对比
- HTML5期末大作业:网站——餐饮网页设计(HTML+CSS+JS)
- 阿里第九版Java系统架构师+应用架构师面试突击宝典
- php银行卡号查询接口,银行卡归属地查询
- 贡献度分析--帕累托图
- Express 介绍
- python爬虫程序
- 《黑匣子思维:我们如何更理性地犯错》iphone部分
- Linux 下 N 卡 GPU 测试
- 大锤老湿教您如何配置TP-Link路由器组建wifi上网
热门文章
- Coding Pages 申请 SSL 证书错误:urn:acme:error:unauthorized: Invalid response from http://xxxxx/
- 【LeetCode - 42. 接雨水】
- *【洛谷 - P1025】数的划分(dfs 或 dp 或 母函数,第二类斯特林数Stirling)
- 【CodeForces - 833A】The Meaningless Game(思维题,数学,可用牛顿迭代法,知识点总结)
- c语言煎饼问题算法,C煎饼分类程序?
- 计算机网络的定义功能和分类,计算机网络的定义和分类.ppt
- Linux学习:第一章-Linux简介
- 工业炉温度计算机控制系统,热处理工业炉计算机控制系统组态王+PLC)
- linux go 安装路径,在Alpine Linux D的路径中找不到已安装的Go二进制文件
- Android入门(10)| Fragment碎片详解