資料庫遠程連接許可權語句中用戶名後的@"%"是什麼意思,資料庫遠程訪問許可權

本文目錄一覽:

如何打開MySQL中root賬戶的遠程登錄

1、登錄到MySQL中,為root進行遠程訪問的授權,執行下面的命令:

mysql GRANT ALL PRIVILEGES ON *.* TO root@”%” IDENTIFIED BY “root”;

mysql flush privileges;

第一句中”%”表示任何主機都可以遠程登錄到該伺服器上訪問。如果要限制只有某台機器可以訪問,將其換成相應的IP即可,如:

GRANT ALL PRIVILEGES ON *.* TO root@”172.168.193.25″ IDENTIFIED BY “root”;

第二句表示從mysql資料庫的grant表中重新載入許可權數據。因為MySQL把許可權都放在了cache中,所以在做完更改後需要重新載入。

或限制或個IP訪問:

GRANT ALL ON samp_db.* TO boris@192.168.128.3 IDENTIFIED BY “ruby”

GRANT ALL ON samp_db.* TO fred@192.168.128.% IDENTIFIED BY “quartz”

GRANT ALL ON samp_db.* TO rex@192.168.128.0/17 IDENTIFIED BY “ruby”

第一個例子指出用戶能從其連接的特定主機,第二個指定對於C類子網192.168.128的IP模式,而第三條語句中,192.168.128.0/17指定一個17位網路號並匹配具有192.168.128頭17位的IP地址

2、修改/etc/mysql/my.cnf,需要root用戶許可權。找到文件中的:

[ruby] view plaincopy

bind-address = 127.0.0.1

將其注釋掉,保存。

3、重新啟動MySQL伺服器。執行下面的幾條命令即可:

# /usr/bin/mysqladmin -u root -p shutdown

# /usr/bin/mysqld_safe

如果mysqladmin和mysql_safe不在/usr/bin目錄中,可以通過whereis命令查找,例如:

# whereis mysqladmin

mysqladmin: /usr/bin/mysqladmin /usr/share/man/man1/mysqladmin.1.gz

執行完上面的三步後,就可以通過遠程機器連接了資料庫了。

Mysql無法遠程連接,要如何解決

原因是MySQL默認不支持遠程連接,(那麼phpMyAdmin為什麼可以連接呢?那是因為phpMyadmin的環境是上傳到伺服器的,其本身訪問資料庫是相當於本機localhost訪問的),如果想遠程訪問,可以使用下面的方法來解決。

遠程連接mysql資料庫時出現如下提示信息:「MYSQL CONNECT ERROR – 1130:Host 』202.43.**.**』 is not allowed to connect to this MySQL server」

在創建mysql賬戶時,限制連接賬戶遠程登錄。也就是說,除了當前mysql所在的安裝伺服器外,其他的ip(主機)都是不允許訪問的,即使你的用戶名和密碼是正確的。這時候就要修改用戶的訪問許可權。

首先是用root用戶登錄到mysql的安裝主機,然後進入mysql:

mysql -u root -p

root是mysql的最高授權用戶名,這時會提示你輸入密碼,正確輸入密碼後回車,進入mysql。回車

然後輸入如下命令:

grant all on 資料庫名.* to 『資料庫賬戶名』@』%』 identified by 『密碼』 with grant option;

回車

flush privileges;

回車

注意:上面的單引號不能省,資料庫名.* 表示要開放的資料庫下所有表,如果該連接的所有資料庫都要開放,可以用 *.* 代替。

『資料庫賬戶名』@』%』 這裡表示要開放的賬戶,百分號表示在任何主機都允許訪問。

如果以上兩步均顯示 「Query OK, 0 rows affected (0.00 sec)」,那麼說明命令已經成功執行,現在就可以遠程連接你的mysql資料庫了。

(1).如果想賦予所有操作的許可權

grant all on … to 用戶名……

(2).如果想賦予操作所有資料庫的所有表的許可權

grant … on *.* to 用戶名……

(3).如果想賦予某個資料庫的所有表

grant … on 資料庫名稱.’*’ to 用戶名…… ([ * ]兩邊一定要加單引號)

(4).如果想賦予某個資料庫的某張表

grant … on 資料庫名稱.表名 to 用戶名……

(5).如果想任何客戶端都能通過該用戶名遠程訪問

grant … on … to 用戶名@% ……. (要把IP地址改成[ % ])

(6).改完了以後一定要重新啟動MySQL服務

用戶會存到Mysql伺服器上的user表中,所以下面的兩種方法都可以解決這個問題:

1。 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 “mysql” 資料庫里的 “user” 表裡的 “host” 項,從”localhost”改稱”%”

mysql -u root -p

mysqluse mysql;

mysqlupdate user set host = 』%』 where user = 』root』;mysqlselect host, user from user;

mysqlflush privileges;

2. 授權法。例如,你想myuser使用mypassword從任何主機連接到mysql伺服器的話。

GRANT ALL PRIVILEGES ON *.* TO 』myuser』@』%』 IDENTIFIED BY 』mypassword』 WITH GRANT OPTION;

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

GRANT ALL PRIVILEGES ON *.* TO 』myuser』@』192.168.1.3』 IDENTIFIED BY 』mypassword』 WITH GRANT OPTION;

