赞
踩
1、拉取命令docker pull mysql
2、查看镜像,检查是否拉取成功docker images
1、建立目录映射mkdir /opt
mkdir /opt/mysql
mkdir /opt/mysql/conf/
mkdir /opt/mysql/logs/
mkdir /opt/mysql/data/
2、创建my.cnf配置文件touch /opt/mysql/my.cnf
my.cnf添加以下内容:
- [mysqld]
- user=mysql
- character-set-server=utf8
- default_authentication_plugin=mysql_native_password
- secure_file_priv=/var/lib/mysql
- expire_logs_days=7
- sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
- max_connections=1000
-
- [client]
- default-character-set=utf8
-
- [mysql]
- default-character-set=utf8
3、创建容器,并后台启动
- docker run --restart=always --privileged=true \
- -v /opt/mysql/data/:/var/lib/mysql \
- -v /opt/mysql/logs/:/var/log/mysql \
- -v /opt/mysql/conf/:/etc/mysql \
- -v /opt/mysql/my.cnf:/etc/mysql/my.cnf \
- -p 3306:3306 --name my-mysql \
- -e MYSQL_ROOT_PASSWORD=123456 -d mysql
⚠️注意:启动mysql报如下错误,那是因为MYSQL新特性secure_file_priv对读写文件的影响。
- ERROR: mysqld failed while attempting to check config
- command was: "mysqld --verbose --help"
-
- mysqld: Error on realpath() on '/var/lib/mysql-files' (Error 2 - No such file or directory)
- 2019-09-14T09:52:51.015937Z 0 [ERROR] [MY-010095] [Server] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files
- 2019-09-14T09:52:51.018328Z 0 [ERROR] [MY-010119] [Server] Aborting
- 解决问题:
- windows下:修改my.ini 在[mysqld]内加入secure_file_priv=/var/lib/mysql
- linux下:修改my.cnf 在[mysqld]内加入secure_file_priv=/var/lib/mysql
1、进入mysql容器docker exec -it my_mysql /bin/bash
2、登陆mysqlmysql -u root -p
3、mysql 8 设置允许远程用户访问update user set host = '%' where user = 'root' and host='localhost';
# 更新root - localhost 为 root - %
GRANT ALL ON *.* TO 'root'@'%';
# 设置允许远程用户访问
flush privileges;
# 刷新权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
#更新用户加密方式,mysql8默认的加密方式为caching_sha2_password 与mysql5的加密方式mysql_native_password 不同
image.png
image.png
image.png
4、使用Navicat 或者 MySQL Workbench 远程连接mysql
我们在创建容器的时候已经将容器的3306端口和主机的3306端口映射到一起,所以我们应该访问:
- host: 127.0.0.1
- port: 3306
- user: root
- password: 123456
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:779450660里面有各种软件测试资源和技术讨论)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。