云服务器一键配置lamp后mysql实现外网navicat连接

在腾讯云服务市场中一键配置了

然后本来配置好的mysql也没用了,navicat连不上,连密码都不知道是什么了,便按以下步骤修改密码和权限最后正常使用!

1.密码不知道,关闭密码验证进入mysql修改密码。

    在服务器中找到mysql的my.cnf(我的是linux,windows找my.ini)文件(我的在/etc目录下),编辑该文件

    

    在文件内容[mysqld]下添加一行

skip-grant-tables

    

esc退出编辑 :wq保存并退出
service mysqld restart   重启mysql服务

然后再登录mysql

mysql -u root -p     登录mysql

输入任意密码都可以进入mysql



然后修改密码:

use mysql;
#删除的记录要insert进去,然后修改密码
update user set password=password("new_pass") where user="root";
flush privileges;

然后删除my.cnf中的skip-grant-tables

2.设置mysql只允许内网连接权限为允许所有外网都能连接

    这里写两种方法(我用的是第一种)

    第一种:用root用户登陆,然后:

    

 grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";
 flush privileges;   * 刷新刚才的内容*

    格式:grant 权限 on 数据库教程名.表名 to 用户@登录主机 identified by "用户密码";

    @ 后面是访问mysql的客户端ip地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为

    本地访问(那此用户就不能远程访问该mysql数据库了)。

    

     同时也可以为现有的用户设置是否具有远程访问权限。如下:

 use mysql;
 update db set host = '%' where user = '用户名'; (如果写成 host=localhost 那此用户就不具有远程访问权限)
 flush privileges;
 grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;

第二种就是使用grant语句添加用户

    首先在数据库本机上用root用户

 mysql>grant all privileges on *.* to admin@"%" identified by 'something' with grant option;(用户名是admin 密码something)

    添加一个用户admin并授权可从任何其它主机发起的访问(通配符%)。使用这一条语句即可。

    然后使用insert添加用户信息

 mysql>insert into user values('%','admin',password('something'), 'y','y','y','y','y','y',
'y','y','y','y','y','y','y','y')

     用户信息可在mysql数据库中的users表中查看。

        


    显示%就是可以任意外网都可以连接了!

3.检测3306端口是否打开,如果是关闭的就打开

    检测命令

 netstat -an|grep 3306

我这里是打开了的,如果没有打开的话显示的就是

tcp            0           0    (服务器ip地址):3306                    0.0.0.0:*                                   LISTEN

如何打开呢?

同样找到my.cnf文件

找到bind-address = (服务器本地ip地址)这样的配置信息,然后将这条配置信息注释掉或者将ip换成你想被允许连接的电脑的ip。

service mysqld restart重启

服务器本机打开3306端口不一定能行,我们还要在腾讯云平台配置安全组,将3306端口打开!



如何配置安全组这里就不说了!

然后再navicat中就像连接本地的myql一样连接就行了!(填服务器的公网ip)

猜你喜欢

转载自blog.csdn.net/qq_38016931/article/details/80957410