从Windows远程访问Linux上的数据库

news/2024/12/22 18:06:06 标签: linux, 数据库, windows

从Windows远程访问Linux上的数据库

目录

  • 简介
  • 在Linux上安装MySQL/MariaDB
  • 配置MySQL/MariaDB以允许远程连接
    • 修改MySQL/MariaDB配置文件
    • 重启MySQL/MariaDB服务
    • 确保防火墙允许MySQL/MariaDB端口
  • 创建远程访问用户
  • 授予用户权限
  • 测试远程连接
    • 检查网络连通性
    • 使用图形化工具连接
  • 创建和查询表
  • 注意事项

简介

在学习数据库时,我们通常在本地(localhost)主机上进行操作。然而,随着技能的增长,你可能会想要尝试从另一台机器(如Windows)远程访问Linux上的数据库。本文将详细介绍如何在Linux上安装MySQL/MariaDB,并配置其允许从Windows远程访问。

在Linux上安装MySQL/MariaDB

首先,确保你已经在Linux系统上安装了MySQL或MariaDB。如果还没有安装,请参考官方文档或使用包管理器进行安装。

配置MySQL/MariaDB以允许远程连接

默认情况下,MySQL/MariaDB只允许来自localhost的连接。为了允许远程连接,你需要进行以下配置:

修改MySQL/MariaDB配置文件

编辑MySQL/MariaDB的配置文件(通常是/etc/mysql/my.cnf/etc/my.cnf),找到[mysqld]部分,并添加或修改以下行:

bind-address = 0.0.0.0

这将使MySQL/MariaDB监听所有网络接口,而不仅仅是localhost

重启MySQL/MariaDB服务

保存配置文件后,重启MySQL/MariaDB服务以应用更改:

sudo systemctl restart mysql
# 或者对于MariaDB:
sudo systemctl restart mariadb

确保防火墙允许MySQL/MariaDB端口

确保你的防火墙规则允许外部访问MySQL/MariaDB的默认端口(3306)。你可以使用ufw来管理防火墙规则:

sudo ufw allow 3306/tcp

创建远程访问用户

为了安全起见,建议创建一个专门用于远程访问的用户,而不是直接使用root用户。以下是创建远程用户的步骤:

创建win_root用户

登录到MySQL/MariaDB:

mysql -u root -p

创建一个名为win_root的用户,允许从任意IP地址访问:

CREATE USER 'win_root'@'%' IDENTIFIED BY '123456';

查看用户表

你可以查看当前的用户及其允许连接的主机:

USE mysql;
SELECT user, host FROM user;

你应该能看到win_root用户被设置为可以从任意IP地址访问。

授予用户权限

授予win_root用户所有权限,并允许其授予权限给其他用户:

GRANT ALL PRIVILEGES ON *.* TO 'win_root'@'%' WITH GRANT OPTION;

刷新权限以使更改生效:

FLUSH PRIVILEGES;

测试远程连接

检查网络连通性

确保Linux服务器和Windows客户端之间的网络是连通的。你可以使用ping命令来测试:

在Windows上打开命令提示符,输入:

ping <Linux服务器的IP地址>

如果能够成功Ping通,说明网络连接正常。

使用图形化工具连接

使用图形化工具(如DataGrip、MySQL Workbench等)进行连接。配置连接时,注意以下几点:

  • 主机名:填写Linux服务器的IP地址,而不是localhost
  • 用户名:填写win_root
  • 密码:填写你在创建用户时设置的密码(例如123456)。

创建和查询表

创建学生表

假设你想创建一个简单的students表,可以在MySQL/MariaDB中执行以下SQL语句:

CREATE DATABASE school;

USE school;

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT NOT NULL,
    grade VARCHAR(10)
);

插入数据

插入一些示例数据:

INSERT INTO students (name, age, grade) VALUES
('张三', 15, '初三'),
('李四', 16, '高一'),
('王五', 17, '高二');

查询数据

查询表中的所有记录:

SELECT * FROM students;

你应该会看到类似以下的结果:

idnameagegrade
1张三15初三
2李四16高一
3王五17高二

