不装mysql可以访问数据库吗_ubuntu系统安装的MySql数据库,远程不能访问的几种可能问题...

安装MySQL数据库后一般会遇到远程计算机不能连接的问题,具体问题需要我们排查。

可能一:MySql数据库是否提供了外部访问的用户以及权限?

可能二:MySql的配置文件是否只绑定了本机ip(ubuntu下:/etc/mysql/mysql.conf.d/mysqld.cnf)?

可能三:操作系统的防火墙不允许外部访问3306端口

本文实例发生的环境是ubuntu16.04,MySql5.7。

排查一:在安装了MySql数据库的计算机上,

命令行进入mysql:mysql -u root -p

并输入用户root的密码:

GRtPaJfUw20AAAAASUVORK5CYII=

执行语句:select user, host from user;

9dcdfa47bedf12f53d9f2b7c2d4e0814.png

如果是上述结果,则说明没有设定外部访问的用户,接下来我们给root用户赋予外部访问的权限,执行2条语句:

grant all privileges on *.* to 'root'@'192.168.3.%' identified by 'password' with grant option;

flush privileges;

注意password是你给root设定的密码,注意拼写,一切ok后再次查看user表内的内容

5d1ee2c53bc7c5c6a284f930accd645d.png

红框里的那条记录就是刚才我们用grant命令添加的,它的意思是局域网内192.168.3.0-192.68.3.255的ip主机都可以通过用户root和密码password来访问。

这里解释一下grant语句格式

mysql> grant 权限1,权限2,…权限n on 数据库名.表名 to 用户名@用户地址 identified by ‘用户密码’ with grant option;

权限1,权限2,…代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等权限。

如果是all privileges或者all,表示赋予用户全部权限。

如果数据库名.表名被*.*代替,表示赋予该用户可以操作服务器上所有数据库所有表的权限。

用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址。

‘用户密码’必须提供。

最后的 with grant option 表示权限传递,意思是允许该用户将其权限分配给其他人。

以上所有操作也可在图形界面完成,如果你的ubuntu上安装了MySql Workbench会很方便:

4b042a24f23d567b6a7030e148569401.png

排查二:配置文件是否只绑定了本机ip,使用gedit文本编辑器打开mysql的配置文件,把bind-address = 127.0.0.0这行注释掉(句首加上#),当然,也可以绑定你所需的主机,ubuntu终端执行:sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf

0af5726c74dfe8a29111452c3adde912.png

保存退出,ubuntu终端执行:service mysql restart,或者手动重启mysql,或者重启系统。

另外,重启之后你可以使用 netstat -an|grep 3306 命令来查看端口情况:

8ea18cdc359fd579d7bbd36b0a335af0.png

红框内是注释掉bind-address后才有的,未注释前没有。

排查三:关于操作系统的防火墙不允许外部访问3306端口,请根据操作系统自行排查。

END.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值