ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Docker安装MySQL8

2022-01-13 20:34:19  阅读:177  来源: 互联网

标签:容器 配置文件 MySQL8 mysqld usr mysql Docker 安装 docker


Docker安装MySQL8.0

原文链接: https://www.cnblogs.com/ybyn/p/13698058.html

1、环境

  • CentOS 7.5
  • Docker 20.10.5
  • MySQL 8.0.27

2、安装

1、拉取镜像

默认拉取最新版本的镜像

docker pull mysql

如果要指定版本,使用下面的命令

docker pull mysql:8.0.27

2、创建数据目录和配置文件

在宿主机创建放置mysql的配置文件的目录和数据目录,并且进行授权

mkdir -p /usr/mysql/conf /usr/mysql/data

chmod -R 755 /usr/mysql/

3、创建配置文件

在上面创建的配置文件目录/usr/mysql/conf下创建MySQL的配置文件my.cnf

vim /usr/mysql/conf/my.cnf

添加以下内容到上述创建的配置文件中

[client]

#socket = /usr/mysql/mysqld.sock

default-character-set = utf8mb4

[mysqld]

#pid-file        = /var/run/mysqld/mysqld.pid

#socket          = /var/run/mysqld/mysqld.sock

#datadir         = /var/lib/mysql

#socket = /usr/mysql/mysqld.sock

#pid-file = /usr/mysql/mysqld.pid

datadir = /usr/mysql/data

character_set_server = utf8mb4

collation_server = utf8mb4_bin

secure-file-priv= NULL

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Custom config should go here

!includedir /etc/mysql/conf.d/

4、启动创建容器

docker run  -d --name mysql8 -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql:8.0.27

参数解释:
-v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录

-d : 后台运行容器

-p 映射 宿主机端口号:容器端口号

-e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码

执行上述命令后,执行查询容器的命令就可以看到创建的mysql容器

docker ps -a

image-20220113201947852

3、问题

上述虽然安装好了mysql,但是使用远程的Navicat连接时提示错误,不能正确连接mysql,此时需要修改按照下面说的步骤修改一下mysql的密码模式以及主机等内容才可以。

1、修改mysql密码以及可访问主机

  • 进入容器内部
docker exec -it mysql /bin/bash
  • 连接mysql
mysql -uroot -p
  • 使用mysql库
mysql> use mysql
  • 修改访问主机以及密码等,设置为所有主机可访问
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';

注意:

mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接

  • 刷新
mysql> flush privileges

经过以上步骤,再次远程使用Navicat连接数据库时就可以正常连接了。

标签:容器,配置文件,MySQL8,mysqld,usr,mysql,Docker,安装,docker
来源: https://www.cnblogs.com/codertl/p/15799544.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有