mysql資料庫授權主機名改了(mysql怎麼給資料庫改名)

本文目錄一覽:

如何開啟MySQL的遠程帳號

開啟 MySQL 的遠程登陸帳號有兩大步:

1、確定伺服器上的防火牆沒有阻止 3306 埠。

MySQL 默認的埠是 3306 ,需要確定防火牆沒有阻止 3306 埠,否則遠程是無法通過 3306 埠連接到 MySQL 的。

如果您在安裝 MySQL 時指定了其他埠,請在防火牆中開啟您指定的 MySQL 使用的埠號。

如果不知道怎樣設置您的伺服器上的防火牆,請向您的伺服器管理員諮詢。

2、增加允許遠程連接 MySQL 用戶並授權。

1)首先以 root 帳戶登陸 MySQL

在 Windows 主機中點擊開始菜單,運行,輸入「cmd」,進入控制台,MySQL 的 bin 目錄下,然後輸入下面的命令。

在 Linux 主機中在命令提示行下輸入下面的命令。

CODE: [COPY]

MySQL -uroot -p123456

123456 為 root 用戶的密碼。

2)創建遠程登陸用戶並授權

CODE: [COPY]

grant all PRIVILEGES on discuz.* to ted@’123.123.123.123′ identified by ‘123456’;

上面的語句表示將 discuz 資料庫的所有許可權授權給 ted 這個用戶,允許 ted 用戶在 123.123.123.123 這個 IP 進行遠程登陸,並設置 ted 用戶的密碼為 123456 。

下面逐一分析所有的參數:

all PRIVILEGES 表示賦予所有的許可權給指定用戶,這裡也可以替換為賦予某一具體的許可權,例如:select,insert,update,delete,create,drop 等,具體許可權間用「,」半形逗號分隔。

discuz.* 表示上面的許可權是針對於哪個表的,discuz 指的是資料庫,後面的 * 表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為「*.*」,對於某一資料庫的全部表授權為「資料庫名.*」,對於某一資料庫的某一表授 權為「資料庫名.表名」。

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

123.123.123.123 表示允許遠程連接的 IP 地址,如果想不限制鏈接的 IP 則設置為「%」即可。

123456 為用戶的密碼。

執行了上面的語句後,再執行下面的語句,方可立即生效。

CODE: [COPY]

flush privileges;

—————————————————————————————————————–

解決方法:

1、改表法:

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

x:\mysql -u root -pvmware

mysql use mysql;

mysql update user set host = 『%』 where user = 『root』;

mysql select host, user from user;

mysql flush privileges;

註:mysql flush privileges; 使修改生效。

2、授權法:

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

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

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

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

轉自:

——————————————————————————————————————————————————————————————–

二、問如何開啟MySQL的遠程連接

Q:

最近學習PHP,裝了個phpwind論壇和FTP流量插件,需要遠程連接MySQL資料庫.不知道如何打開本地伺服器的遠程連接.現在本地伺服器上的論壇和FTP流量插件都運行正常,在另一台伺服器上安裝插件,連不上資料庫.到PW官方求助沒人回貼.因此來這尋求幫助.

伺服器信息

PHP程式版本: 4.3.11

MySQL 版本: 4.1.10-nt

伺服器端信息: Microsoft-IIS/5.0

裝有phpMyAdmin

A1:

遠程連接到MySQL需要做的

1. 進入MySQL,創建一個新用戶xuys:

格式: grant 許可權 on 資料庫名.表名 用戶@登錄主機 identified by “用戶密碼”;

grant select,update,insert,delete on *.* to xuys@192.168.88.234 identified by “xuys1234”;

查看結果,執行:

use mysql;

select host,user,password from user;

可以看到在user表中已有剛才創建的xuys用戶,host欄位表示登錄的主機,其值可以用IP,也可用主機名,將host欄位的值改為%就表示在任何客戶端機器上能以xuys用戶登錄到MySQL伺服器,建議在開發時設為%.

update user set host = ‘%’ where user = ‘xuys’;

2.

./mysqladmin -u root -p pwd reload

./mysqladmin -u root -p pwd shutdown

