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,而後就可使用剛纔重建的用戶鏈接數據庫了。