首页 > 数据库 >Docker数据库容器(四)

Docker数据库容器(四)

时间:2024-03-05 23:34:40浏览次数:28  
标签:容器 创建 数据库 mysql 3306 Docker docker

前言

  前面都以Nginx容器为例,介绍很Docker容器的运用。但是对于数据库的容器,在创建的时候却涉及到了Docker的环境变量设置,这个对于很多项目都是非常重要的。所以这里单独深入了解这类型的容器创建。

一、创建

  这里以Mysql容器为例,用之前Nginx的创建方式来创建容器。

~]# docker run -d --name mysql -p 3306:3306 mysql:8

  这里使用命令行进行查看容器,会发现Mysql容器未启动。

~]# docker ps -a

   接着继续详细查看Mysql日志。

~]# docker logs mysql 

  提示就是无法初始化,需要选择指定的环境变量才能开启。MYSQL_ROOT_PASSWORD密码,ALLOW_EMPTY允许密码为空,RANDOM随机密码。

  我们生产环境肯定会设置密码,所以一般会使用指定密码。先删除容器,然后创建。

~]# docker rm -f mysql
~]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:8 #-e就是代表环境变量的设置

   成功创建好之后,就能根据账号密码访问数据库。

~]# mysql -h 127.0.0.1 -P 3306 -u root -p # 访问数据库

  

二、外部连接数据库

  使用工具外部连接的时候会报错,这个问题目前找到两种方式处理。

Public Key Retrieval is not allowed #不允许进行公钥检索

  一、宿主机子上访问一下数据库,然后在用工具就可以了。

  二、可以尝试将MySQL用户的身份验证插件更改为mysql_native_password。访问数据库,直接输入以下两行命令。

~]# ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # %表示该用户可以从任何主机连接到MySQL服务器。
~]# FLUSH PRIVILEGES; #在更改了用户的权限或密码后,通常需要执行此命令以确保更改立即生效。

  第一种方法,一旦数据库重启,则外部工具无法连接。第二种设置之后,数据库重启,外部工具也能正常连接。

 

标签:容器,创建,数据库,mysql,3306,Docker,docker
From: https://www.cnblogs.com/zrl66/p/18055548

相关文章

  • Mysql数据库安全和备份
    一、用户权限认证Mysql通过用户认证机制来和业务系统建立连接通道,当认证成功后,还需要通过访问控制模块来进行相关的权限验证,只有两次验证都通过后,才能继续执行SQL语句操作,这个过程涉及用户管理和访问控制两个模块。用户管理模块用于管理登录用户信息、设置相关权限,Mysql......
  • .NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移、属性导航
    一、创建asp.netcoreweb(MVC)项目二、导包Microsoft.EntityFrameworkCore.DesignMicrosoft.EntifyFrameworkCore.ToolsPomelo.EntityFrameworkCore.MySql三、创建实例这里创建了两个实例namespacedemo.Models{publicclassSupplier{[DatabaseGe......
  • Linux AWVS-14 Docker 安装
    1.什么是AWVS?一个自动化的web应用程序安全测试工具,可以扫描任何可通过web浏览器访问和遵循http/https规则的web站点和web应用程序2.安装AWVS:dockerpullsecfa/docker-awvsdockerrun-it-d-p13443:3443--cap-addLINUX_IMMUTABLEsecfa/docker-awvs浏览器访问https://i......
  • Oceanbase数据库创建分区时报错
    报错信息:ERROR1044(42000):Accessdeniedforuser'root'@'%'todatabase'oceanbase'报错原因:由于OceanBase数据库中,oceanbase库是系统库,里面存放的是系统的很多表,所以不能进行操作,换个库即可,一般到test库下,执行操作......
  • 数据库
    首先下载安装MySQL和navicat(用于管理数据源)下载和安装MySQL-Wild-bokeyuan-博客园(cnblogs.com)navicat免费下载-Wild-bokeyuan-博客园(cnblogs.com)打开navicat有多种数据源可选 点击MySQL连接本地mysql数据源密码是MySQL的密码 点击此选项新建一个库,可......
  • 【Redis】docker redis设置永久密码
    1.进入容器dockerexec-it容器idbash 2.追加密码设置echo"requirepass123456">>/etc/redis/redis.conf 3.退出容器并重启容器exitdockerrestart容器id ......
  • docker安装postgreSql
    拉取镜像控制台运行以下代码(如果需要指定版本,则将latest改为对应的版本号)dockerpullpostgres:latest创建容器dockerrun-it--namepostgresql--privileged-ePOSTGRES_PASSWORD=123456-p5432:5432-vC:\SolutionSpace\docker\postgresql:/var/lib/postgresql/data......
  • Docker搭建smb共享服务器
    Docker搭建smb共享服务器快速启动dockerrun-it--namesamba\-p139:139\-p445:445\-v/path/to/share:/share_dir\-ddperson/samba\-u"username;password"\-s"share_name;/share_dir/;yes;no......
  • redis数据库
    redis数据库是以键值对的形式构建的关系型数据库案例:redis数据库搭建在docker容器中启动docker容器后,可以使用dockerps命令列出容器信息我们使用dockerexec命令进入容器此时,我们已经来到了容器的内部,接下来就是对redis数据库的操作了1、redis-cli(redis的命令行工具,类似......
  • Docker安装Clickhouse
    博客园首页新随笔联系管理订阅随笔-71 文章-1 评论-0 阅读-55274 Docker安装Clickhouse https://clickhouse.com/clickhouse官网https://hub.docker.com/r/clickhouse/clickhouse-server/此为Docker安装Clickhouse官网此为按照命......