记Ubuntu开启Mysql远程访问的经历

前言

操作系统是Ubuntu
Mysql版本是5.7

正确步骤

首先将正确的步骤记录下来。

  1. 首先安装Mysql
sudo apt-get install mysql-server

这样直接安装的就是5.7版本的mysql。如果需要8版本的,需要更新一下。

  1. 创建账户

刚开始创建root账户时是没有密码的,至少系统没有自动让我设置密码,因此第一次先无密码登录,直接在shell里输入mysql,回车即可。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456789' WITH GRANT OPTION;

其中root是用户名,%表示可以在任意ip访问mysql服务。*.*表示所有数据库的所有数据表。
123456789是密码。
这样就开启了root用户在所有ip访问的权限。

如果不想使用root用户,可以使用下面的命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

在修改权限后,需要使用命令来使配置立即生效。

flush privileges;

之后可以查询已经有的所有的mysql用户。

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
  1. 配置mysql

一定要记得修改mysql的配置文件

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf +43

找到 “bind-address = 127.0.0.1” , 这一行要注释掉,只需在前面加个#,即 # bind-address = 127.0.0.1,然后,重新启动,命令如下:

/etc/init.d/mysql stop
/etc/init.d/mysql start
  1. 关闭防火墙

关闭防火墙也至关重要。
在Ubuntu系统中,有iptables和ufw

其中ufw比较简单,有以下命令。

sudo ufw allow 3306
sudo ufw status

这样就开启了3306端口了。
实在不行,可以直接关闭ufw防火墙。

sudo  ufw disable

直接关闭后再次使用status命令查看结果,可以发现ufw的状态已经是没有生效的了。这样ufw就不会阻止所有的端口。

关于iptables,我自己个人目前还不是很懂

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
service iptables restart

查看已经开启的端口

iptables -L -n

刚开始我以为是我的iptables没有配置好(其实是mysql没有配置好),就直接卸载了iptables。

apt-get remove iptables

其实这样应该是不太好的,相当于自己的机器没有了保护。

感想

一定要找到好的全的教程!(比如我这篇)
这样就可以少走弯路。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wei *

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值