mysql 远程访问设置

谁说胖子不能爱 提交于 2019-12-02 15:54:16

在使用navicat访问虚拟机上的mysql时报can't connnect to MySQL server on 'localhost' (10038)

首先看是否可以ping通ubuntu上的IP地址,如果能ping说明网络是好的,然后在telnet,本机cmd,telnet ip 3306,显示连接失败。

mysql在初始化安装时默认只能本机连接,即只允许localhost;查看方式: 

netstat -an | grep 3306

显示信息为

tcp        0      0    127.0.0.1:3306            0.0.0.0:*               LISTEN

 127.0.0.1 表示只监听本机回环地址,只能本机访问,0.0.0.0 表示监听本地所有ip地址,其他电脑是可以访问的,并且修改ip不受影响,修改

/etc/mysql/mysql.conf.d,修改mysqld.cnf中的   bind-address = 127.0.0.1    改为       bind-address = 0.0.0.0

重启mysql :service mysqld restart

确定下防火墙是否有拦截端口;确认3306没有被墙,

然后在用navicat访问连接成功;

但是只能使用root账号连接,普通用户登录 Access denied for user 'aaaa'@'192.168.1.100' (using password: YES)

解决方式:授权处理,进入mysql命令行:mysql -uroot -h127.0.0.1 -p;授权

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

刷新:

 flush privileges;

其中usrname是你的用户名,%是访问的机器,password是密码。 %访问IP不受限制,若想限制特定IP,则替换下%就好

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!