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 连接其他机器的数据库,有时能连有时连不上