完美解决docker安装mysql后Navicat连接不上的问题

一、docker拉取镜像

docker pull mysql (默认拉取最新版本的)

二、运行mysql

docker run -p 3308:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

容器名:mysql 密码:123456

三、查看是否运行

docker ps -a

四、查看启动日志

docker logs mysql

mysql就是刚刚启动的容器名,确认mysql启动是正常的

五、错误

当我用Navicat进行链接的时候,发现下图错误

我们需要下面的处理方式

1、进入mysql客户端

docker exec -it c6c8e8e7940f /bin/bash

其中c6c8e8e7940f是我的mysql的容器名

----等价命令 docker exec -it mysql /bin/bash

mysql -u root -p123456

123456就是mysql的登录密码,在docker run的时候设置的

2、查看用户信息

select host,user,plugin,authentication_string from mysql.user;

3、重新设置密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'

newpassword就是新的密码

我把密码设置成了‘mysql'

4、使用Navicat重新连接

附:也能是防火墙的问题

sudo firewall-cmd --add-port=3306/tcp (放开3306的端口)

或者

sudo systemctl stop firewalld (关闭防火墙)

补充:docker安装mysql 8 并配置远程连接

第一步:下载mysql镜像镜像

docker pull mysql

默认是下载最新稳定版

第二步:启动mysql镜像

docker run --name dockermysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysqlpassword -d mysql

1、--name 是镜像的别名

2、-p 将3306映射到3306(docker是个虚拟机有自己的端口)

3、-e MYSQL_ROOT_PASSWORD=mysqlpassword 设置mysql 服务器密码(后面需要,一定记住)

4、-d 后端启动

5、启动的镜像名称(可以用id代替)

第三步:查询启动的镜像

docker ps

如下:

第四步:进入容器

docker exec -it dockermysql bash

dockermysql是镜像的名字 ,可以用id替代

第五步:登录mysql

mysql -u root -p

然后输入上面设置的密码

第六步:设置远程访问

切换数据库(默认应该就是这个,不切换也行,保险起见切换一下)

use mysql;

更改远程链接授权

grant all privileges on *.* to 'root'@'%';

第七步:navicat链接时报 2059 错误

报错原因是加密方式问题

查询一下:

select Host,User,plugin from user;

没有修改前结果如下:

执行修改命令:

alter user 'root'@'%' identified with mysql_native_password by 'yourPassword';

修改成你的mysql密码

