zoukankan      html  css  js  c++  java
  • 关于mysql on docker的配置和启动

    关于mysql on docker的配置和启动

    首先需要安装docker,在Debian中,需要安装docker.io这个包。

    需要注意的是,在安装了docker以后,如果你不是在docker组中,想要使用pull命令将会提示你权限不够,所以你需要将自己加入到docker组中。

    使用

        usermod <username> -a -G docker
    

    然后你需要注销并从新登录才能够应用更改。

    然后使用

        docker version
    

    应该能够看到关于docker server和client的信息,如果有报错的,大概是提示你docker服务没有启动,
    使用命令

        systemctl start docker
    

    开启docker服务即可。

    或许你还想要使用docker镜像加速器。

    然后使用命令

        docker pull mysql
    

    将mysql镜像拉下来。

    使用

        docker run --name mysql-1 -p 3306:3306 
        -v ~/data:/var/lib/mysql 
        -v ~/logs:/var/log/mysql 
        -v ~/conf:/etc/mysql 
        -e MYSQL_ROOT_PASSWORD=root 
        -d mysql
    

    其中

    • –name: 指定运行容器的名称
    • -p: 指定主机端口和容器端口的映射
    • -v: 指定主机路径和容器路径的映射
    • -d: 指定后台运行mysql镜像

    这里指定路径映射的价值在于,当你销毁了你的容器,你的数据不会被跟着一起销毁。

    然后需要进入docker创建能够远程访问的用户

        docker exec -it mysql-1 bash
    

    然后进入mysql,使用一下sql语句创建用户并授予权限

        create user 'admin'@'%' identified by 'admin';
        grant all on *.* to 'admin'@'%';
        flush privileges;
    

    提示一下是在你使用一些过时版本的mysql客户端的时候,他可能会告诉你他需要一个关于密码验证的插件。

    出现这个错误的原因是,mysql server在新版本更改了自己的密码验证方式,而你的MySQL客户端太旧了。

    解决办法有两个:

    1. 更新你的mysql客户端
    2. 将用户的密码验证方式更改为mysql_native_password。

    如果你想要使用第二种解决方法,那么你该执行的sql语句是

        alter user 'admin'@'%' identified with mysql_native_password by 'admin';
    
  • 相关阅读:
    Kernel 3.0.8 内存管理函数【转】
    machine_desc结构体【转】
    Linux内存管理--物理内存分配【转】
    struct 和 class 不同点
    Zabbix Step 1 : Install CentOS6.5 and Configration
    读《大数据》的三重大思维转变,有感
    宇宙中最强大的开发环境免费了!
    中国开源不靠谱,谈何服务万众创新?
    【笨木头Lua专栏】基础补充08:协同程序之resume-yield间的数据返回
    [概率dp] ZOJ 3822 Domination
  • 原文地址:https://www.cnblogs.com/freesfu/p/13702227.html
Copyright © 2011-2022 走看看