Navicat远程连接MySQL服务器

Posted 没反应说说说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Navicat远程连接MySQL服务器相关的知识,希望对你有一定的参考价值。

文章目录

Navicat:数据库可视化工具

一、准备

  • 一台开启 SSH 登录的 Linux 服务器 或 已开启远程登录 mysql
  • 安装好Navicat

二、配置Navicat允许远程连接MySQL数据库

打开Navicat,点击左上角的连接,选择MySQL

1、使用Navicat直接连接MySQL

如果你的数据库对外开放允许外部访问的话,可以选择直接连接。如果你不知道怎么打开数据库远程访问,可看这篇教程:《远程直接连接 MySQL 数据库,阿里云腾讯云允许远程连接教程》,特别要注意的是阿里云等云服务商自己还有防火墙,也要手动打开,细节可看上句提到的那篇教程。

2、使用 Navicat 通过 SSH 远程登录后再本地方式连接 MySQL

如果你的数据库为了安全考虑没有打开数据库远程连接,而是通过 SSH 先登录服务器,然后再以本地登录的方式登录数据库的话,可以在「常规」里设置本地登录的信息,注意主机地址要写「localhost」,再选择「SSH」的选项卡配置远程服务器登录信息即可登录。
先配置SSH连接

如果你使用的是 MySQL 8.0 以上版本的数据库,可能会碰到「caching_sha2_password」连接报错,这个错误的原因是 MySQL 8.0 更改了远程登录的账号认证方式,修复方法可看大神写的这篇教程《解决 MySQL 中 caching_sha2_password 连接报错和认证方式改为 mysql_native_password 的方法》

3、查看连接

输入好所需信息后点击确定就可以连接好了,然后就可以看到数据库中的信息了

为什么使用ssh登录

1.便捷性

我这里使用的是腾讯云轻量应用服务器,腾讯云轻量应用服务器处于安全考虑默认自带安全组,如果说使用mysql、redis等要单独开放端口,比如这里我们就要开放3306端口来进行MySQL连接,是比较麻烦的。

Navicat 通过SSH连接MySQL数据库,不用对外开放数据库端口(默认3306),也不用另外创建一个允许外部网络连接用户,可以大大提高安全性,当然,前提你是的服务器要开启ssh服务。

参考链接:
Navicat 怎么远程连接 MySQL 服务器 - Navicat 使用教程
Navicat远程连接远程数据库Mysql

Navicat 远程连接 MySQL

相信大家都有在远程服务器上进行开发吧,其中 MySQL 的使用率应该也会挺高,如果使用 Navicat 等可视化工具来操作远程数据库不失为一种很好的选择,避免了在命令行写 SQL 语句的操作。下面简单介绍一下 Navicat 连接远程数据库的操作。

1

首先我们需要更改 3306端口,查看3306 端口是否对外开放,MySQL 默认情况下是不开放对外访问功能的。语句如下:

netstat -an | grep 3306

如果查询结果如下,需要我们更改 MySQL 配置文件。

技术分享图片

可以看出,mysql的3306端口只是监听本地的连接,这样就阻碍了外部IP对该数据库的访问,修改 MySQL 配置文件 my.conf :

vim /etc/mysql/my.cnf

找到

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address  = 127.0.0.1 

bind-address = 127.0.0.1 这行注释掉或者改为你想要使用的客户端主机 ip。

至此 MySQL 远程访问端口就成功开启了。

2

我们进入 MySQL 命令界面,运行下列SQL 语句,查看用户是否具有访问权限:

use mysql;
select user, host from user;

返回结果如下:

技术分享图片

我们使用通配符 % 来修改 root 用户对应的 host 字段,使具有访问所有 ip 地址的权限:

update user set host = ‘%‘ where user = ‘root‘;

如果抛出如下异常:

Duplicate entry ‘%-root‘ for key ‘PRIMARY‘

说明有多个ROOT用户纪录在USER表中了,我们重新执行:

select host from user where user = ‘root‘;

便能看到字段 host 的 % 值。

我们执行:

flush privileges;

刷新一下 MySQL 的系统权限相关表。

最后重启一下 MySQL 服务:

sudo restart mysql

3

服务端设置好了,我们在 Navicat 客户端设置一下连接:

打开 Navicat,点击左上方的 "连接",设置一下数据库的用户名,地址,密码等,便能在 Navicat 中远程操作服务器上的 MySQL 啦。

技术分享图片

以上是关于Navicat远程连接MySQL服务器的主要内容,如果未能解决你的问题,请参考以下文章

用Navicat for MySQL远程连接服务器数据库,知道账号和密码。我在客户机这边用Navi

服务器的MySQL不能远程访问

Navicat远程连接服务器mysql

Linux系统如何开通远程连接Mysql5数据库 我购买了个电信通的VPS,但本地navicat连不上远程VPS的数据库

navicat for mysql远程连接ubuntu服务器的mysql数据库

Navicat 远程连接 MySQL