3.

./mysqld_safe –user=root

記住: 對授權表的任何修改都需要重新reload,即執行第3步.

如果經過以上3個步驟還是無法從客戶端連接,請執行以下操作,在MySQL資料庫的db表中插入一條記錄:

use mysql;

insert into db values(‘192.168.88.234′,’%’,’xuys’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);

update db set host = ‘%’ where user = ‘xuys’;

重複執行上面的第2,3步.

A2:

Web與MySQL資料庫分離開來是一個不錯的選擇,避免因為大量的資料庫查詢佔用CPU而使Web資源不足,同時可以使Web伺服器的資源盡最大的提供瀏覽服務,而資料庫伺服器單獨的只處理資料庫事務.

我對這方面的原理不甚太十分了解,我的做法其實就是下面要說的,很簡單.大家有更好的經驗和技巧不妨提出來分享一下.

適用範圍: 擁有獨立主機許可權

硬體配置: 兩台伺服器,至於具體伺服器硬體配置就不在本文範圍內了

其中: A為Web伺服器(假設IP為: 192.192.192.192),B為MySQL數據伺服器(假設IP為: 168.168.168.168)

著手動作:

1. 在Web伺服器A配置好Web服務.關於這方面文章很多了.假設Web伺服器的IP為: 192.192.192.192

2. 在資料庫伺服器B安裝好MySQL服務

3. 現在新版的MySQL一般默認都不允許遠程連接的,需要建立遠程連接賬號才可以

以命令行方式使用root賬號進入MySQL

mysql -u root -p pass

選擇進入MySQL資料庫

use mysql;

查看所有存在的賬號和地址

SELECT `Host`,`User` FROM `user`;

比如我的就是:

+————+——-+

| Host | User |

+————+——-+

| localhost | |

| localhost | pma |

| localhost | root |

+————+——-+

3 rows in set (0.00 sec)

也就是說,存在三個只允許本地連接的(localhost)賬號,分別為root,pma,空用戶.

現在決定讓root具有上面那個Web伺服器A的遠程鏈接的許可權,那麼就這樣:

UPDATE `user` SET `Host` = ‘192.192.192.192’ WHERE `User` = ‘root’ LIMIT 1;

這樣192.192.192.192這台Web伺服器就可以遠程連接到這個資料庫伺服器了,假如你想讓任何遠程機器都可以連接這個資料庫,就將192.192.192.192換為%,不過不建議這樣做,原因你知道啦!

假如你想新建一個用戶new_user具備遠程鏈接的許可權的話,就這樣:

INSERT INTO `user` ( `Host` , `User` , `Password` , `Select_priv` , `Insert_priv` , `Update_priv` , `Delete_priv` , `Create_priv` , `Drop_priv` , `Reload_priv` , `Shutdown_priv` , `Process_priv` , `File_priv` , `Grant_priv` , `References_priv` , `Index_priv` , `Alter_priv` , `Show_db_priv` , `Super_priv` , `Create_tmp_table_priv` , `Lock_tables_priv` , `Execute_priv` , `Repl_slave_priv` , `Repl_client_priv` , `ssl_type` , `ssl_cipher` , `x509_issuer` , `x509_subject` , `max_questions` , `max_updates` , `max_connections` ) VALUES (‘192.192.192.192’, ‘new_user’, PASSWORD( ‘new_user_password’ ) , ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ”, ”, ”, ”, ‘0’, ‘0’, ‘0’);

將new_user改為你想要的名字就可以了,密碼是: new_user_password,當然你可以隨意設置.

當你的資料庫可以遠程連接後,你就可以在你的Web伺服器的論壇config.inc.php中設置$dbhost變數為你的MySQL資料庫伺服器B的IP了:

$dbhost = ‘168.168.168.168’;

實際操作中,最好兩台機器在同一個機房的同一網段/防火牆內.當然如果有可能的話,將資料庫伺服器放置於Web伺服器網路內的區域網中就更好了.

Q3:

還是這樣簡潔些:

grant all on yourdb.* to yourUsername@yourHost identified by “yourPassword”;

flush privileges; //使許可權立刻生效

