mysql -h 1045_CentOS 下 MySQL 登录 1045 问题解决

CentOS 下 MySQL 登录 1045 问题解决

由于需要在 CentOS 下部署整个应用, 自然少不了对数据库的操作. 但很多人可能会遇到一些问题, 比如创建用户成功, 但是却无法登录.

无法登陆一般就两个原因. 第一, 远程访问端口没开, 第二个原因就是密码错误了(很奇怪, 我们登录时的密码明明是正确的, 但还是会提示密码错误, 我也不知道这是什么原因, 有可能是编码之类的吧)

远程访问端口没开这种情况比较好解决, 如果用的云服务器, 在控制台去配置安全组, 打开相应端口就可以了.

这里说一下第二种错误, 这个比较坑. 第二种情况往往会报错显示: 1045 Access denied for user 'root'@'%' (using password:YES).

ab7653affab982b574eb7acc55df2e04.gif

我把完整流程大致写一遍. 我的操作系统是 centos7.4,MySQL 版本是 5.7.

首先登陆 MySQL, 我的是 root 用户. 登录命令是

MySQL -u root -p

输入登录密码后, 窗口变化如下图:

ab7653affab982b574eb7acc55df2e04.gif

首先看一下现在系统里面有哪些用户, 以及用户的具体权限, 具体命令:

查看用户:

SELECT DISTINCT CONCAT('User:''',user,'''@''',host,''';') AS query FROM MySQL.user;

查看具体用户的权限:

show grants for 'root'@'%';

窗口变化如下图:

ab7653affab982b574eb7acc55df2e04.gif

接下来我要创建一位用户, 让改用户能够远程访问数据库, 并对其进行操作. 具体命令如下:create user zhangsanidentifiedby'zhangsan.CQU.2020.lisi';

grant all privileges on*.*to zhangsan@'%'identifiedby'zhangsan.CQU.2020.lisi';

或者一条命令直接搞定:

grant all privileges on *.* to 'zhangsan'@'%' identified by 'zhangsan.CQU.2020.lisi' with grant option;

操作完成后, 千万记得刷新, 否则可能不生效, 命令如下:

flush privileges;

此时再查看用户, 就能发现多了一位用户, 也就是我们刚才创建的用户.

ab7653affab982b574eb7acc55df2e04.gif

输入 exit, 退出 MySQL, 然后试着用 zhangsan 这个账户登录一下.

ab7653affab982b574eb7acc55df2e04.gif

问题顺利出现了, 就是登不上去, 接下来去解决这个问题咯.

首先, 找到自己的 MySQL 的 my.cnf 文件,(我的在 etc 文件夹下面, 不同的人可能不一样, 用 Linux 命令按条件查找即可)

打开文件后 (vi my.cnf), 进入编辑模式(a) 找到 mysqld 关键字, 在 mysqld 下面添加 skip-grant-tables, 保存退出(先 esc, 再: wq), 如图:

ab7653affab982b574eb7acc55df2e04.gif

将注释去掉即可.

然后重启 MySQL, 命令如下:

service mysqld restart

接下来就是重新登录, 然后修改密码啦.

ab7653affab982b574eb7acc55df2e04.gif

提示输入密码那里, 直接 enter, 跳过密码验证, 登陆成功. 接下来进入 MySQL 数据库, 然后修改密码, 命令如下.

use MySQL

修改密码:

update user set authentication_string=password("zhangsan.CQU.2020.lisi") where user="zhangsan";

如图:

ab7653affab982b574eb7acc55df2e04.gif

然后退出 MySQL, 将刚刚修改过的 my.cnf 文件改回来, 并重新启动 MySQL.

ab7653affab982b574eb7acc55df2e04.gif

可以看到登录已经成功了, 远程连接也能成功, 就不演示了, 如果远程登录还不成功, 检查一下端口设置, 是否开启了远程访问.

来源: https://www.cnblogs.com/doufuyu/p/12155112.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值