欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL允許遠程連接的配置指南

 更新時間:2025年06月09日 11:15:31   作者:超級小忍  
MySQL 是一個廣泛使用的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在實際開發(fā)中,我們經(jīng)常需要從本地或外部服務(wù)器連接到 MySQL 數(shù)據(jù)庫,下面我們就來看看如何配置 MySQL 以允許遠程連接

前言

MySQL 是一個廣泛使用的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。在實際開發(fā)中,我們經(jīng)常需要從本地或外部服務(wù)器連接到 MySQL 數(shù)據(jù)庫。本文將詳細介紹如何配置 MySQL 以允許遠程連接。

準(zhǔn)備工作

服務(wù)器為 Linux

已安裝 MySQL 的服務(wù)器(本博客基于 MySQL 8.0)

擁有管理員權(quán)限的用戶

確保目標(biāo)客戶端可以通過網(wǎng)絡(luò)訪問 MySQL 服務(wù)器的 3306 端口

步驟一:修改 MySQL 配置文件

默認情況下,MySQL 只允許本地連接(localhost)。要開啟遠程連接,需修改其配置文件。

1. 找到配置文件

Linux 系統(tǒng)一般位于 /etc/mysql/mysql.conf.d/mysqld.cnf

或者使用命令查找:

mysql --help | grep "my.cnf"

2. 修改 bind-address

找到如下行:

bind-address = 127.0.0.1

將其改為:

[mysqld]
bind-address = 0.0.0.0

這表示監(jiān)聽所有 IP 地址上的連接請求。

注意:如果你使用的是云服務(wù)器(如阿里云、騰訊云),還需開放對應(yīng)的安全組規(guī)則。

步驟二:創(chuàng)建或授權(quán)遠程訪問用戶

1.登錄 MySQL:

mysql -u root -p

2. 創(chuàng)建新用戶并授權(quán)遠程訪問

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

‘remote_user’@‘%’ 表示任何 IP 都可以使用 remote_user 登錄。

若只允許特定 IP,可替換為 ‘remote_user’@‘192.168.1.100’。

3. (可選)修改已有用戶的權(quán)限

GRANT ALL PRIVILEGES ON *.* TO 'existing_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

步驟三:重啟 MySQL 服務(wù)

使配置生效,重啟 MySQL 服務(wù):

sudo systemctl restart mysql

安全建議

避免使用 root 用戶進行遠程連接

使用強密碼策略

在生產(chǎn)環(huán)境中限制訪問 IP 范圍

啟用 SSL 加密連接(高級用法)

測試遠程連接

使用客戶端工具(如 Navicat、DBeaver、MySQL Workbench 或命令行)嘗試連接:

mysql -h your_server_ip -u remote_user -p

如果提示連接成功,則說明配置已生效!

云服務(wù)器注意事項

如果使用的是云服務(wù)器,上面操作確保無誤之后還是不能遠程連接,請務(wù)必檢查:

安全組是否放行 3306 端口

是否關(guān)閉了防火墻(如 UFW、iptables)

是否綁定了公網(wǎng) IP(某些 VPC 環(huán)境需要注意)

方法補充

MySQL 設(shè)置允許遠程連接完整指南

1.基礎(chǔ)配置步驟(以MySQL 8.0為例)

修改MySQL綁定地址

默認情況下MySQL僅監(jiān)聽127.0.0.1,需改為0.0.0.0或服務(wù)器公網(wǎng)IP。

打開配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf  # Ubuntu/Debian
# 或
sudo nano /etc/my.cnf                          # CentOS/RHEL

找到 bind-address 并修改:

[mysqld]
bind-address = 0.0.0.0  # 允許所有IP訪問(生產(chǎn)環(huán)境慎用)
# 或指定特定IP
# bind-address = 192.168.1.100

重啟MySQL服務(wù):

sudo systemctl restart mysql    # systemd系統(tǒng)
# 或
sudo service mysql restart      # init.d系統(tǒng)

創(chuàng)建遠程訪問用戶

切勿直接使用root賬戶遠程連接!

登錄MySQL控制臺:

mysql -u root -p

創(chuàng)建專用遠程用戶:

-- MySQL 8.0+ 需指定加密插件
CREATE USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongPassw0rd!';

-- 授權(quán)所有數(shù)據(jù)庫(按需縮小權(quán)限)
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

關(guān)鍵參數(shù)說明:

  • 'remote_user'@'%':允許從任何IP連接(建議改為具體IP段如'192.168.1.%')
  • mysql_native_password:兼容舊客戶端的加密方式(8.0默認使用caching_sha2_password)

配置防火墻

開放MySQL默認端口3306:

# Ubuntu UFW
sudo ufw allow 3306/tcp

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

2.高級安全加固方案

限制訪問IP

通過MySQL用戶權(quán)限限制來源IP:

-- 僅允許192.168.1.0/24網(wǎng)段訪問
CREATE USER 'secure_user'@'192.168.1.%' IDENTIFIED BY 'Password123!';

使用SSH隧道

更安全的連接方式(無需開放3306端口):

ssh -L 3306:localhost:3306 user@mysql-server.com

