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

Ubuntu如何安装Mysql+启用远程连接[完整版]唉。下面是我花了不知道多少个小时踩过的所有坑总结出来的血泪史,希望能帮你们少踩一些坑吧,正常来讲一步一步下来就不会出现任何问题了。 背景 用的是百度云的云服务器(其他云服务器同理),系统是Ubuntu

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

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

背景

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

建立到服务器的远程连接

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

顺便私心推荐一个好看又好用的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

image

设置root密码

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

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

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

image

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

目前为止可以直接在服务器上用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这一行:
image

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

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

sudo service mysql restart

允许root账号使用远程连接

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

mysql -u root -p

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

use mysql;

image

查看账号的主机权限:

select user, host from user;

image

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

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

image

退出mysql。

检查ubuntu自带的防火墙状态

sudo ufw status

image

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

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

sudo ufw disable

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

sudo ufw allow 3306

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

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

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

测试连接

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

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

原文地址:https://www.cnblogs.com/m1ds/archive/2022/06/17/16386828.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5097.html

(0)
上一篇 2023-05-23
下一篇 2023-05-23

相关推荐

  • Python工程师:安装sympy库

    Python工程师:安装sympy库Sympy库是Python的符号计算库,支持各种计算操作,包括求导、积分、方程求解、矩阵运算等。如果你经常需要做复杂的数学运算,那么sympy库是一个非常好用的工具,可以大大提高你的工作效率。

    2024-09-04
    22
  • Python string.split函数:快速分离字符串

    Python string.split函数:快速分离字符串在Python中,string.split()函数是一个十分实用的函数,它可以帮助我们将一个字符串快速分离成多个部分。这个函数可以应用在很多场合,比如说,格式化文本,数据处理等等。下面,我们将从多个方面,来详细阐述Python中的string.split()函数。

    2024-03-21
    79
  • mysql查询字段值_查询所有数据库的SQL语法

    mysql查询字段值_查询所有数据库的SQL语法1、去除重复记录 去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就存在相同的记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记录,需要使用…

    2023-04-09
    157
  • Mysql查询语句执行过程 – G「建议收藏」

    Mysql查询语句执行过程 – G「建议收藏」Mysql查询语句执行过程 Mysql分为server层和存储引擎两部分,或许可以再加一层连接层 连接层(器) Mysql使用的是典型的C/S架构。连接器通过典型的TCP握手完成连接。 需要注的是,

    2023-03-15
    170
  • mysql字符集和校对规则_mysql设置字符集

    mysql字符集和校对规则_mysql设置字符集1、字符集 character 设置数据存储编码格式 1)utf8 2)utf8mb4 (支持Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手…

    2023-01-28
    159
  • Python执行CMD命令

    Python执行CMD命令Python是一款功能强大的编程语言,在开发和运维领域都有广泛的应用。在进行系统管理、监控、调试等工作过程中,经常需要与CMD命令打交道。Python提供了大量的方法来执行CMD命令,帮助用户更快捷地完成工作。

    2024-04-24
    63
  • centos7安装mongodb4.0_ai安装教程

    centos7安装mongodb4.0_ai安装教程Centos7下MongoDB下载安装详细步骤 LMRzero 2019-06-12 20:52:27 14473 收藏 10 分类专栏: MongoDB 版权 本文的环境为centos7,装的Mo…

    2023-03-19
    141
  • [20191119]探究ipcs命令输出.txt[通俗易懂]

    [20191119]探究ipcs命令输出.txt[通俗易懂][20191119]探究ipcs命令输出.txt$ man ipcsIPCS(8) Linux Programmer's Manual IPCS(8)NAME ipcs – provide i

    2022-12-20
    145

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注