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/zh-hant/n/332060.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VTFOW的頭像VTFOW
上一篇 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

發表回復

登錄後才能評論