Linux MySQL 远程访问详解

一、环境搭建

在搭建环境之前,我们需要确认一下两个问题:

1. MySQL服务是否开启了远程访问

默认情况下,MySQL只允许本机访问,需要在 MySQL 配置文件 “my.cnf” 中修改如下:

[mysqld]
bind-address = 0.0.0.0

2. 是否设置了防火墙规则,允许端口通过

因为 MySQL 默认端口是 3306,需要在服务器的防火墙中添加规则,比如我们可以使用以下命令添加规则:

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

二、用户授权

在允许 MySQL 远程访问之前,我们需要先为远程访问用户授权。

首先登录 MySQL,执行以下命令:

mysql -u root -p

然后执行以下 SQL 语句,创建一个新的用户(以 user1 为例)并授权访问指定数据库:

CREATE USER 'user1'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'user1'@'%';
FLUSH PRIVILEGES;

上述命令创建了一个用户 ‘user1’,允许他从任意 IP 地址访问数据库 ‘database_name’。

三、使用命令行连接远程 MySQL

在本地机器上使用命令行连接远程 MySQL 非常简单,执行以下命令即可:

mysql -u user1 -h your_remote_mysql_host -p

其中 “user1″ 是之前创建的用户,”your_remote_mysql_host” 是远程 MySQL 主机的 IP 地址或域名,如果 MySQL 服务已经开启了默认端口(3306),就不需要再指定 “-P” 参数了。

四、使用 Python 连接远程 MySQL

Python 是一种广泛使用的编程语言,下面介绍如何使用 Python 代码连接远程 MySQL。

首先,我们需要安装 “pymysql” 库,可以使用以下命令进行安装:

pip install pymysql

然后,下面的代码展示了如何使用 Python 连接远程 MySQL:

import pymysql

# 连接远程 MySQL
conn = pymysql.connect(
    host='your_remote_mysql_host',
    port=3306,
    user='user1',
    password='password',
    db='database_name',
    charset='utf8mb4')

# 创建游标
cursor = conn.cursor()

# 查询数据
sql = "SELECT * FROM table_name"
cursor.execute(sql)
result = cursor.fetchall()

# 打印结果
print(result)

# 关闭游标和连接
cursor.close()
conn.close()

上述代码中,”your_remote_mysql_host” 是远程 MySQL 主机的 IP 地址或域名,”user1″ 和 “password” 分别是之前创建的用户和密码,”database_name” 是指定的数据库名。在这个示例中,我们查询了数据表 “table_name” 的所有数据,并将结果打印出来。

五、使用 PHP 连接远程 MySQL

PHP 是一种流行的服务器端编程语言,在连接远程 MySQL 时可以使用 PHP 的 PDO(PHP Data Objects)扩展。

下面是一个简单的 PHP 代码示例:

<?php
// 连接远程 MySQL
$dsn = 'mysql:host=your_remote_mysql_host;dbname=database_name;charset=utf8mb4';
$username = 'user1';
$password = 'password';

$dbh = new PDO($dsn, $username, $password);

// 查询数据
$stmt = $dbh->prepare("SELECT * FROM table_name");
$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 打印结果
print_r($result);

// 关闭连接
$dbh = null;
?>

在上述代码中,”your_remote_mysql_host” 是远程 MySQL 主机的 IP 地址或域名,”user1″ 和 “password” 分别是之前创建的用户和密码,”database_name” 是指定的数据库名。在这个示例中,我们查询了数据表 “table_name” 的所有数据,并将结果打印出来。

六、总结

本文介绍了如何搭建 Linux MySQL 远程访问环境、为远程访问用户授权、以及如何使用命令行、Python 和 PHP 连接远程 MySQL 数据库。

原创文章,作者:VTFOW,如若转载,请注明出处:https://www.506064.com/n/332060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
VTFOWVTFOW
上一篇 2025-01-20 14:11
下一篇 2025-01-20 14:11

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • MySQL bigint与long的区别

    本文将从数据类型定义、存储空间、数据范围、计算效率、应用场景五个方面详细阐述MySQL bigint与long的区别。 一、数据类型定义 bigint在MySQL中是一种有符号的整…

    编程 2025-04-28
  • MySQL左连接索引不生效问题解决

    在MySQL数据库中,经常会使用左连接查询操作,但是左连接查询中索引不生效的情况也比较常见。本文将从多个方面探讨MySQL左连接索引不生效问题,并给出相应的解决方法。 一、索引的作…

    编程 2025-04-28
  • CentOS 7在线安装MySQL 8

    在本文中,我们将介绍如何在CentOS 7操作系统中在线安装MySQL 8。我们会从安装环境的准备开始,到安装MySQL 8的过程进行详细的阐述。 一、环境准备 在进行MySQL …

    编程 2025-04-27
  • 如何在Linux中添加用户并修改配置文件

    本文将从多个方面详细介绍在Linux系统下如何添加新用户并修改配置文件 一、添加新用户 在Linux系统下创建新用户非常简单,只需使用adduser命令即可。使用以下命令添加新用户…

    编程 2025-04-27
  • 如何使用MySQL字段去重

    本文将从多个方面为您详细介绍如何使用MySQL字段去重并给出相应的代码示例。 一、SELECT DISTINCT语句去重 MySQL提供了SELECT DISTINCT语句,通过在…

    编程 2025-04-27
  • MySQL正则表达式替换

    MySQL正则表达式替换是指通过正则表达式对MySQL中的字符串进行替换。在文本处理方面,正则表达式是一种强大的工具,可以方便快捷地进行字符串处理和匹配。在MySQL中,可以使用正…

    编程 2025-04-27
  • 如何解决linux jar包 invalid or corrupt jarfile问题

    对于许多开发人员和系统管理员在Linux环境下使用Java开发过程中遇到的一个常见的问题是 invalid or corrupt jarfile(无效或损坏的jar文件)错误。当您…

    编程 2025-04-27

发表回复

登录后才能评论