从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;
你应该会看到类似以下的结果:
id | name | age | grade |
---|---|---|---|
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_log
和slow_query_log
来记录详细的日志信息。