MySQL本地可以连接,远程连接不上的问题

之前遇到过MySQL本地可以连接但是远程连不上的问题,没有记录,今天在ucloud云上新申请的服务器上又遇到这个问题,记录一下解决过程。

1. 排除网络或防火墙问题

先看是否能ping通远程服务器,ping 192.168.1.211,如果不可以就是网络问题。然后,检查端口是否被防火墙挡住了,telnet 192.168.1.211 3306,如果连接失败,配置防火墙。

配置防火墙,开启3306端口

vi /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)

/etc/init.d/iptables restart(重启防火墙使配置生效)

2. 检查MySQL配置

如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:

netstat -apn|grep 3360

tcp6     0     0 127.0.0.1:3306     :::*     LISTEN         13524/mysqld

注意红色的地方,这说明3306被绑定到了本地。检查一下my.cnf的配置,这里可以配置绑定ip地址。

bind-address=addr

不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。

ps:我开启3306端口,并且检查MySQL配置之后,telent仍然失败,但是在本机telnet是ok的,再三确认了配置没有问题。后来跟我们的ucloud账号管理员提了一下,才知道ucloud管理后台也需要开启3306端口,用云服务器的留意这个。

3. 检查用户访问权限

MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost,那么这个用户就只能本机访问, 其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。

#mysql -u root -p

mysql> use mysql;

Database changed

mysql> update user set host=’%’ where user=’root’;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 1 Changed: 0 Warnings: 0

mysql> select host,user from user;

+———–+———+

| host | user |

+———–+———+

| 127.0.0.1 | root |

| % | night |

+———–+———+

2 rows in set (0.00 sec)

最后,别忘了重启mysql使配置生效。

# /etc/init.d/mysql restart

时间: 2024-10-09 00:56:36

MySQL本地可以连接,远程连接不上的问题的相关文章

Centos上安装mysql配置并授权远程连接

1.通过yum来进行mysql安装 查看yum上提供的mysql数据库可下载的版本: yum list | grep mysql 通过yum install -y mysql-server mysql mysql-deve命令将mysql mysql-server mysql-devel都安装好,出现如下信息标识mysql安装成功: 2.初始化及相关配置 通过service mysqld start命令启动mysql 通过mysqladmin -u root password 'root'给ro

ubuntu下MySQL的安装及远程连接配置(转)

1.命令窗口中输入sudo apt-get install mysql-server mysql-client 即可(配置文件位置:/etc/mysql/my.cnf 启动文件位置:/etc/init.d/mysql) 2.安装期间会提示你输入ROOT账号的密码. 3.安装完成后,就可以利用命令mysql -u root -p来访问数据库了. 4.设置远程连接访问,安装完成后,MySQL的配置文件位于:/etc/mysql/my.cnf 5.vim /etc/mysql/my.cnf找到 bin

linux 下解决mysql root 权限无法远程连接问题

问题描述:MySQL数据库安装成功后,在服务器本地可以连接成功,但是使用工具navicat无法进行远程连接,如图: 原因:MySQL默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接. 解决方法: 1. 进入mysql: /usr/local/mysql/bin/mysql -u root -p(根据服务器安装的数据库地址而定) 或者 mysql -uroot -p 如图 密码输入时,linux命令面板不会有任何反应,输入完后回车键 2. 使用mys

widows本地-xshell实现远程连接linux服务器图形界面

本地环境远程连接linux图形界面,常用的实现工具有,VNC.Puty.Xshell等,这里我们用的xshell manager: Xmanager简介:Xmanager是一个运行于 Windows平台上的高性能的X Server软件.它能把远端Unix/Linux的桌面无缝地带到你的Windows上,甚至电脑是在内网或防火墙后,也能通过SSH协议安全的运行远端的X应用程序. 特点包括: 可通过Xcongfig工具设置多个Xmanager设置: 支持多用户的Windows终端环境: 支持多个IP

mac 连接远程服务器、上传文件

1.连接远程服务器: ssh 命令 +用户名@服务器域名 ssh [email protected] 2.上传文件到远程服务器:scp 命令 +本地文件路径 + 用户名@服务器域名:服务器上存放的文件路径 MAC20151009AdeMac-mini:~ admin$ scp ~/documents/wx_sample.php [email protected]:/srv/www/li753-107.members.linode.com/public_html/wx/

MySQL通过Navicat实现远程连接的过程

直接使用Navicat通过IP连接会报各种错误,例如:Error 1130: Host '192.168.1.80' is not allowed to connect to this MySQL server. 经过个人验证,得到解决方法,如下: 授权法: 1.首先使用localhost登录到想要进行远程连接的数据库 2.打开命令提示窗口,输入如下命令: mysql> grant all privileges on *.* to 'root'@'%' identified by '123456

MYSQL服务器就开启远程连接

如何设置MYSQL服务器允许远程连接?如果你使用的虚拟主机与数据库不在同一台服务器上,那么MySQL 服务器就需要允许远程链接,网站才能正常运行.那么如何设置MYSQL服务器允许远程连接呢?我想这是很多人都想提出的疑问,下面中国信息港就与大家一起来探讨下如何设置MYSQL服务器允许远程连接? MySQL服务器的远程链接设置有两种方法: 一.改表法. 可能是你的帐号不允许从远程登陆,只能在localhost登录.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql&qu

ubuntu16.04服务器配置mysql,并开启远程连接

ubuntu16.04mysql安装就不说了: 直接重点  这里我用的是阿里云的ecs服务器,ubuntu16.04系统 1授权用户,并允许远程登录; 默认的MySQL只有一个root账号,所以不妨先建一个和root一样权利的账号,并授权远程登陆的许可,那么我们先登录MySQL: mysql -u root -p  登录mysql 首先我们授权一个叫Ubuntu(叫什么由你定)的账户,并授予它远程连接的权力,命令如下: 用户密码自己设置即可 GRANT ALL PRIVILEGES ON *.*

centos7通过yum安装mysql,并授权远程连接

安装: CentOS 7的yum源中没有正常安装MySQL的mysql-sever文件,需要去官网上下载(通过安装mysql的yum容器,再通过yum安装mysql) 注:安装前,需要卸载所有的mariadb软件(完全兼容mysql的另一个数据库,mysql原创者所写),通过命令yum remove mariadb* 获取yum地址: 安装mysql的yum容器: 其实就是在/etc/yum.repo.d/  下添加了两个容器档案: 查看那个yum容器有什么mysql软件(yum install

MySQL重置密码与远程连接权限问题

如果mysql没有密码,或者密码设置为空的时候可以通过在用管理员身份打开cmd,然后在里面输入mysqladmin -u root password 123456  这个地方的密码是明文密码. 如果忘记了 MySQL 的 root 密码,可以用以下方法重新设置: 1. KILL掉系统里的MySQL进程,方法如下: a.点击桌面工具栏打开任务栏管理器. b.从任务管理器的进程中找到mysqld.exe进程,点击右键选择结束进程. 2. 在命令行中输入命令 mysqld --skip-grant-t