从零开始 保姆级教程 Ubuntu20.04系统安装MySQL8、服务器配置MySQL主从复制、本地navicat远程连接服务器数据库

从零开始:Ubuntu 20.04 系统安装 MySQL 8、服务器配置 MySQL 主从复制、本地 Navicat 远程连接服务器数据库

    • 初始化服务器
      • 1. 更新本地软件包列表
      • 2. 安装 MySQL 服务器
      • 3. 查看 MySQL 安装版本
      • 4. 登录 MySQL 管理终端
      • 5. 设置 root 用户密码(推荐使用 native password 认证(可选,根据自己情况来定))
      • 6. 修改 root 用户访问权限(允许远程登录)(一方面也是为了本地连接服务器)
      • 7. 修改 MySQL 配置文件,允许远程访问(一方面也是为了本地连接服务器)
      • 8. 重启 MySQL 服务(让修改的配置生效)
      • 9. 防火墙相关配置
  • 特大注意(一定要在你租的服务器的安全组里增加一条端口3306的访问规则,不然连接就会出现下面错误)
  • 配置主服务器mysql
  • 配置从服务器mysql
  • navicate远程连接服务器mysql
  • 如果你配置过程中出现什么问题,欢迎评论区讨论。

本文将介绍如何在 Ubuntu 20.04 系统中安装 MySQL 8,并配置 MySQL 主从复制。适用于自建数据库服务、开发环境数据同步测试等场景,同时支持通过 Navicat 等工具远程连接服务器数据库。


初始化服务器

1. 更新本地软件包列表

sudo apt update

2. 安装 MySQL 服务器

sudo apt install mysql-server

3. 查看 MySQL 安装版本

mysql --version

输出示例:

mysql  Ver 8.0.41-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

4. 登录 MySQL 管理终端

sudo mysql

5. 设置 root 用户密码(推荐使用 native password 认证(可选,根据自己情况来定))

这里修改了认证规则为:mysql_native_password
mysql8默认是加密方式是:caching_sha2_password (更安全)
只要你的远程连接方式支持chching_sha2_password加密规则,可以不用修改为native password加密规则。

alter user 'root'@'localhost' identified with mysql_native_password by '123456';

6. 修改 root 用户访问权限(允许远程登录)(一方面也是为了本地连接服务器)

---选择数据库
use mysql;---查询root的访问权限
select user, host from user where user='root';
---更新root的访问权限, '%'表示全部IP都可以访问
---'localhost' 表示只有本地可以访问
update user set host = '%' where user = 'root';---刷新用户权限
flush privileges;

7. 修改 MySQL 配置文件,允许远程访问(一方面也是为了本地连接服务器)

自mysql8版本中,mysql的配置文件被放在了 /etc/mysql/mysql.conf.d/mysqld.conf 文件中

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

找到bind-address, 修改为:

bind-address = 0.0.0.0

8. 重启 MySQL 服务(让修改的配置生效)

sudo systemctl restart mysql
或
sudo service mysql restart

9. 防火墙相关配置

建议先关闭防火墙,如果有需要可以自行搜索设置防火墙开放端口。
注意:打开防火墙记得一定要先开放个端口,不然你ssh就登不进去了,还得去服务器平台远程连接开启。

查看防火墙状态:sudo ufw status
关闭防火墙:sudo ufw disable
开启防火墙:sudo ufw enable

检查端口监听情况

sudo ss -ltn

特大注意(一定要在你租的服务器的安全组里增加一条端口3306的访问规则,不然连接就会出现下面错误)

错误

配置主服务器mysql

# 新增用户赋权,并设置远程访问,当然你也可以直接使用root
create user 'repl'@'%' identified with mysql_native_password by '123456';# 授权
grant all privileges on *.* to 'repl'@'%' with grant option;# 刷新权限
flush privileges;# 查看主服务器状态
show master
---下面是输出例子:
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000009 |      157 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
---这里file是日志文件,从这个日志文件的第position位置开始备份
---后面要写到 从数据库 中配置# 修改主服务器 MySQL 配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.conf# 添加/修改以下配置
[mysqld]
server-id = 1                   # 主服务器唯一ID(必须与从服务器不同)# 重启MySQL服务
sudo systemctl restart mysql

