在阿里云linux(ubuntu16.0.4)服务器上安装mysql5.7,并使用navicat连接

参考:https://www.cnblogs.com/thinkingandworkinghard/p/7813504.html

1.安装mysql命令

sudo apt-get install mysql-server

sudo apt install mysql-client

sudo apt install libmysqlclient-dev

2.安装成功后可以通过下面的命令测试是否安装成功

sudo netstat -tap | grep mysql

安装成功的图示

3.进入mysql

mysql -uroot -p

如果忘记密码了,可以先跳过密码登录进去,然后重新设置。

编辑mysql的配置文件/etc/mysql/my.cnf,在[mysqld]段下加入一行“skip-grant-tables”。

 

 

重启mysql服务: mysql service restart;或者 systemctl restart mysql.service

进入 mysql -uroot -p  ;直接entry键进去

user mysql;

执行update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost';把密码重置为123456。退出数据库管理。

立即刷新权限:flush privileges

退出后,

回到sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf,把刚才加入的那一行“skip-grant-tables”注释或删除掉。

再次重启mysql服务sudo service mysql restart,使用新的密码登陆,修改成功。

 

 

3.让mysql可以远程访问

 首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf:

 

保存退出,然后进入mysql服务,执行授权命令:

 

将root用户授权给所以连接:grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';
最后一个为mysql密码​
让权限立即生效:flush privileges;​

到此所以操作完成,可以在任何主机连接此mysql数据库服务器了。

 

这里面可能会碰到 3306 端口被防火墙屏蔽的问题。

首先查看端口是否打开 netstat -an|grep 3306

打开mysql配置文件vim /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address = 127.0.0.1注释掉
重启动ubuntu
再次查看端口是否打开 netstat -an|grep 3306

最后还是无法通过本地的navicat连接到mysql,并且报错如下:

报错很明显,说的是未知的连接,所以说可能是ip错误、端口错误或者是没有开启远程连接权限

但是在以上已经打开了远程连接权限,ip和端口也都没问题,到底什么地方错了?

经过查看博客才发现,阿里云上的服务器为对外暴露3306的端口

设置方法:(1)登陆阿里云进入控制台点击左侧 云服务ESC

上面在添加 填写安全规则时,协议类型选了mysql3306后端口自动填写,授权对象填写0.0.0.0/0即可。

最后在通过navicat连接就可以了

连接成功

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值