ubantu16.04 安装mysql 外部主机无法连接的问题

本文介绍了如何解决在Ubuntu 16.04 Server版虚拟机中部署的Web环境(Apache + PHP + MySQL)中遇到的MySQL无法从其他IP地址访问的问题。通过修改MySQL配置和更新用户设置,成功实现了远程访问。

近期准备打算装用虚拟机搭建一个web服务器环境做测试,使用的事ubantu16.04 server版,web环境APACHE+php+mysql,但是按照网上的教程安装后无法用其他ip登录mysql,主要问题有以下两点

1.首先使用navicat直接连接会被告知

can't connect to mysql server on‘xx.xx.xx.xx’

这里的问题是由于数据库暂时不允许外部ip访问

解决方法:首先root本地登录数据库,输入命令

use mysql;

update user set Host=‘%’ where User=‘root’;//原来Host 是localhost,为本机,现在改为%为任何ip

然后修改mysql配置文件

找到 /etc/mysql/mysql.conf/mysqld.cnf

将 bind-adress 改为 0.0.0.0


输入 sudo Service mysql restart 重启mysql服务器

2、修改完后使用navicat连接服务器提示

251  -  Client  does  not  support  authentication  protocol  requested  by  server;  consider  upgrading  MySQL  client 

原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户端的版本要在4.0以上


但是网上网络上给出的答案包括官网大部分都是说原来的密码函数被改为old_password(),


并提供解决方案

mysql> SET PASSWORD FOR -> 'some_user'@'some_host' = OLD_PASSWORD('new_password');

但是事实上mysql5.7中user表已经没有password字段而改成了authentication


old_password()函数也不在使用,查阅外网结果找到解决方案

use mysql;

update user set authentication_string=password('你的新密码'),plugin='mysql_native_password' where user='root';

便可以解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值