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

- 查看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中远程连接,便不会报错了。

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

注意问题:
- 经常在输入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

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

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

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




