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

嗯。以下是我踩了好几个小时的所有坑总结出来的血泪史。我希望我能帮你少踩几个坑。正常情况下,一步一步地,不会有任何问题。

[En]

Yeah. The following is the history of blood and tears summed up by all the pits I have stepped on for many hours. I hope I can help you step in fewer pits. Normally, step by step, there won’t be any problems.

背景

用的是百度云的云服务器(其他云服务器同理),系统是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+启用远程连接[完整版]

因此,如果防火墙处于打开状态,请将其关闭:

[En]

So if the firewall is on, either turn it off:

sudo ufw disable

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

sudo ufw allow 3306

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

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

[En]

Open the backend management page of the CVM and find the firewall:

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

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

[En]

CVM vendors only open a few of the most commonly used ports by default, and other ports are closed by default, so add a rule here to release port 3306:

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

测试连接

使用任何数据库管理软件进行测试:

[En]

Test it with any database management software:

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

这是有联系的。常见的问题应该已经提到了,如果你仍然无法连接,那么你可以想出一个方法。

[En]

It’s connected. Common problems should have been mentioned, if you still can’t connect, then you can think of a way.

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

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

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

(0)

大家都在看

  • MySQL实现 group_concat 排序

    MySQL支持实现group_concat() 内部自定义排序: 实例: 新建一张表 reward,表中数据如下: SQL: SELECT uid, GROUP_CONCAT(mo…

    数据库 2023年6月14日
    089
  • MySQL(一)——查看密码与修改

    查看数据库密码,策略与修改 RPM安装: 源码安装: 进入:数据库 进入数据库后第一步设置密码: 查看密码策略 修改密码策略,长度 0宽容模式 混合模式,0关闭大小写 特殊字符 O…

    数据库 2023年6月14日
    0121
  • RadonDB MySQL on K8s 2.1.2 发布!

    RadonDB MySQL on Kubernetes 于 2 月 17 日发布了新版本 2.1.2 。该版本在节点的重建、增删等方面进行了全面升级。致谢: 首先感谢 @andyl…

    数据库 2023年5月24日
    076
  • English words1004

    本文来自博客园,作者:ukyo–BlackJesus,转载请注明原文链接:https://www.cnblogs.com/ukzq/p/16754120.html Or…

    数据库 2023年6月11日
    077
  • django-Celery分布式队列简单使用

    介绍: Celery 是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。 它是一个专注于实时处理的任务队列,同时也支持任务调度。 worker…

    数据库 2023年6月6日
    098
  • 数据中有emoji,导致插入不了数据库

    前言 前两天负责的系统,因为需要获取用户的昵称并进行入库,但是有个别用户的昵称中存在emoji表情,导致入库时报错。 报错内容: java.sql.SQLException: In…

    数据库 2023年5月24日
    0117
  • Linux平台Redis安装总结

    本文测试验证的操作系统为CentOS Linux release 7.8.2003 (Core),Redis版本为redis-6.0.8。 敬请注意,如有不同,请以实际情况为准。 …

    数据库 2023年6月11日
    062
  • keycloak~资源的远程授权

    17.1远程资源授权准备 17.1.1认证和访问流程图 参考:http://www.zyiz.net/tech/detail-141309.html 17.1.2为用户指定角色 可…

    数据库 2023年6月6日
    086
  • 页面静态化

    网站的首页频繁被访问,为了提升访问速度,除了我们之前已经学过的使用缓存技术外,还可以使用页面静态化技术。 页面静态化即将动态渲染生成的页面结果保存成html文件,放到静态文件服务器…

    数据库 2023年6月14日
    080
  • ShardingSphere 在金融支付场景下的实践与调优

    Apache ShardingSphere 团队先前应邀到海科融通北京总部,PMC Chair 张亮与海科融通的技术同学在异构数据库关联查询、分布式事务、两地三中心、系统高可用等方…

    数据库 2023年6月16日
    0103
  • MyBatis-Plus入门教程及基本API使用案例

    一、MyBatisPlus简介 1. 入门案例 问题导入 MyBatisPlus环境搭建的步骤? 1.1 SpringBoot整合MyBatisPlus入门程序 ①:创建新模块,选…

    数据库 2023年6月16日
    0100
  • CPU 是如何与内存交互的

    这篇文章主要整理了一下计算机中的内存结构,以及 CPU 是如何读写内存中的数据的,如何维护 CPU 缓存中的数据一致性。什么是虚拟内存,以及它存在的必要性。如有不对请多多指教。 概…

    数据库 2023年6月14日
    093
  • 能尽量用数据库代替内存就用吧,减少整天担心内存问题

    游戏不好搞啊,设计的东西,能尽量简单就简单,代码太多判断就写死行了,反正它运行起来是对的就行了。 情形:09:00 昨天发生了很痛苦的一件事情,那就是游戏中data内存同步不到da…

    数据库 2023年6月14日
    066
  • 记录下在阿里云linux上安装与配置Mysql

    环境:阿里云ECS服务器,系统为centos7.2 用户:root 参考博客: https://blog.csdn.net/kunzai6/article/details/8193…

    数据库 2023年6月16日
    0114
  • MySQL 同步复制及高可用方案总结

    mysql作为应用程序的数据存储服务,要实现mysql数据库的高可用。必然要使用的技术就是数据库的复制,如果主节点出现故障可以手动的切换应用到从节点,这点相信运维同学都是知道,并且…

    数据库 2023年6月9日
    070
  • 数据库原理一—MySQL基本架构与索引

    MySQL基本架构 Server层包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持In…

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