用ip訪問mysql數據庫,mysql指定ip訪問指定數據庫

本文目錄一覽:

通過IP訪問mysql數據庫,這樣可以嗎

可以使用命令遠程連接mysql數據庫(前提是mysql裡面用戶名和登錄網段已經經過了授權)

mysql -u用戶名 -p密碼 -h 數據庫IP

mysql連接時用的IP地址是不是電腦本機上的IP地址呢!

是root用戶的話,IP就是localhost或127.0.0.1,只是代表使用本機,不是代表本機IP地址,操作方法如下:

1、首先,利用Navicat創建一個數據庫和表,數據庫名為testdb,表為userinfo,並添加一條新記錄。

2、用如下的數據庫連接字符串訪問數據庫時,是沒有問題的。Driver = MySQL ODBC 5.1 Driver; Server = localhost; Port=3306; DATABASE = testdb; user = root; password = 123456。

3、其中,Server是數據庫所在主機IP地址,Prot是連接端口;user和password則為連接數據庫的用戶名和密碼,使用Select * from userinfo 可以正確獲取到數據。

4、但是當把localhost換成實際的IP地址的時候,就報錯了,說明這個數據庫testdb是默認沒開啟訪問權限的,默認情況下只允許localhost和127.0.0.1訪問。

5、更新root賬戶的權限。打開mysql命令行窗口,輸入grant all privileges on *.* to root@”%” identified by ‘abc’ with grant option;  flush privileges。

6、創建一個新賬戶,如guest,並將可被訪問的主機定義為%,即所有主機都可訪問該賬戶。測試,沒有問題。

怎麼設置才能讓外網ip可以訪問mysql數據庫?

1、首先檢查mysql所在服務器的防火牆,如果限制了外網對3306端口的連接,那麼放開限制

Linux服務器中執行

iptables -L 可以查看當前的防火牆規則

iptables -F 可以清空所有防火牆規則

2、確保mysql的監聽地址是0.0.0.0

監聽地址是0.0.0.0 ,表示該mysql允許所有IP地址進行連接,這是允許遠程連接的基礎

監聽地址是127.0.0.1,則代表該mysql只允許所在服務器本機連接,外網是無法連接的

怎麼知道mysql的監聽地址是多少

Linux服務器中執行如下命令可以查看: netstat -nutlp|grep mysql

3、添加遠程連接mysql的賬號

此步驟是必須要操作的,mysql本身的用戶只能在本機上連接數據庫,外網連接的話,需要先添加遠程用戶並授權。

在mysql命令行模式下,或者phpmyadmin中執行sql語句添加遠程連接用戶

grant all on *.* to root@’%’ identified by ‘123456’;

flush privileges;

命令解釋:

*.* 第一個*表示庫,第二個*表示表; *.*對全部數據庫的全部表授權,so.ok 表示只對so這個庫中的ok表授權

root 表示要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的

‘%’ 表示允許遠程連接的IP地址,%代表允許所有IP連接

只允許某個IP遠程連接,可以寫成’123.123.123.123′

只允許123.123.123.*這個網段遠程連接,可以寫成 ‘123.123.123.%’ ‘123456’ 是設置授權用戶的連接密碼

flush privileges; 代表立即刷新權限表,使添加的用戶生效

上面三步都設置好了,就可以再次嘗試遠程連接mysql了。

怎麼設置才能讓外網ip可以訪問mysql數據庫

整體簡介:

為了安全起見默認情況下Mysql數據庫的監聽地址是127.0.0.1,就是指本機下的程序才能訪問。

監聽地址是0.0.0.0 ,表示該mysql允許所有IP地址進行連接,這是允許遠程連接的基礎

監聽地址是127.0.0.1,則代表該mysql只允許所在服務器本機連接,外網是無法連接的

所需工具原料:

Linux,apache,php,mysql

解決方法:

1. 用命令vi 編輯/etc/mysql/my.cnf 如圖:

