本地连接虚拟机上的mysql

1、检查是否能够## ping通虚拟机地址
2、检查虚拟机Mysql的端口3306是否对外开放

telnet ip 3306

注:一般22端口是默认开放的,3306需要设置对外开放
3、编辑防火墙文件打开3306端口

vi /etc/sysconfig/iptables

模仿22端口开放命令添加如图所示的一行即表示对外开放3306端口
在模仿22端口开放命令添加如图所示的一行即表示对外开放3306端口这里插入图片描述
注:若centos7没有iptables,则执行以下操作
a、停止并屏蔽firewalld服务

systemctl stop firewalld
systemctl mask firewalld

b、安装iptables-services软件包

yum install iptables-services

c、在引导时启用iptables服务

systemctl enable iptables

d、启动iptables服务

systemctl start iptables

e、保存防火墙规则

service iptables save或/usr/libexec/iptables/iptables.init save

另外:管理iptables服务

systemctl [stop|start|restart] iptables

4、远程连接虚拟机数据库访问
报1130错误
端口都开启了,但还是连不上,telnet 端口报错如下:
在这里插入图片描述
 原因:一般mysql是不允许除了本机用户以外的用户进行访问的,所以需要给特定ip的用户开放权限,通过这个用户去访问连接
解决方法:给特定ip的用户开放权限
a.在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%’。

mysql>use mysql;

查询出数据库的用户名

mysql>select host,user,password from user;

把用户表里面的host项改为“%”

mysql>update user set host = '%' where user ='zabbix';

mysql>flush privileges;    #刷新用户权限表

mysql>select host,user,password  from user where user='zabbix';

b.在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%’

mysql>insert into user values('localhost', 'zabbix', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','','','','',0,0,0,0,'','');	

注:若没有此步骤使用zabbix用户连接mysql时会报1044错误
c. 重启mysql

systemctl restart mariadb;

重新使用zabbix用户连接,连接成功!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值