Article
Navicat连接远程服务器(Ubuntu)MySQL数据库全过程
00 分钟
2020-5-19
2023-5-21
type
status
category
date
slug
summary
tags
icon
Last edited time
May 21, 2023 07:57 AM
Navicat连接ubuntu18.04 上的MySQL数据库为例

一、在Ubuntu上装好MySQL

废话,但是有几个注意点
推荐安装教程https://blog.csdn.net/weixx3/article/details/80782479我就看着这个装的
  1. 初始化配置sudo mysql_secure installation的时候,要记住给root设置的密码
  1. cd到/etc/mysql/mysql.conf.d
    1. sudo vim mysqld.cnf
      把里面一行bind-address=127.0.0.1#注释掉
  1. 把user表 root的host项从localhost改成%,允许任意host访问,如果只允许某个ip访问,则可以改成相应的ip

    二、查看ubuntu的ip地址

    终端输入ifconfig即可
    如果显示未安装net-tools,则使用sudo apt install net-tools安装
    安装好后,输入ifconfig则会显示一堆东西,找一下inet后面跟着的地址,记下来,后面要用

    此时如果直接用navicat远程连接是会报错的
    notion image
    1. 如果你是新安装的ubuntu,可能root密码(主机的root密码,不是MySQL中rot的密码)未设置
      1. sudo passwd root
        输入两次密码设置即可
    1. 因为可能你的ubuntu未开启ssh服务
      1. 查看是否开启了ssh服务:ssh localhost
        则未开启
        notion image
        开启方式:
        sudo apt-get update
        sudo apt-get install openssh-server
        再次
        ssh localhost
        notion image
        则开启成功

    三、打开navicat连接数据库

    点击Connection选择mysql

    Genernal填写格式

    notion image
    连接名随便写
    host一般写localhot
    port一般就是3306
    username就是MySQL数据库的用户名
    密码就是对应的密码

    SSH填写格式

    notion image
    Host写的就是上面查的主机ip地址
    Port一般就是22
    username是主机的名称
    密码是主机的密码
    点击连接,如果成功则
    notion image
    并且
    notion image
    这两条是绿色的
    如果Navicat到SSH Server间出错显示红色,则检查
    主机SSH服务是否开启主机用户是否设置了密码主机用户密码是否填写正确
    如果SSH Server 到Server中间是红色
    并且Navicat显示
    notion image
    则建议查看这篇博客
    mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法
    我的操作系统是ubuntu18.04,以下是我的mysql版本: 安装完成后,登录mysql的时候就出现了如下错误: 因为安装的过程中没让设置密码,可能密码为空,但无论如何都进不去mysql。 下面是我的处理过程: 在ubuntu的terminal(也即终端)上输入sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf ,进入到这个配置文件,然后在这个配置文件中的[mysqld] 这一块中加入skip-grant-tables这句话。 作用: 就是让你可以不用密码登录进去mysql。 保存:wq,退出 。输入:service mysql restart,重新启动mysql。 在终端上输入mysql -u root -p,遇见输入密码的提示直接回车即可,进入mysql后,分别执行下面三句话: 结果如下图: 然后输入quit,退出mysql。 重新进入到mysqld.cnf文件中去把刚开始加的skip-grant-tables这条语句给注释掉。 再返回终端输入mysql -u root -p ,应该就可以进入数据库了。 如果此时还是报出错误,那么就需要返回step3中,把注释掉的那条语句重新生效(就是删除#符号),重新进入mysql中,先任意选择一个数据库,比如use mysql; 然后输入select user, plugin from user; 看下图: 从图中可以看到在执行了后,错误原因是因为 plugin root的字段是 auth_socket ,那我们改掉它,替换为mysql_native_password就行了。输入: 1 update user set authentication_string=password(" ln122920 "),plugin='mysql_native_password' where user='root'; 然后回车执行以下,再输入select
    mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法

    评论