修改成功后结果如下:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • Docker安装MySQL和Redis的方法步骤

    本文是基于CentOS 7.3系统环境,进行MySQL和Redis的安装和使用 CentOS 7.3 Docker-ce 一.安装MySQL镜像 (1) 拉取MySQL镜像 docker pull mysql:5.6 (2) 运行并配置MySQL docker run -p 3306:3306 --name xz_mysql -v /data/mysql/conf:/etc/mysql/conf.g -v /data/mysql/logs:/logs -v /data/mysql/data:/v

  • docker-compose基于MySQL8部署项目的实现

    1.首先按照以下的路径创建相应的文件夹 /usr/local/docker/mysql 2.然后在该目录下创建docker-compose.yml文件并且在文件中加入以下的配置 version: '3.1' services: db: image: mysql restart: always environment: MYSQL_ROOT_PASSWORD: 123456 command: --default-authentication-plugin=mysql_native_password

  • Docker部署mysql远程连接 解决2003的问题

    连接MySQL 这里我使用navicat远程连接,连接MySQL前需要防火墙开放端口或者关闭防火墙. 开放端口 firewall-cmd --add-port=3306/tcp --permanent // --permanent 永久生效,没有此参数重启后失效 firewall-cmd --reload // 重新载入 关闭防火墙 systemctl stop firewalld systemctl enable iptables // 设置开机启动 firewall-cmd --reload

  • docker中修改mysql最大连接数及配置文件的实现

    1.找到mysql镜像 docker ps 2.进入镜像mysql镜像内部 docker exec -it 05138413c565 /bin/bash 3.安装vim 因为docker镜像内部没有带vim命令,所以需要手动安装,也可以利用docker cp命令从宿主机中复制过去 apt-get update apt-get install vim 4.编辑配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf 在文件中加入max_connections=1024

  • linux下利用Docker安装mysql的步骤

    作为一个测试人员,在学习的过程中,可能经常需要去在linux下安装一些软件,有的软件通过搜索别人的博客教程进行安装的话,随着一些软件的升级,以及虚拟机/服务器镜像版本不一致等外部因素,都有可能导致安装软件出现各种不可预知的问题,到时候还得去搜索资料逐一解决问题,挺耽误时间的. 而且,像linux下这些软件的安装,一般都是运维的事情,测试作为学习使用的话,安装好一个mysql数据库用于学习使用就行,新手不建议在linux下下载源码去安装软件,容易出问题. 接下来为大家演示一下,如何通过docker

  • 完美解决docker安装mysql后Navicat连接不上的问题

    一.docker拉取镜像 docker pull mysql (默认拉取最新版本的) 二.运行mysql docker run -p 3308:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql 容器名:mysql 密码:123456 三.查看是否运行 docker ps -a 四.查看启动日志 docker logs mysql mysql就是刚刚启动的容器名,确认mysql启动是正常的 五.错误 当我用Navicat进行链接的时候

  • docker部署mysql后无法连接的解决方式

    1.创建实例命令 docker run -id --name=c_mysql -p 3306:3306 -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.37 2.查看启动的实例 docker ps 3.这里映射的是宿主机的3306端口,我已经把端口开放了 4.在宿主机进行连接 #这个报错像是mysql不存在,查看mysql是否启动 #mysql已启动,端口也没有被占用 5.已经在容器里面测试

  • 阿里云ECS云服务器(linux系统)安装mysql后远程连接不了(踩坑)

    昨天买了一年的阿里云服务器,系统是linux Centos7的,满怀憧憬的装了个mysql,接下来的一天让我差点怀疑人生... 怎么装mysql就不多说了,反正我装了三遍,每次在阿里云上都能本地连接数据库 用navcat远程连阿里云的数据库死活连接不上.始终报:2003 - Can't connect to MySQL SERVER ON ********* (10060) 装了三次你就知道我有多绝望了,因为第一次linux下安装mysql,每次都认为可能是安装出了问题, 百度都被我翻烂了...

  • Docker 安装 MySQL 并实现远程连接教程

    拉取镜像 docker pull mysql 查看拉取完成的镜像 docker images 通过镜像创建并启动一个MySQL容器 docker run --name mysql_dev -e MYSQL_ROOT_PASSWORD=123456 -p 3333:3306 -d mysql –name:给新创建的容器命名,此处命名为 mysql_dev -e:配置信息,此处配置mysql的root用户的登陆密码 -p:端口映射,此处映射主机3333端口到容器mysql_dev的3306端口 -d

  • 完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存

    今天学习php,当然是要先安装好运行环境了,phpstyudy是一个运行php的集成环境, 一键安装对新手很友好,与时作为一个新手,便跟着教程安装了phpstudy集成环境. 很快安装好了,嗯.对新手确实很友好.phpmyadmin,Apache,php直接配置安装好了.省去了很多时间. 可是安装后却遇到一个麻烦事,就是这个Mysql启动后就会过几秒就显示Mysql已经停止(这个是我现在的我已经解决这个问题了,应该是个红色的方框,不要介意,/嘿嘿).重启了很多遍.还是无法启动. 这个时候不仅ph

  • 解决navicat连接不上linux服务器上的mysql问题

    一开始,心情是沉痛的,截图如下: 折腾一番后,解决方案如下: 首先确保 linux服务上mysql 的3306端口是对外开放的 切换到目录:/etc/sysconfig下,编辑iptables,把这个拷贝进去"-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT",效果如图: 然后重启防火墙 service iptables restart mysql开启root权限(mysql命令下执行) 赋予权限: grant all privileges o

  • Docker安装mysql并解决中文乱码问题

    目录 1.拉取mysql镜像 2.查看是否下载完成 3.MySQL挂载本地目录&解决中文乱码 4.创建容器并查看 1.拉取mysql镜像 网址:https://hub.docker.com/ 复制命令进行下载:docker pull mysql[:版本号] 不加版本号,默认是最新版 2.查看是否下载完成 docker images 3.MySQL挂载本地目录&解决中文乱码 因为在容器里面没有 vi 命令所以我们可以将 数据 和 配置 挂载在宿主机上,方便我们操作 创建分别创建文件夹 /tm

  • 解决docker安装后运行hello-world报错的问题

    在centos7.3上yum安装了docker V1.13.1 但是在运行:docker run hello-world的时候报错: # docker run docker.io/hello-world container_linux.go:247: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"Cannot set

  • Docker安装mysql超详细步骤记录

    查看需要安装的镜像版本 dockerHub官网地址 1.搜索mysql 2.点击标签 3.点击Tags,查看想要的版本号 在安装好docker的linux中执行命令 拉取mysql最新版本 docker pull mysql 拉取mysql指定版本 docker pull mysql:5.7 拉取结束后,查看本地是否存在 docker images 运行mysql docker run -d -p 3306:3306 --name mysql -v /mysqldata/mysql/log:/v

  • mac 中docker安装mysql的图文教程

    今天在Docker中安装了MySQL ,是自己打的docker包. 首先新建Dockerfile 内容如下: FROM mysql:latest MAINTAINER abel.yang <527515025@qq.com> LABEL Descripttion="This image is build for MAC to use mysql" Vendor="GitHub" Version="latest" RUN apt-get

随机推荐