注意事项

  • 安全性:虽然创建了一个允许从任意IP地址访问的用户,但在生产环境中,建议限制访问范围,只允许特定的IP地址访问。例如,如果你知道Windows客户端的固定IP地址,可以将其替换为具体的IP地址,而不是使用%

    CREATE USER 'win_root'@'192.168.1.100' IDENTIFIED BY '123456';
    
  • 防火墙配置:确保防火墙规则只允许信任的IP地址访问MySQL/MariaDB端口。你可以使用ufw或其他防火墙工具来配置更严格的规则。

  • SSL/TLS加密:在生产环境中,建议启用SSL/TLS加密,以保护数据传输的安全性。你可以参考MySQL/MariaDB的官方文档来配置SSL/TLS。

  • 定期备份:定期备份数据库,以防止数据丢失。你可以使用mysqldump工具来创建备份。

  • 日志监控:启用日志记录功能,监控数据库的访问和操作情况。你可以通过配置general_logslow_query_log来记录详细的日志信息。



http://www.niftyadmin.cn/n/5795676.html

相关文章

Webpack学习笔记(4)

1.缓存 可以通过命中缓存降低网络流量&#xff0c;是网站加站速度更快。 然而在部署新版本时&#xff0c;不更改资源的文件名&#xff0c;浏览器可能认为你没有更新&#xff0c;所以会使用缓存版本。 由于缓存存在&#xff0c;获取新的代码成为问题。 接下来将配置webpack使…

idea部署maven项目步骤(图+文)

博主介绍&#xff1a;专注于Java&#xff08;springboot ssm 等开发框架&#xff09; vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

Java模拟多个Mqtt客户端连接Mqtt Broker

上一次我们介绍了Java模拟单个Mqtt客户端的场景&#xff0c;但是在实际的业务场景中&#xff0c;可能需要我们模拟多个Mqtt客户端&#xff0c;比如&#xff1a;我们要对云平台的连接和设备上下行做压测。 Java模拟多个Mqtt客户端基本流程 引入Paho MQTT客户端库 <depende…

从DINO到DINOv2——自监督视觉Transformer的升级改进之路(基于ViT)

前言 之所以关注到DINOV2&#xff0c;原因在于我解读多个具身机器人模型时——发现他们的视觉基座都用的DINOV2&#xff0c;比如 rekepOpen-TeleVisionOpenVLACogACTOKAMI 不过&#xff0c;实话讲&#xff0c;DINO论文的可读性是真的不高&#xff0c;使得本次解读不易..总之…

Everything实现,快速搜索文件

最近编写NTFS文件实时搜索工具, 类似 Everything 这样, 翻阅了很多博客, 结果大致如下: 1.分析比较肤浅, 采用USN日志枚举来获取文件记录 速度一言难尽, 因为日志枚举的是全盘所有文件的所有日志, 记录比文件记录还多, 速度当然很慢, 还有的甚至于是 使用 DeviceIoControl 函数…

Golang学习历程【第四篇 运算符流程控制】

Golang学习历程【第四篇 运算符&流程控制】 1. 运算符1.1 算术运算符1.2 关系运算符1.3 逻辑运算符1.4 赋值运算符1.5 其他运算符 2. 二进制运算3. 流程控制3.1 条件表达式if3.2 for循环3.3 for range(键值循环)3.4 switch...case3.5 break,continue,goto 1. 运算符 1.1 算…

在uniapp Vue3版本中如何解决webH5网页浏览器跨域的问题

问题复现 uniapp项目在浏览器运行&#xff0c;有可能调用某些接口会出现跨域问题&#xff0c;报错如下图所示&#xff1a; 什么是跨域&#xff1f; 存在跨域问题的原因是因为浏览器的同源策略&#xff0c;也就是说前端无法直接发起跨域请求。同源策略是一个基础的安全策略&a…

应急靶场(2):Windows Server 2022 - Web1

目录 一、攻击者的shell密码 二、攻击者的IP地址 三、攻击者的隐藏账户名称 四、攻击者挖矿程序的矿池域名(仅域名) 五、有实力的可以尝试着修复漏洞 下载好靶场&#xff08;前来挑战&#xff01;应急响应靶机训练-Web1&#xff09;并搭建好环境&#xff0c;无需密码直接…