配置从服务器mysql

# 修改从服务器 MySQL 配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.conf# 添加/修改以下配置
[mysqld]
server-id = 2                   # 从服务器唯一ID(必须与主服务器不同)# 重启MySQL服务
sudo systemctl restart mysql# 进入mysql
sudo mysql -u root -p123456# 配置 从服务器所要备份的主服务器信息(在mysql命令行中)
change master to
master_host = '123.123.123.123', # 填写你的主服务器ip
master_user = 'repl', # 自己创建的用户(授权的)或者root(授权的)
master_password = '123456', # 主服务器上面用户mysql连接密码
master_log_file = 'binlog.000009', # 主服务器的状态中的 file, 主服务器show master status输出的
master_log_pos = 157; # 主服务器的状态中的position# 开启从服务器
start slave;# 查看状态
show slave status\G; # \G表示格式化输出# 如果输出中下面这两个属性值是Yes,即成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

navicate远程连接服务器mysql

在这里插入图片描述

如果你配置过程中出现什么问题,欢迎评论区讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java怎么完善注册,如果邮箱中途更换,能否判断

解析在下面 附赠代码 private static class CodeInfo {String code;long timestamp;CodeInfo(String code, long timestamp) {this.code code;this.timestamp timestamp;}}// 存储验证码(邮箱 -> 验证码信息)(保证线程安全) 以免中途更改邮箱pri…

n8n 中文系列教程_01. 简单易懂的现代AI魔法,n8n的快速了解与概念科普(文末有彩蛋)

1. 教程简介 欢迎来到“无代码工具探索”课程,这是专为非技术人员设计的指南(当然,技术人员也可以从中受益)。我们的目标是通过无代码工具来提升工作效率,尤其是利用像 n8n 这样的灵活数据库平台。这些工具被誉为“现…

解码 Web Service:从技术原理到应用场景的深度剖析

Web Service 是一种基于网络的、分布式的计算技术,它允许不同的应用程序之间通过网络进行通信和交互。以下是关于 Web Service 的详细介绍: 一、定义与概念 Web Service 是一种可以通过 Web 协议(如 HTTP)进行访问的软件组件&am…

Nacos启动报错

Nacos启动是在单机模式下,不是集群模式 点击startup.cmd启动会报错 打开bin目录 rem是注释的意思,在nacos1.3.2之后,nacos默认的都是集群模式,我们这里单机测试就是用单机模式。 也可以修改MODE,如果选择不修改&…

uniapp-商城-26-vuex 使用流程

为了能在所有的页面都实现状态管理,我们按照前面讲的页面进行状态获取,然后再进行页面设置和布局,那就是重复工作,vuex 就会解决这样的问题,如同类、高度提炼的接口来帮助我们实现这些重复工作的管理。避免一直在造一样…

Git 命令速查手册

