干翻全岛蛙蛙 发表于 2024-12-20 16:51:38

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

从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),找到部分,并添加或修改以下行:
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;
你应该会看到类似以下的效果:
idnameagegrade1张三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_log和slow_query_log来记载详细的日志信息。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 从Windows远程访问Linux上的数据库