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

打印 上一主题 下一主题

主题 824|帖子 824|积分 2472

从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]部分,并添加或修改以下行:
  1. bind-address = 0.0.0.0
复制代码
这将使MySQL/MariaDB监听全部网络接口,而不但仅是localhost。
重启MySQL/MariaDB服务

生存配置文件后,重启MySQL/MariaDB服务以应用更改:
  1. sudo systemctl restart mysql
  2. # 或者对于MariaDB:
  3. sudo systemctl restart mariadb
复制代码
确保防火墙允许MySQL/MariaDB端口

确保你的防火墙规则允许外部访问MySQL/MariaDB的默认端口(3306)。你可以使用ufw来管理防火墙规则:
  1. sudo ufw allow 3306/tcp
复制代码
创建远程访问用户

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

登录到MySQL/MariaDB:
  1. mysql -u root -p
复制代码
创建一个名为win_root的用户,允许从任意IP地点访问:
  1. CREATE USER 'win_root'@'%' IDENTIFIED BY '123456';
复制代码
查看用户表

你可以查看当前的用户及其允许毗连的主机:
  1. USE mysql;
  2. SELECT user, host FROM user;
复制代码
你应该能看到win_root用户被设置为可以从任意IP地点访问。
授予用户权限

授予win_root用户全部权限,并允许其授予权限给其他用户:
  1. GRANT ALL PRIVILEGES ON *.* TO 'win_root'@'%' WITH GRANT OPTION;
复制代码
革新权限以使更改见效:
  1. FLUSH PRIVILEGES;
复制代码
测试远程毗连

查抄网络连通性

确保Linux服务器和Windows客户端之间的网络是连通的。你可以使用ping命令来测试:
在Windows上打开命令提示符,输入:
  1. ping <Linux服务器的IP地址>
复制代码
如果可以或许乐成Ping通,说明网络毗连正常。
使用图形化工具毗连

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


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

创建学生表

假设你想创建一个简单的students表,可以在MySQL/MariaDB中执行以下SQL语句:
  1. CREATE DATABASE school;
  2. USE school;
  3. CREATE TABLE students (
  4.     id INT AUTO_INCREMENT PRIMARY KEY,
  5.     name VARCHAR(50) NOT NULL,
  6.     age INT NOT NULL,
  7.     grade VARCHAR(10)
  8. );
复制代码
插入数据

插入一些示例数据:
  1. INSERT INTO students (name, age, grade) VALUES
  2. ('张三', 15, '初三'),
  3. ('李四', 16, '高一'),
  4. ('王五', 17, '高二');
复制代码
查询数据

查询表中的全部记载:
  1. SELECT * FROM students;
复制代码
你应该会看到类似以下的效果:
idnameagegrade1张三15初三2李四16高一3王五17高二 留意事项



  • 安全性:虽然创建了一个允许从任意IP地点访问的用户,但在生产环境中,建议限定访问范围,只允许特定的IP地点访问。例如,如果你知道Windows客户端的固定IP地点,可以将其更换为详细的IP地点,而不是使用%。
    1. 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_log和slow_query_log来记载详细的日志信息。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表