Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql镜像安装

mysql镜像安装

作者头像
我的小碗汤
发布于 2018-08-22 02:58:35
发布于 2018-08-22 02:58:35
2.3K00
代码可运行
举报
文章被收录于专栏:我的小碗汤我的小碗汤
运行总次数:0
代码可运行

docker镜像安装mysql的好处:方便,容器间互不干扰,可以在同一主机上安装多个版本的mysql,只需要在主机上映射不同的端口即可。

安装mysql镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker search mysql #查找MySql镜像版本
docker pull mysql:5.7 #安装指定版本的mysql镜像,5.7为版本号

启动mysql容器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 -d  -p 3307:3306 mysql:5.7
  • –name 容器的别称
  • -p 端口映射。格式是 主机的端口:容器的端口。
  • -e 设置容器的环境变量。-e MYSQL_ROOT_PASSWORD=123456就代表mysql的root的密码是123456
  • -d 使用镜像包名称,可以通过docker images查看
  • restart=always, 告诉docker,这个容器要自动启动

查看mysql容器是否建立成功并启动:

从host上连接上面启动的容器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ifconfig #查看下docker虚拟出的ip地址
docker ps -a #查看下容器的运行状态
mysql -h {ip} -P {port} -u root -p #从host连接docker中的MySql

如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -h172.17.0.1 -P3007 -u root -p123456

如果要用远程用Navicat连接mysql,继续往下看:

以下配置允许远程用honey用户,通过密码honey连接数据库,且只允许操作名为museum_of_art的数据库。

创建honey用户,密码也为honey:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create user'honey'@'%'identified by'honey';

查看用户honey的权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show grants for 'honey'@'%';

创建数据库,honey用户只有操作museum_of_art数据库的权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database museum_of_art;

允许用户honey操作museum_of_art表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grant all on museum_of_art.* to'honey'@'%';

刷新权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FLUSH PRIVILEGES;

如果开最大权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GRANT ALL PRIVILEGES ON *.* TO 'honey'@'localhost' IDENTIFIED BY 'honey';
GRANT ALL PRIVILEGES ON *.* TO 'honey'@'%' IDENTIFIED BY 'honey';

阿里云服务器如果通过以上设置后远程Navicat还是连不上,请继续往下看。

现在如果在公网上用Navicat 是链接不上的。

原因如下

首先需要登陆阿里云后台,添加阿里云安全组策略 具体位置 -> 网络和安全 -> 安全组 -> 配置规则

可以选择多配置需要的端口。

下面我们需要配置阿里云防火墙

查看下防火墙的状态:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl status firewalld

关闭防火墙:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl stop firewalld

其实这样就可以使用了,但是这样很不安全,我们可以将firewall服务禁用,应用iptables服务(网上大部分启用端口的资料都是基于iptables服务)。

安装iptables

由于没有防火墙会造成不安全,所以给服务器安装一应用更广的防火墙iptables,首先要禁用firewall,通过yum安装iptables:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctil disable firewalld
yum install -y iptables-services

启动iptables

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start iptables

启动后可以通过systemctl status iptables查看状态。

更改iptables规则

将iptables文件备份下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

设置 INPUT 方向所有的请求都拒绝

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables -P INPUT DROP

放开所需端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables -I INPUT -p tcp --dport 3307 -m state --state NEW -j ACCEPT

保存规则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables-save > /etc/sysconfig/iptables

设置为开机启动并且重启

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable iptables.service
systemctl reboot

好了,系统到这里我们需要重新去启动docker

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start docker #运行Docker守护进程

这里如果直接启动镜像的话会报这个错误

那么我们只需要重启下docker ,再去开启你的容器就OK了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl restart docker

