mysql workbench鏈接不上遠程數據庫,xshell沒法鏈接遠程主機的問題

1.先說xshell沒法鏈接的問題php

最近使用virtualbox裝了個ubuntu-16.04,而後在win7上使用xshell鏈接,首先確認win7能ping通虛擬機ip。而後確認是否安裝了openssh,用命令:ps -ef |grep ssh ,發現沒有安裝,那就安裝唄,沒啥說的,使用命令:apt-get install openssh-server安裝。mysql

安裝完以後用xshell鏈接,結果提示:SSH服務拒絕了密碼。請再試一次,如圖:sql

我使用root登陸,密碼也沒錯啊?原來是ssh默認不容許root用戶登陸。咋辦?因而改配置文件:shell

vim /etc/ssh/sshd-config,找到以下一行:數據庫

如圖,把PermitRootLogin這一項後面的「prohibit-password」改成:「yes」,重啓ssh服務,而後回到Xshell繼續使用root登陸,成功。ubuntu

注意:若是不改這個,使用非root是能夠用xshell登陸的。vim

2.說說mysqlworkbench沒法鏈接的問題。服務器

首先首先個人環境:ubuntu10.04+mysql5.7+mysql workbenchssh

個人報錯提示是這樣的:ide

「Failed to connect to mysql at ***:3306 with user **,cann't connect to mysql server on *** (10061)」,如圖:

注意看最後的10061,這個就是拒絕鏈接的錯誤碼。

修改以下文件:vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到「bind-address」這一項,能夠看到默認只能在本地登陸,把這一項註釋掉,重啓mysql,再試着鏈接,

結果又報錯,

Access denied for user 'root'@***(using pasword:YES),以下:

這個我也不懂了,好在找到了資料,意思是,如今雖然mysql容許遠程鏈接了,可是root用戶尚未遠程鏈接的權限,咋辦呢?

建立一個新用戶,並賦予它遠程鏈接的權限:

1)登錄mysql

2)建立遠程登錄用戶並受權,在要連接的服務器上操做

mysql> grant all PRIVILEGES on *.* to 'username'@'xxx.xxx.xx.x' identified by 'password' WITH GRANT OPTION;

上面的語句表示將全部數據庫的全部表的全部權限受權給 username 這個用戶,容許 username 用戶在 xxx.xxx.xx.x 這個 IP 進行遠程登錄,並設置 username 用戶的密碼爲 password。

分析參數:

all PRIVILEGES 表示賦予全部的權限給指定用戶,這裏也能夠替換爲賦予某一具體的權限,例如:select,insert,update,delete,create,drop 等,具體權限間用「,」半角逗號分隔。

*.* 表示上面的權限是針對於哪一個表的,第一個*指的是數據庫名稱,後面的 * 表示對於全部的表,由此能夠推理出:對於某一數據庫的所有表受權爲「數據庫名.*」,對於某一數據庫的某一表受權爲「數據庫名.表名」。

username表示你要給哪一個用戶受權,這個用戶能夠是存在的用戶,也能夠是不存在的用戶。

xxx.xxx.xx.x 表示容許遠程鏈接的 IP 地址,你的IP,若是想不限制連接的 IP 則設置爲「%」便可

password 爲用戶username的密碼。

接着執行以下語句是設置生效

 

Mysql> flush privileges

最後重啓mysql,而後就可使用剛纔重建的用戶鏈接數據庫了。

相關文章
相關標籤/搜索