如果還是無法遠程我們可參考

1、Mysql的埠是否正確,通過netstat -ntlp查看埠佔用情況,一般情況下埠是3306。在用工具連接MySQl是要用到埠。例如My AdminMy Query BrowserMySQl Front等。

2、檢查用戶許可權是否正確。

例如:用戶Tester,user表裡有兩條記錄:host分別為localhost和%(為了安全,%可以換成你需要外部連接的IP)。

3、查看/etc/my.cnf中,skip-networking 是否已被注掉,需要注掉。

報錯:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.51.112’ (111)

4、查看iptables是否停掉,沒關的情況下,無法連接。

通過:service iptables stop臨時關閉。

報錯:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.51.112’ (113)

另外,我們還可以通過配置http通道來使Navicat遠程連接到資料庫,這樣做的好處是不需要前面繁雜的配置。在主機名IP地址那裡填寫LocalHost

用戶名與密碼一欄則填寫你所在的資料庫用戶名與密碼。

這時候還不能連接資料庫的,需要通過Http通道的形式進行資料庫連接。

點擊連接屬性標籤欄中的Http,如下圖所示:

勾選使用Http通道後,在通道地址一欄輸入你的網址與後台文件地址。

mysql中用戶許可權的%什麼意思?

「%」字元起通配符作用,與LIKE模式匹配的含義相同。在上述語句中,它意味著「任何主機」,所以user和user@%等價。這是建立用戶最簡單的方法,但也是最不安全的。

怎麼遠程連接別人mysql資料庫

第一中方法:比較詳細

以下的文章主要介紹的是MySQL 資料庫開啟遠程連接的時機操作流程,其實開啟MySQL 資料庫遠程連接的實際操作步驟並不難,知識方法對錯而已,今天我們要向大家描述的是MySQL 資料庫開啟遠程連接的時機操作流程。

1、d:\MySQL\bin\MySQL -h localhost -u root

這樣應該可以進入MySQL伺服器

複製代碼 代碼如下:

MySQLupdate user set host = ‘%’ where user = ‘root’;

MySQLselect host, user from user;

2、MySQLGRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION

予任何主機訪問數據的許可權

3、MySQLFLUSH PRIVILEGES

修改生效

4、MySQLEXIT

退出MySQL伺服器

這樣就可以在其它任何的主機上以root身份登錄啦!

以上的相關內容就是對MySQL 資料庫開啟遠程連接的介紹,望你能有所收穫。

第二種方法:

1、在控制台執行 mysql -u root -p mysql,系統提示輸入資料庫root用戶的密碼,輸入完成後即進入mysql控制台,這個命令的第一個mysql是執行命令,第二個mysql是系統數據名稱,不一樣的。

2、在mysql控制台執行 GRANT ALL PRIVILEGES ON *.* TO 『root’@’%’ IDENTIFIED BY 『MyPassword’ WITH GRANT OPTION;

3、在mysql控制台執行命令中的 『root’@’%’ 可以這樣理解: root是用戶名,%是主機名或IP地址,這裡的%代表任意主機或IP地址,你也可替換成任意其它用戶名或指定唯一的IP地址;’MyPassword’是給授權用戶指定的登錄資料庫的密碼;另外需要說明一點的是我這裡的都是授權所有許可權,可以指定部分許可權,GRANT具體操作詳情見:

4、不放心的話可以在mysql控制台執行 select host, user from user; 檢查一下用戶表裡的內容

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/154576.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-16 14:13
下一篇 2024-11-16 14:13

相關推薦

  • Python 常用資料庫有哪些?

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

    編程 2025-04-29
  • Python3支持多行語句

    Python3是一種高級編程語言,開發人員可以輕鬆地使用該語言編寫簡單到複雜的代碼。其中Python3支持多行語句,方便開發人員編寫複雜的代碼,提高代碼的可讀性和可維護性。 一、使…

    編程 2025-04-29
  • openeuler安裝資料庫方案

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

    編程 2025-04-29
  • Python for循環語句列印九九乘法表

    本篇文章將詳細介紹如何使用Python的for循環語句列印九九乘法表。列印九九乘法表是我們初學Python時經常練習的一項基礎操作,也是編寫Python程序的基本能力之一。 1、基…

    編程 2025-04-29
  • Python中while語句和for語句的區別

    while語句和for語句是Python中兩種常見的循環語句,它們都可以用於重複執行一段代碼。然而,它們的語法和適用場景有所不同。本文將從多個方面詳細闡述Python中while語…

    編程 2025-04-29
  • Python中自定義函數必須有return語句

    自定義函數是Python中最常見、最基本也是最重要的語句之一。在Python中,自定義函數必須有明確的返回值,即必須要有return語句。本篇文章將從以下幾個方面對此進行詳細闡述。…

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

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

    編程 2025-04-29
  • Python中升序排列的if語句

    本文將為大家介紹Python中升序排列的if語句。首先,我們來看一下如何實現。 if a > b: a, b = b, a if b > c: b, c = c, b …

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

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

    編程 2025-04-28
  • Python怎麼導入資料庫

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

    編程 2025-04-28

發表回復

登錄後才能評論