客戶端連接本地127.0.0.1:3306即可穿透到遠程MySQL。

啟用SSL加密

檢查MySQL SSL支持:

SHOW VARIABLES LIKE '%ssl%';

強制用戶使用SSL連接:

ALTER USER 'remote_user'@'%' REQUIRE SSL;

客戶端連接時添加參數(shù):

mysql -u remote_user -p -h mysql-host --ssl-mode=REQUIRED

審計與監(jiān)控

啟用查詢?nèi)罩荆?/p>

[mysqld]
general_log = 1
general_log_file = /var/log/mysql/query.log

使用審計插件(企業(yè)版)或第三方工具如Percona Audit Plugin。

3.連接測試與故障排查

測試遠程連接

mysql -u remote_user -p -h mysql-server-ip --port=3306

常見錯誤解決方案

錯誤提示原因解決方案
ERROR 1130 (HY000)用戶權(quán)限不足檢查GRANT語句和用戶主機限制
ERROR 2003 (HY000)端口不通/防火墻攔截使用telnet mysql-host 3306測試
ERROR 1045 (28000)密碼錯誤重置密碼:ALTER USER ...
Public Key Retrieval is not allowed加密插件沖突添加連接參數(shù):--ssl-mode=DISABLED

診斷工具

檢查端口監(jiān)聽狀態(tài):

sudo netstat -tuln | grep 3306

查看實時連接:

SHOW PROCESSLIST;

到此這篇關(guān)于MySQL允許遠程連接的配置指南的文章就介紹到這了,更多相關(guān)MySQL允許遠程連接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 查看mysql語句運行時間的2種方法

    查看mysql語句運行時間的2種方法

    網(wǎng)站運行很慢的時候,我就特別起知道為什么這么慢,所以我查啊查,數(shù)據(jù)庫絕對是很重要的一部分,里面運行的sql是絕對不能放過的。平時做項目的時候,我也會注意sql語句的書寫,寫出一些高效的sql來,所以我會經(jīng)常測試自己寫的sql語句。我把我知道的二個方法,總結(jié)一下發(fā)出來
    2014-01-01
  • MySQL數(shù)據(jù)庫的索引原理與慢SQL優(yōu)化的5大原則

    MySQL數(shù)據(jù)庫的索引原理與慢SQL優(yōu)化的5大原則

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的索引原理與慢SQL優(yōu)化的5大原則,包括:建立索引的原則,慢查詢優(yōu)化基本步驟,慢查詢優(yōu)化案例,explain使用,需要的朋友可以參考下
    2023-02-02
  • Mysql中的觸發(fā)器定義及語法介紹

    Mysql中的觸發(fā)器定義及語法介紹

    MySQL?的觸發(fā)器和存儲過程一樣,都是嵌入到?MySQL?中的一段程序,是?MySQL?中管理數(shù)據(jù)的有力工具,本文給大家詳細介紹mysql觸發(fā)器的定義語法知識,感興趣的朋友一起看看吧
    2022-06-06
  • 關(guān)于SQL建表語句使用詳解

    關(guān)于SQL建表語句使用詳解

    在SQL數(shù)據(jù)庫設(shè)計中,創(chuàng)建表是基本操作,涉及定義表結(jié)構(gòu),包括列名、數(shù)據(jù)類型和約束等,本文詳細介紹建表語句,通過示例幫助理解,常見數(shù)據(jù)類型包括整數(shù)、浮點數(shù)、字符串、日期時間等,約束確保數(shù)據(jù)完整性,包括主鍵、唯一、非空、默認值、外鍵和檢查約束
    2024-10-10
  • MySQL三表聯(lián)合查詢操作舉例

    MySQL三表聯(lián)合查詢操作舉例

    在mysql查詢語句中,為了實現(xiàn)查詢到某些信息,我們會用到多表的聯(lián)合查詢,下面這篇文章主要給大家介紹了關(guān)于MySQL三表聯(lián)合查詢操作的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • MySQL死鎖檢查處理的正常方法

    MySQL死鎖檢查處理的正常方法

    這篇文章主要給大家介紹了關(guān)于MySQL死鎖檢查處理的正常方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • MySQL中用戶授權(quán)以及刪除授權(quán)的方法

    MySQL中用戶授權(quán)以及刪除授權(quán)的方法

    這篇文章主要介紹了MySQL中用戶授權(quán)以及刪除授權(quán)的方法的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • MySQL正則表達式入門教程

    MySQL正則表達式入門教程

    這篇文章主要介紹了MySQL正則表達式,一個簡單的MySQL正則表達式入門教程,需要的朋友可以參考下
    2014-04-04
  • 清理Mysql general_log的方法總結(jié)

    清理Mysql general_log的方法總結(jié)

    在本篇文章里小編給大家分享的是一篇關(guān)于清理Mysql general_log的相關(guān)知識點,需要的朋友們學(xué)習(xí)下。
    2019-10-10
  • MySQL中的SUM函數(shù)使用教程

    MySQL中的SUM函數(shù)使用教程

    這篇文章主要介紹了MySQL中的SUM函數(shù)使用教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05

最新評論