Mysql安装问题汇总

解决Navicat连接不上MySql服务器报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client
1.问题原因
2.解决问题
1.问题原因
通过相关问题查阅,发现是由于navicat版本的问题造成连接失败。mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

MySql查看版本号-1

LITING:~ liting$ mysql -uroot -p    // 进入mysql
Enter password:  //输入mysql密码,如下提示表示登录成功
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 8.0.14 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

MySql查看版本号-2(可以进入mysql后通过mysql命令查看)

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.14    |
+-----------+
1 row in set (0.00 sec)

2.解决问题
1.进入mysql

LITING:~ liting$ mysql -uroot -p
Enter password:  // mysql密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 26
Server version: 8.0.14 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

2.输入命令修改加密规则

1.ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;
password替换为mysql连接密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678' PASSWORD EXPIRE NEVER;
1
2.ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
password为修改的新密码。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
1
3.刷新权限,使修改生效。

FLUSH PRIVILEGES; 
1
4.查看表中相关信息,确认修改是否真正生效

mysql> use mysql;  //先使用命令 use mysql
Database changed
mysql> select user,host,plugin from user where user='root'; // 在输入该命令
+------+-----------+-----------------------+ 
| user | host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | mysql_native_password |
+------+-----------+-----------------------+
1 row in set (0.00 sec)

如上,密码校验规则已经修改成功

//******

最近遇到了一件非常棘手的问题,用Navicat远程连接数据库居然连接不到,真是头都大了。
网上查阅了一下原因,原来是没有开通远程权限,好吧,下面我就来回忆一下自己怎么处理这问题的!

大家都知道,用Navicat连接数据库一般是这样连得:

问题整理以及解决办法

错误一:

错误原因:

本地IP(xxx.xxx.xxx.xxx)没有访问远程数据库的权限。于是下面开启本地IP(xxx.xxx.xxx.xxx)对远程mysql数据库的访问权限。

解决办法:

1.首先远程连接进入服务器,在cmd中输入mysql -u root -p,然后回车,输入密码后回车进入mysql命令行。


2.输入use mysql;

3.输入select user,password,host from user;
可以看到host中只有localhost主机。我们需要将xxx.xxx.xxx.xxx也添加到这里才对。

4.添加方法如下:

输入
grant all privileges on *.* to root@”xxx.xxx.xxx.xxx” identified by “密码”;

或者 ​GRANT ALL PRIVILEGES ON *.* TO ‘root’@’xxx.xxx.xxx.xxx’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

这相当于是给IP-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限。

然后再输入
flush privileges;
这相当于是重新加载一下mysql权限,这一步必须有。

5.再次输入select user,password,host from user;
可以看到host中已经有了新加的IP。

6.现在再次用Navicat for MySQl访问远程mysql数据库,已经能正常打开了。
问题解决。

7.如果还是连接不到,那是不是 MySQL Server 绑定了本地地址,打开 /etc/mysql/my.cnf,

找到:bind-address = 127.0.0.1

去除 IP 地址绑定,把它改为:bind-address = 0.0.0.0

然后重启 MySQL Server:/etc/init.d/mysql restart

错误二:

ERROR 2003 (HY000): Can’t connect to MySQL server on ‘hostxxxxx’ (10061)

错误原因:

mysqld数据库服务没有启动。

解决办法:

检查 :在windows 的任务管理器,或者 unix/linux 下 ps -aux | grep mysql 看一下。确认服务已经启动。

处理 :启动mysqld 服务

错误三:

防火墙开启了

解决方法:

防火墙需要允许3306端口连接。
//*******

MySQL在命令行可以连接上,但是用Navicat 连接不上

起因
今天大虾在学数据库的时候,发现老师的数据库用Navicat一下就连接上了,但是大虾的就是连接不上,而且报错是提示密码有问题。但是在命令行,数据库是可以正常连接的。这就是说数据库本身是没有问题的。然后大虾今天的奇幻冒险就开始了。就是要解决这个问题

解决
经过多方查找资料,最后发现是mysql8 的加密方式有了变化。下面是Navicat连接数据库的具体操作:

①、Windows+r 吊起命令行窗口

②、cmd 回车,进入命令行窗口

③、输入mysql -u root -p (root 是mysql数据库的用户名,我的测试用的数据库名称是mysql),并输入mysql的密码

④、更改加密方式:输入

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #password 是你的数据库密码

⑤、更改密码:输入

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; # password是你数据库的密码

(第二行的query是输入内容以后,回车返回的结果)

⑥、刷新一下,输入:

FLUSH PRIVILEGES;

(第二行的query是输入内容以后,回车返回的结果)

注意:三个语句缺一不可,三个语句后方都是有分号的,必须要有的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值