Navicat(或其他查看数据库软件)连不上mysql怎么解决?

Posted 喵仙君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Navicat(或其他查看数据库软件)连不上mysql怎么解决?相关的知识,希望对你有一定的参考价值。

一般连不上mysql无非几种情况:

1、密码错误;

2、mysql没有设置让其他ip可以连接;

这里讨论的是在linux下的mysql两种都有情况。而我们的解决办法也比较简单,第一步、修改配置;第二步、修改密码;第三步、配置权限让所有ip都可以连上;第四步、刷新保存让配置生效;最后、验证一下。是不是非常简单。下面开始:

1.修改配置文件 my.cnf,那么这个文件在哪里呢,在服务器命令行中输入下面这句就能打开这个my.cnf文件了:

vi /etc/my.cnf

2.打开以后在配置文件 [mysqld] 下添加 skip-grant-tables,你说这句怎么输入?简单:按一下键盘上的Insert键,然后光标就一闪一闪的,代表可以输入。输入完,同时安心shift+:两个键,再输入!wq就会退出。

[mysqld]

skip-grant-tables

3.然后就可以用空密码的 root 用户连接到 MySQL,并且更改 root 口令了,输入下面这句(下面这句就不用使用密码对吧):

mysql -u root

4.然后就进入下面这个状态:

mysql> 

5.在mysql后面输入:use mysql;

然后再输入:update user set password=password('123456') where User='root';

这两句回车,就可以把root用户的密码改成123456.

mysql> use mysql;
Database changed
mysql> update user set password=password('123456') where User='root';
Query OK, 3 rows affected (0.00 sec)

Rows matched: 3  Changed: 3  Warnings: 0

注意:一般情况上面这两句就可以搞定,但是,(好像是mysql后面版本问题,password这个字段后面版本没有了,改成authentication_string)。所以,要用这句:

update user set authentication_string=password('123456') where user='root';

6.OK,改完了要记得刷新一下让它生效。输入:flush privileges;

mysql> update user set password=password('123456') where User='root';

ERROR 1046 (3D000): No database selected

mysql> use mysql;

Database changed

mysql> update user set password=password('123456') where User='root';

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3  Changed: 3  Warnings: 0

mysql> flush privileges;

7.最后输入:exit退出

mysql> update user set password=password('123456') where User='root';

ERROR 1046 (3D000): No database selected

mysql> use mysql;

Database changed

mysql> update user set password=password('123456') where User='root';

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3  Changed: 3  Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

8.记得回来删除刚在my.cnf配置的那句,就是上面第1,2两步,把第2步的skip-grant-tables删除,然后保存。

9.激动人心的时候到了。这时候你就可以用新的密码登录了。赶快用navicat验证一下吧。如果你是远程连接,下面的主机ip地址记得改成你linux服务器的ip。

10.前面的修改已经搞定了,但是我们是要让所有设备都能远程数据库

一、在Linux上以root账号登录主机

二、在主机上登录MySQL

mysql -uroot -p123456

三、先删除原来的 root@% 用户(若之前没有创建,则跳过此步骤)

drop user 'root'@'%';

四、删除成功了,再创建用户 root@%

create user 'root'@'%' identified with mysql_native_password by '123456';

五、接着授权

grant all on *.* to 'root'@'%' with grant option;

六、刷新配置

flush privileges;

七、退出

exit;

Navicat断网时连不上数据库

问题描述

用 navicat 连接本地搭建的 mysql 数据库,有网络时,一切正常,断网之后,连接不上,并报错,如下图所示

技术分享图片

 

解决方案

1、在 navicat 中,选中 mysql 连接,右键 - 连接属性 - 常规,如下图所示

 技术分享图片

 

2、将“主机名或IP地址”修改为“127.0.0.1”,然后点击连接测试,弹出提示“连接成功”,点击确定后,数据库可以在断网情况下正常使用

 

参考网址:https://www.cnblogs.com/lidelin/p/6815206.html

以上是关于Navicat(或其他查看数据库软件)连不上mysql怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

我的navicat for mysql 连接其他机器的数据库,有时能连有时连不上

用的Navicat15连不上数据库了,密码是正确的?

Navicat断网时连不上数据库

Navicat断网时连不上数据库

Navicat MySql 连不上 本地开发环境 MySQL8.0

我安装了mysql后,navicat总是连不上是啥问题?说是与mysql连不上。。。。。