• docker 安装mysql 并将文件挂载到本地


    • 首先准备好挂载的文件路径
    • 执行mysql创建以及挂载的命令(这里还可以使用-e环境变量来创建新用户MYSQL_USER,MYSQL_PASSWORD)
      docker run -d -p 3306:3306 --restart always -e MYSQL_ROOT-PASSWORD="root12345" --name db-mysql -v /docker/mysql/config/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql mysql/mysql-server  
    • 执行上面的语句可能会发现以下问题(1注意检查挂载的路径和文件是否创建2.注意检查挂载的文件是否为文件格式而不是目录)
    • 过程碰到的问题报错如下:大致意思是您挂载的文件是个cnf目录文件而您挂载的目标文件是个cnf文件。
      docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused "rootfs_linux.go:58: mounting \"/docker/mysql/config/my.cnf\" to rootfs \"/var/lib/docker/overlay2/a745e213e304a1aa8d7b237b6193b95f8b376472196bf3a0646922491aef141b/merged\" at \"/var/lib/docker/overlay2/a745e213e304a1aa8d7b237b6193b95f8b376472196bf3a0646922491aef141b/merged/etc/my.cnf\" caused \"not a directory\""": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
    • 解决方案
      rm -rf my.cnf/
      vim my.cnf
      #insert
      [mysqld]
      user=mysql 然后运行步骤二语句
    •  修改字符集

      修改my.cnf 文件的内容达到修改字符集的目的
      vim my.cnf
      #insert
      character-set-server=utf8
      [client]
      default-character-set=utf8
      [mysql]
      default-character-set=utf8
      #退出restart mysql
      docker restart db-mysql
      #查看修改的字符集
      #首先进入bash,这里需要注意如果进入bash的时候root密码没有生效则需要去docker logs db-mysql 中查看创建的默认密码
      然后凭借默认密码进入到mysql环境。进入环境第一件事就是修改root用户的密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
      (docker exec -it db-mysql mysql -uroot -proot12345)
      docker exec -it db-mysql bash
      mysql -uroot -p
      #输入用户名密码
      use mysql
      #查看用户权限
      select user,host from user      
      #查看字符集                    
      show variables like '%char%'
    • 创建新用户
      mysql> CREATE USER 'cyao'@'localhost' IDENTIFIED BY 'pwd123456';
      mysql> GRANT ALL PRIVILEGES ON *.* TO 'cyao'@'localhost' WITH GRANT OPTION;
      mysql> CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';
      mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'
          ->     WITH GRANT OPTION;
    •  关于挂载有一下几个地方需要注意

          1.挂载之前my.cnf 必须要配置一个默认用户[mysqld] user=mysql
          2.挂载之前本地/docker/mysql/data这个路径下不能有其他文件或者文件夹
  • 相关阅读:
    [windows phone开发]新生助手的开发过程与体会三
    安卓真机调试 出现Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE....
    Easyui columns列图片移位问题!!!
    Easyui 去掉datagrid 行的样式,并点击checked 改边行颜色!
    安卓手机 虚拟键盘输入用 position:fixed解决 !!!
    Linux下用Perl产生新的EXCEL文档 zhumao
    在 Perl 中使用内联 zhumao
    牛郎织女 zhumao
    打开.bz2文件 zhumao
    perl中的特殊内置变量(转) zhumao
  • 原文地址:https://www.cnblogs.com/chongyao/p/9112119.html
Copyright © 2020-2023  润新知