簡體   English   中英

mysql訪問被拒絕,ssh數據庫主機

[英]mysql access denied, ssh database host

我正在嘗試將mysql訪問到遠程服務器中,並在那里創建數據庫。 我正在用膩子連接。 問題是無論我做什么,我都會收到“訪問被拒絕”錯誤:

:mysql -p
:mysql -u <username> -p
.
.
.

我仍然收到警告。

錯誤1045(28000):拒絕訪問用戶'username'@'localhost'(使用密碼:NO)

錯誤1045(28000):用戶'username'@'localhost'的訪問被拒絕(使用密碼:是)

當我不輸入密碼時和每次輸入密碼時,請分別使用一種。

您在遠程訪問MySql時遇到問題。 這里

  • 步驟1:通過ssh登錄

首先,通過ssh登錄到遠程MySQL數據庫服務器

  • 步驟2:啟用網絡

連接后,您需要使用文本編輯器(如vi)編輯mysql配置文件my.cfg。

在Debian Linux中,文件位於/etc/mysql/my.cnf

# vi /etc/my.cnf
  • 步驟#3:打開文件后,找到顯示為[mysqld]的行

確保對跳過行網絡進行了注釋(或刪除行),然后添加以下行

bind-address=YOUR-SERVER-IP

例如,如果您的MySQL服務器IP為172.20.5.2,則整個塊應如下所示:

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 172.20.5.2

# skip-networking
....
..
....

其中-bind-address:要綁定的IP地址。 -跳過網絡:完全不監聽TCP / IP連接。 與mysqld的所有交互都必須通過Unix套接字進行。 對於僅允許本地請求的系統,強烈建議使用此選項。 由於您需要允許遠程連接,因此應從文件中刪除此行或將其置於注釋狀態。

  • 步驟#4保存並關閉文件。

重新啟動mysql服務以使更改生效

# /etc/init.d/mysql restart
  • 步驟5授予對遠程IP地址的訪問權限

    #mysql -u root –p mysql

授予對新數據庫的訪問權限

如果要為用戶欄和遠程IP 162.54.10.20添加名為foo的新數據庫,則需要在mysql>提示符下鍵入以下命令:

mysql> CREATE DATABASE foo;

mysql> GRANT ALL ON foo.* TO bar@'162.54.10.20' IDENTIFIED BY 'PASSWORD';

授予對現有數據庫的訪問權限

讓我們假設您始終與用戶Webadmin的名為webdb的數據庫的遠程IP(稱為162.54.10.20)建立連接,那么您需要授予對該IP地址的訪問權限。 在mysql>提示符下,為現有數據庫鍵入以下命令:

mysql> update db set Host='162.54.10.20' where Db='webdb';

mysql> update user set Host='162.54.10.20' where user='webadmin';
  • 步驟#6:退出MySQL

鍵入exit命令以注銷mysql

mysql> exit
  • 步驟7:測試

從遠程系統類型命令

$ mysql -u webadmin –h 172.20.5.2 –p

您也可以使用telnet連接到端口3306以進行測試

$ telnet 172.20.5.2 3306

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM