之前遇到过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端口通过防火墙)
service iptables restart(重启防火墙使配置生效)
2. 检查MySQL配置
如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:
netstat -apn|grep 3306
tcp6 0 0
127.0.0.1:3306
:::* LISTEN 13524/mysqld
注意红色的地方,这说明3306被绑定到了本地。检查一下f的配置,这里可以配置绑定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
远程登陆数据库的时候出现了下面出错信息:ERROR (HY000): Can't connect to
MySQL
server on 'xxx.xxx.xxx.xxx'修改root用户可以从任意ip登录
mysql
-u root –p //root用户本机登录
mysql
mysql
>use
mysql
; //跳转到
mysql
库
//执行下面语句会提示Error,不过没关系...
根据查阅不同资料发现,这个
问题
是因为root用户使用的加密方式不同,需将其加密方式改为
mysql
_native_password,即可实现远程
连接
MySQL
服务器。
那么,怎么来修改root用户的Authentication plugin呢?
首先我们先来查看一下root用户的相关信息。
启动
MySQL
:net...
一、
mysql
禁止 IP 远程
连接
mysql
库 user表中 host 为 localhost 修改为 % 允许所有 IP
连接
或者 添加一条数据 host 为允许
连接
的 IP
mysql
-uroot -proot
二、授权某个用户可以远程
连接
以root为例:
grant all privileges on *.* to root@"%" identified...
Connecting to
MySQL
server … Access denied for user ‘root’@‘localhost’ (using password: YES)
之前在旧电脑win8上装
mysql
5.7 时没有出现这个
问题
,在新电脑上也照之前那样装,装完了发现
连接
不上。最后参考网友的连上了,真的有用,很多地方都说修改DATA文件夹里的某个文件,可是我装完连DATA文件夹都没...
本地能够
连接
mysql
,为何远程
连接
不上
mysql
呢?这是因为默认安装的
mysql
,出于安全考虑,只能本地
连接
。如果您需要远程
连接
,这里就需要设置一下
mysql
的权限表。具体设置的步骤如下:
1、在
MySql
本机
连接
mysql
。
2、执行以下
mysql
命令:
use
mysql
#打开
mysql
数据库
#将host设置为%表示任何...
2.创建远程
连接
用户
GRANT ALL PRIVILEGES ON *.* TO MAO@'%' IDENTIFIED BY 'MIAOMIAO' WITH GRANT OPTION;
3.使命令立刻执行
FLUSH PRIVILEGES;
4.查询数据库用户
SELECT DISTINCT CONCAT('User: '...
昨天用着好好的,第二天突然
连接
不上了
mysql
数据库,并且报错:
仔细想了想原因很有可能是因为不经意间删除了
mysql
自带表中的一些数据信息导致的表损坏,之前也是把oracle给弄坏了.....
所以不要随便的删除系统的表信息
进入服务,找到
mysql
,发现服务已经停止,重新启动该服务,发现无法重启,如下
无法重启报1067
并且在dos命令中进入msyql也是不可以的
(为什么要说8.0的
问题
内,因为和第二步有关,参考下文
mysql
8.0无法给用户授权或提示You are not allowed to create a user with GRANT的
问题
)
1.首先进入数据库使用
use
mysql
;
然后看看自己的密码选项是什么名称:
describe user;
可以看到有一个text类型的密码名叫authentication_strin...
解决方法:
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入
mysql
后,更改 "
mysql
" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"
mysql
-u root -pvmware
mysql
>use
mysql
;
mysql
>update user set h
改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入
mysql
后,更改 "
mysql
" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 解决方法:
1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入
mysql
后,更改 ".
进入iptables
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启iptables
service iptables restart
2 root用户赋权
grant all pr...
mysql开通远程连接不上去_MySQL本地可以连接 远程连接不上的问题_夜风的BLOG-CSDN博客_mysql远程连接不上...