听说用美图可以钓读者? 一、基础操作核心命令 1. 仓库初始化与克隆 命令作用示例git init创建新仓库git init my-projectgit clone克隆远程仓库git clone [https://github.com/user/repo.git](https://github.com/user/repo.git)git remote add关联远程仓库git re…

信息量、香农熵、交叉熵、KL散度总结

信息量 对于一个事件而言,它一般具有三个特征: 小概率事件往往具有较大的信息量 大概率事件往往具有较小的信息量 独立事件的信息量相互可以相加 比如我们在买彩票这个事件中,彩票未中奖的概率往往很高,对我们而言一点也不稀…

使用C语言的cJSON中给JSON字符串添加转义

在 cJSON 库中,没有直接提供 一个函数来专门给 JSON 字符串添加转义(如将 " 转义为 \",\n 转义为 \\n 等)。 但 cJSON 在 序列化(cJSON_Print 或 cJSON_PrintUnformatted) 时会自动处理转义字符…

宇树机器狗go2—slam建图(1)点云格式

0.前言 上一篇番外文章教大家如何在宇树机器狗go2的gazebo仿真环境中实现简单的导航运动,本期文章会教大家如何让宇树的机器狗go2在仿真环境中进行slam建图时经常会遇到的一些点云格式,在后续的slam建图和slam算法解析的时候会经常与这些点云信息打交道…

linux socket编程之udp(实现客户端和服务端消息的发送和接收)

目录 一.创建socket套接字(服务器端) 二.bind将prot与端口号进行绑定(服务器端) 2.1填充sockaddr_in结构 2.2bind绑定端口 三.直接通信(服务器端) 3.1接收客户端发送的消息 3.2给客户端发送消息 四.客户端通信 4.1创建socket套接字 4.2客户端bind问题 4.3直接通信即可…

第1期:Python基础语法入门

1.1 Python简介 Python是一种解释型、面向对象、动态数据类型的高级编程语言。它设计简洁,易于学习,适合初学者。Python广泛应用于数据科学、人工智能、Web开发、自动化脚本等领域。它的语法简洁易懂,强调代码的可读性。 1.2 安装Python与配…

使用EXCEL绘制平滑曲线

播主播主,你都多少天没更新了!!!泥在干什么?你还做这个账号麻?!!! 做的做的(哭唧唧),就是最近有些忙,以及…… 前言&…

当算力遇上马拉松:一场科技与肉身的极限碰撞

目录 一、从"肉身苦修"到"科技修仙" 二、马拉松的"新大陆战争" 三、肉身会被算法"优化"吗? 马拉松的下一站是"人机共生"时代 当AI能预测你的马拉松成绩,算法能规划最佳补给方案,智能装备让训练效率翻倍——你还会用传…

MLLMs for TSAD ?

项目链接:Multimodal LLMs Advance Time Series Analysis 代码链接:https://github.com/mllm-ts/VisualTimeAnomaly 出处:ICLR 2025 一 文章动机 多模态 LLM (MLLM) 通过 “视觉” 方式处理时序的潜力仍未充分探索; 人类检测 “时序异常” 的自然方式:可视化、文本描…

开发基于python的商品推荐系统,前端框架和后端框架的选择比较

开发一个基于Python的商品推荐系统时,前端和后端框架的选择需要综合考虑项目需求、开发效率、团队熟悉度以及系统的可扩展性等因素。 以下是一些推荐的框架和建议: 后端框架 Flask 优点: 轻量级:Flask的核心非常简洁,…

chili3d调试笔记2+添加web ui按钮

onclick 查找 打个断点看看 挺可疑的,打个断点看看 挺可疑的,打个断点看看 打到事件监听上了 加ui了 加入成功 新建弹窗-------------------------------------- 可以模仿这个文件,写弹窗 然后在这里注册一下,外部就能调用了 对了…

【重学Android】1.关于@Composer注解的一点知识笔记

最新因为一些原因,开始重新学习Android及kotlin编程,也觉得可以顺带记录下这个过程中的一些知识点,也可以用作日后自己查找复习。 Composable 注解在 Android 开发中的使用 Composable 是 Jetpack Compose(Android 的现代声明式…

qt+mingw64+cmake+libqrencode项目编译和搭建成功记录

最近要使用高拍仪拍照获取照片,然后识别照片中的二维码数据、使用QZxing只能识别出一个条码、另外一个条码准备测试用其他的开源项目(如libqrencode-4.1.1)来进行测试,故进行本文的项目环境搭建测试,最后成功。 本机开…

【今日三题】判断是不是平衡二叉树(递归) / 最大子矩阵(二维前缀和) / 小葱的01串(滑动窗口)

⭐️个人主页:小羊 ⭐️所属专栏:每日两三题 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 判断是不是平衡二叉树(递归)最大子矩阵(二维前缀和)小葱的01串(滑动窗口) 判断是不是平衡二叉树(递归) 判断是不是平衡二叉…

【Linux】线程ID、线程管理、与线程互斥

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🌐 C 语言 上篇文章: 【Linux】线程:从原理到实战,全面掌握多线程编程!-CSDN博客 下…