Navicat连接远程MySQL并做数据迁移

cloud
对学生党而言,在开发自己项目的时候,肯定有用过云服务器, 一个云服务器。说白了就是一个有公网IP的电脑,暴露在公网上。现在大部分的运服务器中都没有安装数据库,通常我都是自己安装MySQL数据库(当然,有钱的同学可以直接去购买云数据库,这样就可以方便的进行管理了,其实这又是一个各种云的一种增值服务而以).

当我们在linux服务器上操作数据库的时候,肯定是相当的麻烦,如何能够做到方便,高效的工作呢? (对,方便,高效一直是我推崇的,不管你用什么方式,方便,高效而又完美的完成工作就是棒的)

如何高效的管理远程数据,当然是使用数据库管理工具了。数据库管理工具有很多: 例如Navicat,MyDB, DataGrip等等。

那么我就来介绍一下如何使用Navicat来管理远程数据库吧!
首先确保远程数据库中已经安装好,并且能够正常在mysql shell 中进行操作数据库。

首先下载好Navicat

http://www.formysql.com/ , 下载Navicat和安装就不再多余讲述了,同学们自行操作。

使用连接Navicat连接远程数据库

打开Navicat的界面中选择 连接

image

然后在连接中的常规中就可以选择 连接名,主机名和IP地址, 用户名,密码,端口.这里的主机名可以是你的域名也可以是具体的IP地址,连接数据库的端口是3306, 这里需要确保服务器中的端口是否已经打开,一般情况该端口是打开的。

连接好之后,可以测试是否与远程主机连通:选择“连接测试”即可测试是否已经连通。

但是通常会出现以下的问题:

1
2003 can't connect to mysql server on 10038

出现下面的问题,一般是服务器的端口和授权的问题,如果出现这个问题,请看下面对云服务器的配置:

1.首先,查看mysql默认端口3306是否开启,允许哪个IP 使用,可以过下面命令进行查询

1
> netstat -an|grep 3306

如果你发现前面之有127.0.0.1, 就说明,3306端口只能本机ip使用.

2.所以,我们需要对mysql中的配置文件进行修改 将/etc/mysql/mysql.conf.d/mysqld.cnf中的 bing-address = 127.0.0.1 注释掉,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
# bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

3.修改了是配置文件之后,再重新进行启动MySQL服务:

1
> sudo service mysql restart

4.然后再进入mysql,对远程用户进行授权

1
> grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';

这里的root是远程登录的用户, xxxx是登录使用的密码,然后可以在mysql数据库表中就可以查看到这个用户,该用户经被添加到user表中, 这样通过Navicat就可以连接上数据库了。

在本地把项目做好之后,本地数据库中表结构,表的基本数据需要在云服务器上创建, 如果是在服务器上手动创建,那么这真是一个效率很低,很费时的操作(我并不认为这个是多么牛逼的一个做法),即使通过本地数据库导出 SQL文件,然后再通过SQL文件导入到云服务器上,这样的做法还是有些麻烦,而且操作失误的概率比较大。有更加方便高效的做法,就是使用Navicat可以轻易的将本地数据库中表结构,基本数据复制到远程服务器的数据库中.

1.首先,选择你需要传输的数据库, 选择“数据传输”, 如下图:

datasend

2.然后在传输的数据库中选择需要传输的表, 然后在对应侧的 “目标”中选择连接, 选择对应的ip和数据库名称, 如下图所示:

navicatsource

3.选择好之后点击“开始” 就可以将数据进行转移了

navicatsuccess

这样你的远程数据库的数据就自动和你的本地的数据一致了,更为重要的是:这个方法真的是方便,高效,出错率低。

坚持原创技术分享,您的支持将鼓励我继续创作!