暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux下设置mysql允许远程连接

心有阳光 2023-04-06
3543

1240.png

方案一

  • 登录mysql,命令:mysql -u root -p ,然后输入密码即可。

124016362844568562.png

  • 查看mysql库中的user表的host字段
使用mysql库:use mysql
查询信息:select user,host from user

查询结果

host字段中,localhost表示只允许本机访问,要实现远程连接,可以将root用户的host改为%,%表示允许任意host访问,如果需要设置只允许特定ip访问,则应改为对应的ip。

  • 修改root用户的host字段,命令:
update user set host="%" where user="root"
  • 使本次修改立即生效,命令:
flush privileges
  • 退出,重启mysql服务,命令:
service mysql restart
  • 在windows下的Navicat中远程连接,便不会报错了。

124016362846558966.png

  • 查看端口号
show global variables like 'port';  

1000464201609071127212541324340539.jpg

注意问题:

  • 经常在输入mysql -u root -p时,显示cannot connect to mysql server…这种错误,后来发现是没有打开mysql。所以在以上操作之前记得看看Mysql有没有打开:
1 service mysql status --查看有没有打开服务
2 service mysql start --打开服务
3 service mysql stop --停止服务
4 service mysql restart --重启服务
  • 在进行上述连接后,用navicat远程连接mysql,发现还是不可以,鼓捣了很久,才发现是因为防火墙的问题,防火墙把3306端口屏蔽了。所以要设置防火墙:
设置防火墙允许3306端口 vi /etc/sysconfig/IPtables 添加-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT (注意添加在-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited之前,否则可能导致规则不生效) 重启防火墙service iptables restart

方案二

  • 查看哪些端口被打开
netstat -anp

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhaWJvMDY2OA==,size_16,color_FFFFFF,t_70.png

127.0.0.1:3306 – 指mysql数据库仅能在本地下访问;

  • 把127.0.0.1:3306改为0.0.0.0:3306,这样才能让所有用户可以远程访问mysql数据库;
  • 配置文件目录是:/etc/mysql/mysql.conf.d/mysqld.cnf

image20211206231401144.png

vi /etc/mysql/mysql.conf.d/mysqld.cnf #注释 # bind-address=127.0.0.1

image20211206231124798.png

  • 重启生效;
命令:service mysql restart
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论