经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
Docker 使用Docker创建MySQL容器
来源:cnblogs  作者:授客  时间:2021/5/24 10:46:10  对本文有异议

使用Docker创建MySQL容器

实践环境

Docker version 20.10.5

MySQL5.7

Centos 7.8

创建步骤

1、拉取MySQL镜像

  1. docker pull mysql:5.7

说明:如果不执行该步骤,执行创建MySQL容器时会自动拉取镜像:docker pull mysql:latest

3、创建mysql数据文件,日志文件,配置文件挂载目录

  1. # mkdir -p /usr/local/mysql/data /usr/local/mysql/logs /usr/local/mysql/conf
  2. # chmod -R 755 /usr/local/mysql/data
  3. # chmod -R 755 /usr/local/mysql/logs
  4. # chmod -R 755 /usr/local/mysql/conf

2、编写MySQL数据库配置文件my.cnf

  1. [mysqld]
  2. basedir=/usr/local/mysql
  3. datadir=/usr/local/mysql/data
  4. port=3306
  5. character_set_database=utf8
  6. character_set_server=utf8
  7. user=mysql
  8. slow_query_log=on
  9. slow_query_log_file=/usr/local/mysql/logs/slow.log
  10. long_query_time=0.3
  11. default-storage-engine=INNODB
  12. innodb_buffer_pool_size=64M
  13. innodb_purge_threads = 1
  14. innodb_log_buffer_size=2M
  15. innodb_log_file_size = 64M
  16. innodb_thread_concurrency=8
  17. innodb_lock_wait_timeout = 120
  18. innodb_flush_log_at_trx_commit=1
  19. max_connections=512
  20. query_cache_size=0
  21. tmp_table_size=18M
  22. thread_cache_size=8
  23. myisam_max_sort_file_size=64G
  24. myisam_sort_buffer_size=35M
  25. key_buffer_size=25M
  26. read_buffer_size=64K
  27. read_rnd_buffer_size=256K
  28. sort_buffer_size=16M
  29. log-error=/usr/local/mysql/logs/mysql.log
  30. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  31. [mysql]
  32. default-character-set=utf8
  33. character_set_database=utf8
  34. [client]     
  35. port=3306
  36. default-character-set=utf8

说明:该配置文件存放在上文创建的/usr/local/mysql/conf目录下

3、创建MySQL容器数据库

  1. # sudo docker run --restart=always -p 3306:3306 --name db.mysql -v /usr/local/mysql/conf:/etc/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/logs:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mFF!Wmh\& -d mysql:5.7

MySQL环境变量配置说明:

  1. MYSQL_ROOT_PASSWORD 指定root用户初始密码,例中为 mFF!Wmh&,还可以配置其它
  2. 实践时发现,以下3个配置不起作用
  3. MYSQL_DATABASE 运行时需要创建的数据库名称;
  4. MYSQL_USER 运行时需要创建用户名,与MYSQL_PASSWORD一起使用;
  5. MYSQL_PASSWORD 运行时需要创建的用户名对应的密码,与MYSQL_USER一起使用;
  6. 以下配置未验证过
  7. MYSQL_ALLOW_EMPTY_PASSWORD 是否允许root用户的密码为空,该参数对应的值为:yes
  8. MYSQL_RANDOM_ROOT_PASSWORD:为root用户生成随机密码;
  9. MYSQL_ONETIME_PASSWORD 设置root用户的密码必须在第一次登陆时修改(只对5.6以上的版本支持)。
  10. MYSQL_ROOT_PASSWORD MYSQL_RANDOM_ROOT_PASSWORD 两者必须有且只有一个。

4、进入容器,登录MySQL

  1. # docker exec -it db.mysql /bin/bash
  2. root@0b023eb3b811:/# root@0b023eb3b811:/# mysql -uroot -pmH1FF\!Kemh\&
  3. mysql> exit
  4. Bye
  5. root@0b023eb3b811:/# exit
  6. #

如上,成功了

注意:登录时,密码如果包含特殊字符,需要进行转义,否则会报类似如下错误

  1. bash: !Kemh: event not found

原文链接:http://www.cnblogs.com/shouke/p/14778720.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号