前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker-mysql的部署

docker-mysql的部署

原创
作者头像
阿湫..
修改2023-07-25 11:05:24
3110
修改2023-07-25 11:05:24
举报
文章被收录于专栏:阿湫专栏阿湫专栏

下载对应mysql版本的docker镜像包

docker pull mysql:5.7 当然为了安全也可以切换在非root用户下操作 su www

启动镜像容器

代码语言:shell
复制
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

报错

  • 而后发现无法启动容器,一直是Exited 状态 无法 docker start
  • 通过docker logs [容器id] 查看相关信息 发现如下错误
代码语言:shell
复制
2023-07-24 08:48:18+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.42-1.el7 started.
2023-07-24 08:48:18+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
	command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.r6ee7F88rL
	mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

其实就是映射目录下的/etc/mysql/conf.d/ 不存在

此时在宿主机对应位置创建对应目录即可 mkdir -p /mydata/mysql/conf/conf.d/

再次尝试启动 仍然有错误这里就不一一展示错误了,直接把对应目录和文件都建好

mkdir -p /mydata/mysql/conf/mysql.conf.d

初始配置文件

vi /mydata/mysql/conf/conf.d/my.cnf

代码语言:txt
复制
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

再次运行docker容器的启动命令 便可以正常启动容器了

修改密码

根据 -e MYSQL_ROOT_PASSWORD=root \ 可知 初始的mysql账户密码就是 root/root

交互式进入mysql

docker exec -it mysql mysql -uroot -proot

替换为新密码new_password

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

创建新用户

  1. 交互式进入mysql(输入新设置的密码) docker exec -it mysql mysql -uroot -p
  2. 创建新用户 CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
  3. 授予新用户对特定数据库的读写权限: GRANT ALL PRIVILEGES ON your_database.* TO 'new_user'@'localhost';
  4. 刷新权限以使更改生效: FLUSH PRIVILEGES;
  5. 退出MySQL交互式终端: EXIT;

远程链接测试

curl ifconfig.me 获取本机外网地址

防火墙打开3306端口

使用mysql工具访问对应ip使用root用户或新建用户账户密码远程链接即可

参考地址

docker 安装 mysql

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载对应mysql版本的docker镜像包
  • 启动镜像容器
  • 报错
  • 修改密码
  • 创建新用户
  • 远程链接测试
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档