docker安装mysql8

6 篇文章 0 订阅
4 篇文章 0 订阅
本文档详细介绍了如何在CentOS7.5上使用Docker安装MySQL8.0.16,包括拉取镜像、创建数据目录、配置文件以及启动容器。在遇到Navicat远程连接失败的问题时,提供了进入容器修改MySQL密码和允许所有主机访问的解决方案,确保了远程连接的正常进行。
摘要由CSDN通过智能技术生成

docker安装mysql8


环境
CentOS 7.5
Docker 1.13.1
MySQL 8.0.16
安装
拉取镜像
默认拉取最新版本的镜像

$ docker pull mysql

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

$ docker pull mysql:8.0.16

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

$ mkdir -p /usr/mysql/conf /usr/mysql/data
$ chmod -R 755 /usr/mysql/

创建配置文件
在上面创建的配置文件目录/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/

启动创建容器

$ docker run --restart=always -d --name mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v 
/usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

在这里插入图片描述

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

-d : 后台运行容器

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

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

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

$ docker ps -a

在这里插入图片描述

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

修改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连接数据库时就可以正常连接了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值