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,而后就可使用刚才重建的用户链接数据库了。

相关文章
相关标签/搜索