[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

唉。下面是我花了不知道多少个小时踩过的所有坑总结出来的血泪史,希望能帮你们少踩一些坑吧,正常来讲一步一步下来就不会出现任何问题了。

背景

用的是百度云的云服务器(其他云服务器同理),系统是Ubuntu 20.04 LTS,Mysql版本8.0+,需求是在Windows上开发,可以随时远程连接读写服务器上的Mysql

建立到服务器的远程连接

用ssh客户端或者云服务器厂家提供的网页版控制台都行,只要你能连上服务器就行

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

顺便私心推荐一个好看又好用的ssh客户端:NextSSH

用apt-get安装mysql

先更新一下apt仓库:

sudo apt-get update

顺便说一下,因为不知道你们用的都是什么账户,我也搞不清楚哪些指令权限要求比较高,所以我所有指令都加 sudo了,这样不管是谁复制粘贴都能直接用,不会出现权限问题。
然后安装mysql-server:

sudo apt-get install mysql-server -y

到这一步其实mysql就已经安完了并且自动启动了,可以看一下:

sudo service mysql status

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

设置root密码

此时mysql的root账户没有设置密码,可以直接用 mysql指令登录:

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

设置一下root的密码(mynewpassword部分改成你自己要设置的密码):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

退出,输入 mysql指令发现不能直接登录了:

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

目前为止可以直接在服务器上用mysql了。

编辑配置文件监听远程连接

默认情况下,MySQL 数据库仅监听本地连接,如果想让外网远程连接到数据库,我们需要修改配置文件,让 MySQL 可以监听远程固定 ip 或者监听所有远程 ip。
这里需要使用一个命令行文本编辑器,我用的vim所以就教一下vim,你们要是会nano或者别的自然知道该怎么弄,要是听不懂就照我的来。安装vim:

sudo apt-get install vim -y

然后用vim打开 mysqld.cnf配置文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address = 127.0.0.1这一行:

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

这个值是 127.0.0.1的时候只监听本地连接,改成 0.0.0.0可以监听所有连接,或者也可以改成仅允许指定ip连接都可以。
现在vim是阅读模式,按一下 i进入编辑模式,然后用上下左右键定位到这行(最下面显示INSERT的时候表明处于编辑模式,按Esc可退出返回到阅读模式):

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

改完之后按Esc退出编辑模式,然后输入 :wq保存退出。(若输入 :q则退出但不保存)
重启mysql service使刚才的修改生效:

sudo service mysql restart

允许root账号使用远程连接

mysql默认只允许root账号在本地使用,需要修改一下允许远程使用root账号(没试过其他账号的情况,但原理一致)。先登录mysql:

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]
mysql -u root -p

输入密码,登录。
然后选择 mysql数据库:

use mysql;

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

查看账号的主机权限:

select user, host from user;

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

host处为 localhost时只允许本地使用,改成 %即可远程使用:

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

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

刷新权限:

FLUSH PRIVILEGES;

退出mysql。

检查ubuntu自带的防火墙状态

sudo ufw status

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

如果是 inactive说明防火墙没开,那就不用管了。防火墙是干嘛的呢,我自己的理解就是,如果开了防火墙,那服务器上所有端口都是默认禁止连接的,只有你允许的端口才允许连接,类似于这种:

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

所以如果防火墙开了,那要么把防火墙直接关了:

sudo ufw disable

要么添加一条规则让防火墙放行3306端口(mysql的默认端口):

sudo ufw allow 3306

检查云服务器厂商的防火墙状态

打开云服务器的后台管理页面,找到防火墙:

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

云服务器厂商默认只开启几个最常用的端口,其他端口都是默认关闭的,所以也要在这里添加一条规则放行3306端口:

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

测试连接

随便找个数据库管理的软件测试一下:

[Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

就连上了。常见的问题应该都提到了,如果还是连不上那你们再想想办法吧。

Original: https://www.cnblogs.com/m1ds/p/16386828.html
Author: m1ds
Title: [Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/619505/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Goroutines (一)

    Goroutines CSP communicating sequential processes Go 语言中,每一个并发执行单元叫做一个goroutine,语法上仅需要在一个普…

    数据库 2023年6月16日
    084
  • 链表问题一些常用的套路与方法

    概述 链表问题应该是数据结构中比较基础的一类问题,但同时也是在面试中常考的一类问题。但是围绕链表问题的一些基本方法或者处理思想,也无外乎那几类,因此本文尝试对链表常用的一些方法或者…

    数据库 2023年6月11日
    079
  • javaweb之HttpSession对象

    1.session会话追踪原理 客户端第一次请求服务端,服务端会创建一个session对象并且存储下来,之后会将session的唯一标识sessionId设置到响应头中传给客户端 …

    数据库 2023年6月16日
    081
  • jmeter的一些概念知识

    前言 一、Jmeter的作用 – 1.jmeter进行接口操作 2. jmeter进行性能操作 二、Jmeter的一些概念的理解 – 1.事务 2. TPS…

    数据库 2023年6月6日
    0102
  • 数据结构入门之用链表模拟栈

    1:栈的介绍: LIFO(last in first out)表示就是后进入的元素, 第一个弹出栈空间.往往先把拿出去使用. 其限制是仅允许在表的一端进行插入和删除运算。这一端被称…

    数据库 2023年6月6日
    078
  • pg 锁表

    select * from pg_catalog.pg_stat_activity where usename =’gis_bd_app’ and wait…

    数据库 2023年6月6日
    0103
  • idea热部署

    idea热部署 一、修改 pom.xml 文件 修改配置文件 二、打开自动build: File -> Settings -> Build,Exe… -&g…

    数据库 2023年6月16日
    094
  • Linux下搭建git分布式管理

    VMware 虚拟机中搭建步骤 一、 1.查一下ip 2.和Xshell连接起来 3.看是否连接上 4.这就ok了 5.输入 yum install git yum install…

    数据库 2023年6月6日
    090
  • 批量新建域用

    前几个章节我们讲到Windows Server 2016-图形化新建域用户(一),本章节我们简单讲解下如何通过命令批量创建域用户,以便高效完成日常工作中实际批量创建用户需求,内容涉…

    数据库 2023年6月14日
    078
  • Java学习-第一部分-第二阶段-第一节:面向对象编程(高级)

    面向对象编程(高级) 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 类变量和类方法(static) 类变量 类…

    数据库 2023年6月11日
    0100
  • MYSQL的Java操作器——JDBC

    在学习了Mysql之后,我们就要把Mysql和我们之前所学习的Java所结合起来 而JDBC就是这样一种工具:帮助我们使用Java语言来操作Mysql数据库 JDBC简介 首先我们…

    数据库 2023年6月14日
    076
  • Java中如何遍历字符串呢?

    字符串是程序开发中我们见的最多的一种数据类型 对字符串的操作,也是我们日常涉及的最多的一种操作方式,那么如何遍历字符串为字符并输出呢? 下面笔者讲述三种操作方式,如下所示 1.直接…

    数据库 2023年6月11日
    056
  • OA系统模块设计方案

    `1.模型管理 :web在线流程设&#x…

    数据库 2023年6月6日
    079
  • 500 ZuulException: Forwarding error

    com.netflix.zuul.exception.ZuulException: Forwarding error at org.springframework.cloud.ne…

    数据库 2023年6月16日
    086
  • gitlab

    版本控制gitlab 1. 版本控制介绍 2. gitlab部署 版本控制介绍 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思…

    数据库 2023年6月14日
    097
  • html简单学习!

    博主学习html的随记 1.常用标签 1.基础标签 2.格式标签 3.表单 4.超文本标签 5.列表 6.表格 7.样式 8.特殊符号 9.内联框架(网页嵌套) 1.常用标签 1….

    数据库 2023年6月16日
    096
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球