问题所在:
使用Navicat远程服务器mysql数据库时报错误:2013-Lost connection to MYSQL server at ‘waitting for initial communication packet’,system error:0
操作流程
- 一、检验Mysql数据库是否安装成功
- 二、对Mysql的配置文件进行修改配置
- 三、连接进入mysql服务
- 四、在mysql环境下执行授权命令
- 五、用Navicat远程连接Mysql
具体操作如下:
一、检验Mysql数据库是否安装成功
首先,检验云服务器上数据库是否安装成功,输入如下命令进行检验是否安装mysql成功:
sudo netstat -tap | grep mysql
如果出现如下图表示安装成功:
若没有安装成功,则重新成功安装Mysql。
二、对Mysql的配置文件进行修改配置
根据这个错误提示,这是连接初始化阶段就丢失了连接的错误。
google半天大多是说的注释掉配置文件中 bind-address = 127.0.0.1 这一句。但是我的配置文件并没有配置这一句,各种搜索均也没有解决问题。但是在别人连接成功的配置文件里发现了一个不同的配置语句skip-name-resolve
,所以进行了配置。
具体步骤如下:
1、找到配置文件
在不同的Linux系统下,my.cnf放在不同的位置。这里以CentOS7 Server做示例,其他系统请根据情况自行找到my.cnf的路径。一般只会存放在/etc/my.cnf或者/etc/mysql/my.cnf下。
CentOS7 Server其Mysql放在了/etc/my.cnf
中:
2、Linux下修改配置文本
由于这个是linux系统,所以操作不同我们window。
(1)用vim打开配置文件,我的配置文件路径是/etc/my.cnf
,所以在远程控制终端(这里推荐用xShell连接远程服务器)中输入:
vim /etc/my.cnf
(2)切换到编辑模式进行编辑
我们需要通过键盘里的上下键来移动,游标找到
bind-address = 127.0.0.1
在前面加上#
注释掉,然后加入通过键盘的左右键移动到最前面。
这时按键盘里的insert键,下方会出现 -- INSERT --
字样,即切换到编辑模式,在编辑模式下就可以对配置文本进行编辑了:
(3)切换回一般模式
编辑完后就切换回一般模式,也就是一开始不可编辑的模式。按键盘的Esc键
可进入一般模式。在一般模式下输入 : wq
(英文下的冒号:)可以退出编辑模式,即 :wq
可以保存并退出编辑模式,如下图:
三、连接进入mysql服务
连接进入mysql服务
输入这面这条命令连接进入MySql服务:mysql-uroot-p你的密码
例如:mysql -uroot -p123456
如果连接出现错误,且报错如下:
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
那么,请参考我写的这篇文章进行参考解决:https://blog.csdn.net/qq_37717494/article/details/105369452
如果连接成功,则会是如下显示:
前面出现mysql>
说明已经进入Mysql服务环境了。
四、在mysql环境下执行授权命令
在mysql环境下执行授权命令 (授权给远程任何电脑登录数据库):
流程如下:
- 1)看当前所有数据库:
show databases;
- 2)进入mysql数据库:
use mysql;
- 3)查看mysql数据库中所有的表:
show tables;
- 4)查看user表中的数据:
select Host, User from user;
- 5)修改user表中的Host:
update user set Host='%' where User='root';
- 6)最后刷新一下:
flush privileges;
一定要记得在写sql的时候要在语句完成后加上" ; "下面是图示说明
下面是具体详细图片教程:
- 1)看当前所有数据库:
show databases;
- 2)进入mysql数据库:
use mysql;
- 3)查看mysql数据库中所有的表:
show tables;
- 4)查看user表中的数据:
select Host, User from user;
- 5)修改user表中的Host:
update user set Host='%' where User='root';
- 6)最后刷新一下:
flush privileges;
五、用Navicat远程连接Mysql
此次远程连接选择的是常规和SSH配合连接。
在连接之前要确保服务器安全组的3306和22端口允许访问,即在服务器的安全组中开放3306和22端口,开放这两个端口是因为Navicat常规连接的端口是3306,SSH连接的端口是22,阿里云开端口教程如下:https://www.bt.cn/bbs/thread-2897-1-1.html
【注】SSH是用来连接服务器 ,而常规中的连接是用来连接服务器中的mysql
(此处二者的密码是不一样 看个人当时设置的时候是什么 我的用来远程连接阿里云的账号跟连接数据库的账号都是 root 但是密码是不一样的 此处注意)
(1)连接阿里云服务器中的mysql
此处的连接名随便起,ip就是127.0.0.1,端口是3306 用户名是root 密码就是你输入 mysql -uroot -p时的登录密码
(2)然后点击SSH
此处的ip就是你阿里云服务器的公网ip,端口默认都是22 用户名我当时设置的就是root(就是你远程连接服务器时的用户)
密码:就是你自己设置的远程连接服务器的密码
(3)这时就可以点连接测试了
应该会成功了
如果不成功 应该就是你的密码错误
然后连接成功后此处的图标就会变绿了 你就可以随时操作了
拓展补充:https://yq.aliyun.com/articles/354773