那么到这里我们外网就可以正常的去使用阿里云上的mysql服务了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击云原生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CentOS7 安装 mysql8
本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ManagementAndJava/article/details/80039650
庞小明
2018/09/19
5.1K0
CentOS7 安装 mysql8
Docker安装Mysql
提前开放好mysql需要用到的端口号,有的还需要去服务器的控制中心添加放行端口号,CentOS 7有关开放端口号的操作可以看这篇文章:CentOS 7 开启防火墙及开放指定端口
itze
2022/10/31
8090
docker安装mysql及navicat远程连接
解决问题:docker安装mysql,windows使用navicat远程连接数据库 正常安装 一键拉取镜像 docker pull mysql:5.7 启动Mysql docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:5.7 登录容器内 启动后之后,默认的root密码是123456,使用如下命令登录进去 docker exec -it mysql5.7 bash mysql -u root -p 修
华创信息技术
2020/06/28
4.8K0
Centos 通过 docker 安装MySQL5.7
Docker 应用需要用到各种端口,逐一去修改防火墙设置,非常麻烦,因此建议大家直接关闭防火墙 启动 Docker 前,一定要关闭防火墙!!!
用户11332765
2024/10/28
2640
Centos 通过 docker 安装MySQL5.7
Docker安装 Mysql主从同步
uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
鱼找水需要时间
2023/02/16
1.4K0
Docker安装 Mysql主从同步
手拉手入门若依前后端分离脚手架
相关参数解释 : docker run:这是 Docker 的命令,用于创建并运行一个新的容器。 --name redis:这个参数设置了容器的名称为 redis,这样可以更容易地管理和访问该容器。 -p 6379:6379:这表示端口映射,将宿主机的 6379 端口映射到容器的 6379 端口。 --restart=always: 表示如果容器退出或 Docker 服务重启,Docker 都会自动重启该容器。 -v /data/redis/data:/data:这是一个卷映射,将宿主机的 /data/redis/data 目录映射到容器内的 /data 目录。这用于持久化数据,即使容器被删除,数据仍然保存在宿主机上。 -d:这个标志表示以守护进程模式运行容器,即容器将在后台运行。 redis:7.0.12:这是要运行的 Docker 镜像的名称和版本号。 redis-server /etc/redis/redis.conf:这是容器内运行的命令,redis-server 是启动 Redis 服务的命令,/etc/redis/redis.conf 指定了 Redis 服务使用的配置文件路径。
QGS
2025/01/23
1530
Ubuntu上使用docker安装mysql
1.docker仓库搜索mysql docker search mysql /images/img/20220308164142.png 2.docker仓库拉取mysql8.0镜像 docker pull mysql:8.0 docker pull mysql #拉取最新版本的mysql 3.查看本地镜像是否安装成功 docker images mysql:8.0 /images/img/20220308164232.png 4.安装运行mysql8.0容器 docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0 -p 将本地主机的端口(3307)映射到docker容器端口(3306) –name 容器名称 -e 配置信息,root用户原始密码为root -d 镜像名称 注意 记得去服务器防火墙放行3307端口 5.查看mysql8.0容器运行情况 docker ps /images/img/20220308165059.png 6.docker登录mysql docker exec -it mysql bash mysql -uroot -p /images/img/20220308165341.png 7.使用客户端连接工具(navicat)远程登录mysql /images/img/20220308165538.png 会出现下面的2059错误
卢衍飞
2023/02/16
1.9K0
CentOS 6/7 下 MySQL 5.7 安装部署与配置
一、前言 可能需要的前置知识? CentOS firewalld服务 firewalld 防火墙操作 vi命令 适用范围? CentOS 6/7 MySQL 5.7.x 二、安装 1、添加包 #CentOS 7 cd /home/downloads wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
KenTalk
2018/09/11
1.1K0
CentOS 7 安装 MySQL 5.7
官网下载地址:http://dev.mysql.com/downloads/mysql/
OY
2022/03/17
9450
CentOS 7 安装 MySQL 5.7
Docker实战:Docker安装WordPress,快速搭建自己的博客
WordPress是一种基于php编程语言开发的CMS管理系统,WordPress有丰富的插件和模板,用户可以快速搭建一套功能十分强大的内容管理系统,使用WordPress可以做多种类型的网站,比如新闻发布网站、企业门户、个人技术博客等。
小明互联网技术分享社区
2023/10/31
3.4K0
Docker实战:Docker安装WordPress,快速搭建自己的博客
CentOS7安装MySQL8.0图文教程
网址:https://dev.mysql.com/downloads/mysql/
全栈程序员站长
2022/07/01
4.2K1
CentOS7安装MySQL8.0图文教程
成功实现Navicat访问Linux中安装的MySQL数据库
成功实现Navicat访问Linux中安装的MySQL数据库 1、安装好MySQL,检查是否正常登录 2、进入mysql数据库配置远程连接 #将所有数据库的所有表(*.*)的所有权限(all privileges),授予通过任何ip(%)访问的root用户,密码为123123,如果要限制只有某台机器可以访问,将其换成相应的IP即可 mysql> grant all privileges on *.* to 'root'@'%' identified by ' '; mysql> flush priv
星哥玩云
2022/08/18
5.4K1
成功实现Navicat访问Linux中安装的MySQL数据库
Centos7 mini 配置 php7+nginx+mysql 最详细过程,为linux小白送福利
本来不想写这篇的,因为网上都有,但是最近问关于这些环境配置的朋友有点多,于是整理一番,全部都是本人实战验证过的。
躺平程序员老修
2023/09/05
5320
Centos7 mini 配置 php7+nginx+mysql 最详细过程,为linux小白送福利
centos7系统安装mysql8.0完整步骤
Select Operating System: 选择 Red Hat ,CentOS 是基于红帽的,Select OS Version: 选择 linux 7
用户4988085
2021/07/20
13.5K1
YUM安装MYSQL5.6
创建用户的时候会出现上图中警告的内容,意思是在命令行界面上使用密码是不安全的,直接略过即可。
用户4988376
2021/08/09
1.6K0
CentOS在线安装Mysql5.7
官方地址:https://dev.mysql.com/downloads/repo/yum/
名山丶深处
2022/05/10
1.1K0
Linux&Docker&Mysql&GitWin常用命令
苦于有时候某个命令真的想不起,又得百度,干脆以后操作linux时,打开博文直接查询多爽。
全栈程序员站长
2022/07/01
5150
Linux&Docker&Mysql&GitWin常用命令
Docker搭建MySQL服务
前面我们已经安装好了Docker,也简单了解了Docker。那么我们可以尝试搭建一个MySQL服务。
双面人
2019/05/21
2K0
docker常用命令总结
个人推荐使用第二种方式,第一种安装方式安装的是 1.13.1 的版本,第二种安装的是最新版,我今天安装完之后是 20.10.8 版本。
栖西
2023/10/17
2860
使用Docker搭建MySQL数据库服务
在现代应用程序开发中,使用数据库是必不可少的。而Docker作为一种流行的容器化解决方案,可以使数据库的部署和管理变得更加简单和灵活。本文将介绍如何使用Docker搭建MySQL数据库服务,让你在本地环境中快速部署一个MySQL实例。
霍格沃兹测试开发Muller老师
2024/03/25
6490
使用Docker搭建MySQL数据库服务
相关推荐
CentOS7 安装 mysql8
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档