zoukankan      html  css  js  c++  java
  • Docker安装Mysql

    1、拉取mysql镜像

    docker pull mysql  //拉取最新版本的mysql

    2、启动mysql镜像

    docker run --name mysql  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxxxx  -d mysql

    --name:镜像别名

    -p:映射端口

    -e:设置环境变量,也就是root的密码

    -d:后台启动

    第一个mysql表示自定义容器名称,第二个mysql表示镜像的名称。

    在这一步的时候,却报错了,通过 docker logs mysql看到下面日志,查了下是没有swap空间了。

    [ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12
    [ERROR] InnoDB: Cannot allocate memory for the buffer pool
    [ERROR] InnoDB: Plugin initialization aborted with error Generic error
    [ERROR] Plugin 'InnoDB' init function returned error.
    [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    [ERROR] Failed to initialize builtin plugins.
    [ERROR] Aborting

    通过命令 free -m 查看是否有swap空间。

    1. 创建swapfile文件
    2. 执行:sudo dd if=/dev/zero of=swapfile路径  bs=1M count=3k
    3. 将文件变成swap分区 sudo mkswap swapfile
    4. 设置swapfile分区有效:sudo swapon swapfile
    5. 设置重启后依然有效:修改/etc/fstab文件,添加 swapfile路径 swap swap defaults 0 0

    然后重新启动容器。

    3、设置远程

    docker exec -it mysql bash   //进入容器
    mysql -u root -p    //登录mysql  输入密码
    use mysql  
    grant all privileges on *.* to 'root'@'%';  //设置远程授权

    到这里就完了,但是新版本8以后的mysql改了默认的加密方式为 caching_sha2_password,导致登录报错。

    查询用户和对应的域,%代表所有域都可已登录,localhost代表只有本地能登录,plugin表示加密方式。

    4、修改加密方式

    alter user 'root'@'%' identified with mysql_native_password by '密码'; //修改为老版加密方式 mysql_native_password 
  • 相关阅读:
    DateUtils
    Java静态绑定与动态绑定
    Mysql中实现递归查询
    架构一、核心概念
    Spring cron 表达式
    MySql点点滴滴(一)之可视化工具介绍
    java中注解的使用与实例
    3、第一个Python程序
    CSS命名
    如何在Notepad++ 中成功地安装Emmet 插件
  • 原文地址:https://www.cnblogs.com/MicroHeart/p/13817743.html
Copyright © 2011-2022 走看看