在[mysqld]節中增加下面一行:

2. bind-address=0.0.0.0  #全部地址或者指定的ip地址如圖所示

3. 重啟服務

service mysqld restart

4. Linux服務器中執行如下命令可以查看:    netstat -nutlp|grep mysql(只查看mysql的監聽), netstat -tln(查看所有的監聽)是否成功。

如何遠程訪問MySQL數據庫詳解

一、連接遠程數據庫:

1、顯示密碼

如:MySQL

連接遠程數據庫(192.168.5.116),端口“3306”,用戶名為“root”,密碼“123456”

C:/mysql

-h

192.168.5.116

-P

3306

-u

root

-p123456

2、隱藏密碼

如:MySQL

連接本地數據庫,用戶名為“root”,

C:/mysql

-h

localhost

-u

root

-p

Enter

password:

二、配置mysql允許遠程鏈接

默認情況下,mysql帳號不允許從遠程登陸,只能在localhost登錄。本文提供了二種方法設置mysql可以通過遠程主機進行連接。

一、改表法

在localhost登入mysql後,更改

“mysql”

數據庫里的

“user”

表裡的

“host”

項,將”localhost”改稱”%”

例如:

#mysql

-u

root

-p

Enter

password:

……

mysql

mysqlupdate

user

set

host

=

‘%’

where

user

=

‘root’;

mysqlselect

host,

user

from

user;

二、授權法

例如:

你想myuser使用mypassword(密碼)從任何主機連接到mysql服務器的話。

mysqlGRANT

ALL

PRIVILEGES

ON

*.*

TO

‘myuser’@’%’IDENTIFIED

BY

‘mypassword’

WITH

GRANT

OPTION;

如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務器,並使用mypassword作為密碼

mysqlGRANT

ALL

PRIVILEGES

ON

*.*

TO

‘myuser’@’192.168.1.3’IDENTIFIED

BY

‘mypassword’

WITH

GRANT

OPTION;

mysqlFLUSH

PRIVILEGES

使修改生效,就可以了

常見問題:

1、在採用法二授權法之後,無法在本地登錄mysql(如:#mysql

-u

root

-p

-h

192.168.5.116

Enter

password:

ERROR

1045

(28000):

Access

denied

for

user

‘root’@’loadb116’

(using

password:

YES)

上例中loadb116是主機名.

解決方法:

1、這時可以使用:mysql

-u

root

-p

登錄,進入到mysql後。

mysql

grant

all

privileges

on

*.*

to

‘root’@’loadb116’

identified

by

‘123456’

with

grant

option;

Query

OK,

rows

affected

(0.00

sec)

mysql

flush

privileges;

Query

OK,

rows

affected

(0.00

sec)

2、在本地使用ip地址登錄

#

mysql

-u

root

-p

-h

192.168.5.116

Enter

password:

Welcome

to

the

MySQL

monitor.

Commands

end

with

;

or

/g.

Your

MySQL

connection

id

is

60

Server

version:

5.1.45

MySQL

Community

Server

(GPL)

Type

‘help;’

or

‘/h’

for

help.

Type

‘/c’

to

clear

the

buffer.

mysql

原創文章,作者:GJYWD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/325156.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GJYWD的頭像GJYWD
上一篇 2025-01-13 13:23
下一篇 2025-01-13 13:23

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Centos7配置靜態ip

    本文將詳細闡述如何在Centos7系統中配置靜態ip。 一、查看網絡接口 在配置靜態ip之前,我們首先需要查看系統中的網絡接口,以確定我們需要配置的網卡是哪一個。 ifconfig…

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

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python檢測IP連通

    Python是一門強大的編程語言,常用於網絡開發、數據分析等領域。IP地址是網絡通信的基礎,在網絡通信中,有時需要檢測IP地址是否連通。下面將從多個方面介紹Python檢測IP連通…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28

發表回復

登錄後才能評論