mysql默認不支持遠程連接,需要grant授權。

GRANT ALL PRIVILEGES ON *.* TO ‘資料庫名’@’%’ IDENTIFIED BY ‘資料庫密碼’ WITH GRANT OPTION;這是應許任何地方遠程鏈接資料庫的命令,下面可以設置只應許一個ip鏈接的實例;GRANT ALL PRIVILEGES ON *.* TO ‘yk’@’222.210.228.135’ IDENTIFIED BY ‘1234

56′ WITH GRANT OPTION;這是在客戶端鏈接mysql伺服器資料庫的命令;mysql -h 100.100.100.100 -uroot -ptest我們都習慣了在自己的機子上面安裝Mysql,然後用SQLyog等客戶端軟體來連接,今天試了一下連接遠程的mysql資料庫伺服器,結果彈出一串的英文,意思好像是說客戶機沒有得到許可,不能訪問資料庫,在google搜了一下,使用這種方法解決了:

1、進入mysql,創建一個新用戶kay:

2、 格式:grant 許可權 on 資料庫名.表名 用戶@登錄主機 identified by “用戶密碼”;

grant select,update,insert,delete on *.* to kay@192.168.1.8 identified by “kaypass”;

3、 查看結果,執行:

use mysql;

select host,user,password from user;

可以看到在user表中已有剛才創建的kay用戶。host欄位表示登錄的主機,其值可以用IP,也可用主機名,

將host欄位的值改為%就表示在任何客戶端機器上能以kay用戶登錄到mysql伺服器,建議在開發時設為%。

update user set host = ‘%’ where user = ‘kay’;

還有一下方法:(我沒有試,僅供參考):

A、 ./mysqladmin -uroot -p21century reload

./mysqladmin -uroot -p21century shutdown

B、./mysqld_safe –user-root

記住:對授權表的任何修改都需要重新reload,即執行第3步。 如果經過以上3個步驟還是無法從客戶端連接,請執行以下操作,在mysql資料庫的db表中插入一條記錄:

use mysql;

insert into db values(‘192.168.88.234′,’%’,’xuys’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);

update db set host = ‘%’ where user = ‘xuys’;

重複執行上面的第2、3步。

mysql中使用任意主機的用戶怎麼登陸

您好.

-h 是指你的MYSQL資料庫所在的主機,不是你當前的主機

你當前用戶所在的 host 是由MYSQL根據你的IP或者主機名自動判斷的。

你只需要

mysql -uniunan -p12345就行了。

MySQL的授權是 用戶名+主機名

niunan@192.168.128.1

GRANT ALL ON samp_db.* TO ardis@192.168.128.% IDENTIFIEDBY “snow”

GRANT ALL ON *.* TO ‘niunan@’localhost’ identified by ‘密碼’

如果還有問題,可以繼續追問,感謝。

mysql如何刪除HostName賬號和localhost賬號

語法: Delete from user where user = “user_name” and host = “host_name” ;

例子:delete from user where user=’sss’ and host=’localhost’;

或者: 取消一個賬戶和其許可權

Drop USER user;

drop user username@’%’

drop user username@localhost

怎麼解決mysql不允許遠程連接的錯誤

添加個支持遠程連接的賬戶,和給予這個賬戶讀取資料庫的許可權。

mysql的賬戶,包括兩部分,名稱和主機名,如下例:

root@localhost

解釋:

這個賬戶名為root,主機名為localhost(就是本機),這個賬戶之能在本機登錄mysql.

如果你要遠程用這個賬戶名登錄,需要新建一個賬戶,見如下:

root@%

root是賬戶名,%是主機名,%的意思是匹配任何地址,也就是允許你從任何主機連接mysql.

另外是許可權的了。

比如你有個 ceshi 這個資料庫。

你需要把ceshi這個資料庫的許可權給予root@%這個賬戶。

給予許可權參考命令:

grant all on ceshi.* to ‘root’@’%’

做到這兩點。你就可以遠程連接mysql了。

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

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

相關推薦

  • 如何修改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
  • 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怎麼導入資料庫

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

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL資料庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28

發表回復

登錄後才能評論