首页 > 数据库 >linux中mysql开启远程ssh连接

linux中mysql开启远程ssh连接

时间:2024-08-12 17:54:14浏览次数:14  
标签:linux sudo -- mysql ssh MySQL root 远程

步骤 1:配置 MySQL 允许远程连接

1.1 修改 MySQL 配置文件

首先,你需要修改 MySQL 的配置文件(my.cnfmysqld.cnf),以允许 MySQL 监听所有网络接口,而不仅仅是本地主机。

打开 MySQL 的配置文件,通常在 /etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf,或者在 CentOS/RHEL 上可能位于 /etc/my.cnf

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

在文件中,找到以下行:

bind-address = 127.0.0.1

将其修改为:

bind-address = 0.0.0.0

或者,你可以注释掉这一行(在前面添加 #)以让 MySQL 监听所有 IP 地址:

#bind-address = 127.0.0.1

保存文件并退出编辑器。

1.2 重启 MySQL 服务

修改配置文件后,需要重启 MySQL 服务使更改生效。

sudo systemctl restart mysql

或者:

sudo service mysql restart

步骤 2:配置 MySQL 用户权限

2.1 登录 MySQL

使用 root 用户或具有足够权限的用户登录 MySQL。

mysql -u root -p

2.2 授予远程访问权限

你需要为希望远程访问 MySQL 的用户授予权限。如果你想允许 root 用户从任何主机连接(虽然这不推荐),可以运行以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;

% 是一个通配符,表示任何远程主机。'your_password' 是你为 root 用户设置的密码。

如果你只希望特定的 IP 地址或域名可以访问,例如 192.168.1.100,可以使用以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY 'your_password' WITH GRANT OPTION;

2.3 刷新权限

执行以下命令使更改生效:

FLUSH PRIVILEGES;

2.4 退出 MySQL

exit;

步骤 3:配置防火墙允许 MySQL 端口

确保防火墙允许 MySQL 通过默认端口(3306)进行连接。

3.1 使用 ufw(适用于 Ubuntu)

如果你使用的是 ufw 作为防火墙:

sudo ufw allow 3306 sudo ufw reload

3.2 使用 firewalld(适用于 CentOS/RHEL)

如果你使用的是 firewalld

sudo firewall-cmd --permanent --add-service=mysql sudo firewall-cmd --reload

或者直接使用端口号:

sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload

步骤 4:测试远程连接

现在,你可以从远程主机尝试连接到 MySQL 服务器。例如,使用以下命令在另一台 Linux 主机上测试:

mysql -u root -p -h your_server_ip

your_server_ip 是你运行 MySQL 服务器的机器的 IP 地址。

注意事项

  • 安全性:将 root 用户设置为可以远程访问并不安全。通常建议创建一个单独的用户并为其分配有限的权限。
  • SSL 连接:为确保连接的安全性,建议使用 SSL 加密远程连接。

通过上述步骤,你可以在 Linux 上成功启用 MySQL 的远程连接。

标签:linux,sudo,--,mysql,ssh,MySQL,root,远程
From: https://blog.csdn.net/qq_27656927/article/details/141138246

相关文章

  • 【MySQL核心】数据恢复-批量修复 ibd 文件实战-拯救即将跑路的你
    简介本文章主要讲解MySQL异常宕机等意外情况下导致ibd文件损坏,配置mysql强制恢复(innodb_force_recovery)1-6级仍然无法启动的情况。下面是恢复整个实例的所有流程和思路。这里恢复的实例是mysql5.6的整个流程,5.7和5.6类似,8.0可以直接用ibd2sql进行坏表的恢......
  • Linux操作系统云主机中buffer和cache占用内存怎么办?
    问题描述系统长期运行后,free命令查看系统内存,发现剩余内存不足,大部分是buffer和cache。问题分析在Linux的内存管理中,buffer是Linux内存中的Buffercache。cache是Linux内存中的Pagecache。Buffercache:主要是当系统对块设备进行读写的时候,对块进行数据缓存的系统来使用,即......
  • Linux中套接字可读|可写--SO_RCVLOWAT和SO_SNDLOWAT
    目录SO_RCVLOWAT(接收低水位标记)SO_SNDLOWAT(发送低水位标记)注意事项在GNULinux中,SO_RCVLOWAT和SO_SNDLOWAT是用于设置套接字选项的两个标志,分别用于设置接收和发送低水位标记。这些选项可以帮助应用程序控制网络通信的流量控制。SO_RCVLOWAT(接收低水位标记)......
  • 【Linux学习】CentOS7配置
    1、CentOS设置打开终端快捷键应用程序(Applications)>系统工具(SystemTools)>设置(Settings)>设备(Devices)>Keyboard拉到页面最底下,点击加号添加快捷键设置快捷键名称、命令(/usr/bin/gnome-terminal)以及快捷键,然后点击Add即可2、设置CentOS终端打开的默认字体......
  • 【Linux学习】Ubuntu配置
    1、如何在Ubuntu18.04上面安装VMware-tools实现屏幕适配,以及文件拖拽、复制、粘贴功能先设置以下:此处一定要设置路径保证客户机隔离选项两个勾选将主机桌面文件夹设置为共享 点击VMware顶部菜单,“虚拟机”>“安装VMwareTools”,桌面会出现光盘图标“VMwareTools”......
  • 4.linux系统下目录文件
    1.系统目录和文件目录/文件作用/bin存放用户可执行的二进制文件,通常是系统启动和基本维护所需的命令,如ls、cat等。/boot包含系统引导所需的文件,包括内核文件(vmlinuz)和引导加载程序(如GRUB)。/dev包含与设备相关的文件,Linux将设备映射成文件,这些文件代表系统中的各......
  • Linux命令总结
    linux命令大全常用快捷命令 停止进程:ctrl+c 清屏:ctrl+l或者clear 彻底清屏:reset 提示和补全功能:tab 切换至以前执行过的命令:↑和↓ CentOS切换至命令行界面:ctrl+alt+F2 CentOS切换至图形界面:ctrl+alt+F1Vim快捷操作 跳到末尾:shift+g 跳到开头:g主机......
  • linux反向代理原理:帮助用户更好地优化网络架构
    Linux反向代理原理详解反向代理是一种在网络架构中常用的技术,尤其在Linux环境下被广泛应用。它可以帮助实现负载均衡、安全防护和请求缓存等功能。本文将深入探讨Linux反向代理的原理、工作机制以及其应用场景。1.什么是反向代理反向代理是指代理服务器接收客户端的请求,......
  • Linux C++ 开发3 - 你写的Hello world经过哪些过程才被计算机理解和执行?
    1.C/C++的编译过程1.1.预处理1.2.编译1.3.汇编1.3.1.汇编过程1.3.2.目标文件1.4.链接2.编译过程示例2.1.源代码2.2.逐步编译程序2.2.1.编译指令2.2.2.链接报错问题2.3.单步编译3.gcc/g++与gpp、as、ld的关系3.1.关系图3.2.示例演示......
  • MySQL
    1、初识MySQLJavaEE:企业级Java开发Web前端(页面:展示:数据)后台(连接点:连接数据库JDBC,连接前端(控制视图跳转,给前端传递数据))数据库(存数据,Txt,Excel,Word)只会写代码,学好数据库,基本混饭吃:操作系统,数据结构与算法!当一个不错的程序猿!离散数学,数字电路,体系结构,编译原理。+实战经验......