navicat远程连接docker容器中的mysql数据库

1.发现之前ubuntu镜像拉取下来后发现里面没有安装mysql,同时也没有做端口映射

这样windows下面的navicat就无法远程登陆管理ubuntu下面的mysql数据库文件。

 

2.针对以上情况做了以下操作

1)ubuntu下安装了mysql

 ubuntu上安装mysql非常简单只需要几条命令就可以完成。

  1. sudo apt-get install mysql-server

        root:****

  2. apt-get install mysql-client

  3. sudo apt-get install libmysqlclient-dev

同时加载数据卷做了端口3306的映射,提交打包了现有的镜像到dockehub,在dockerhub下面创建了public repository:****,push了新的镜像到dockerhub。

2)在新的镜像下面运行了新的容器做开发。

 

3.然后在navicat登陆ubuntu下面的mysql,发现一直连接不上,分析可能的原因有以下几点:

1)权限问题:授权

2)防火墙:发现没有防火墙设置

3)端口打开:做了映射

4)ip地址填写不对,开始填了容器的ip始终连接不了,后来填写dockermachine的ip就连接上了。

192.168.99.100就可以,容器ip172.*.0.*始终不行。

 

4.怎么把windows下的数据库导入到ubuntu?

首先在ubuntu安装mysql,开启mysql服务:sudo mysql service start,mysql -u root -p,输入密码登陆进去;

查看数据库:show databases;

进入数据库:use database_name;

查看数据库表:show tables;

建库:create database name;

切换库:use name;

防止乱码:set names utf8;

导入:mysql>source /var/www/work/sql脚本文件 地址,在navicat连接docker中的mysql,连接成功。

 

5.检查过程中用到的命令

show global variables like 'port'; 查看数据库连接端口

netstat -ntlp   //查看当前所有tcp端口·

netstat -an | grep 3306   //查看所有3306端口使用情况·

 

 

你可能感兴趣的:(docker)