centos下MySQL登录1045问题解决
由于需要在centos下部署整个应用,自然少不了对数据库的操作。但很多人可能会遇到一些问题,比如创建用户成功,但是却无法登录。
无法登陆一般就两个原因。第一,远程访问端口没开,第二个原因就是密码错误了(很奇怪,我们登录时的密码明明是正确的,但还是会提示密码错误,我也不知道这是什么原因,有可能是编码之类的吧)
远程访问端口没开这种情况比较好解决,如果用的云服务器,在控制台去配置安全组,打开相应端口就可以了。
这里说一下第二种错误,这个比较坑。第二种情况往往会报错显示:1045 Access denied for user 'root'@'%' (using password:YES)。
我把完整流程大致写一遍。我的操作系统是centos7.4,MySQL版本是5.7。
首先登陆mysql,我的是root用户。登录命令是
mysql -u root -p
输入登录密码后,窗口变化如下图:
首先看一下现在系统里面有哪些用户,以及用户的具体权限,具体命令:
查看用户:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
查看具体用户的权限:
show grants for 'root'@'%';
窗口变化如下图:
接下来我要创建一位用户,让改用户能够远程访问数据库,并对其进行操作。具体命令如下:
create user zhangsanidentified by 'zhangsan.CQU.2020.lisi';
grant all privileges on *.* to zhangsan@'%' identified by 'zhangsan.CQU.2020.lisi';
或者一条命令直接搞定:
grant all privileges on *.* to 'zhangsan'@'%' identified by 'zhangsan.CQU.2020.lisi' with grant option;
操作完成后,千万记得刷新,否则可能不生效,命令如下:
flush privileges;
此时再查看用户,就能发现多了一位用户,也就是我们刚才创建的用户。
输入exit,退出MySQL,然后试着用zhangsan这个账户登录一下。
问题顺利出现了,就是登不上去,接下来去解决这个问题咯。
首先,找到自己的MySQL的my.cnf文件,(我的在etc文件夹下面,不同的人可能不一样,用Linux命令按条件查找即可)
打开文件后(vi my.cnf),进入编辑模式(a)找到mysqld关键字,在mysqld下面添加skip-grant-tables,保存退出(先esc,再:wq),如图:
将注释去掉即可。
然后重启mysql,命令如下:
service mysqld restart
接下来就是重新登录,然后修改密码啦。
提示输入密码那里,直接enter,跳过密码验证,登陆成功。接下来进入mysql数据库,然后修改密码,命令如下。
use mysql
修改密码:
update user set authentication_string=password("zhangsan.CQU.2020.lisi") where user="zhangsan";
如图:
然后退出mysql,将刚刚修改过的my.cnf文件改回来,并重新启动mysql。
可以看到登录已经成功了,远程连接也能成功,就不演示了,如果远程登录还不成功,检查一下端口设置,是否开启了远程访问。
最新文章
- 赠书:HTML5 Canvas 2d 编程必读的两本经典
- 安装 log.io 实时监控 php_error 日志
- PopupWindow的使用
- 【BZOJ3732】 Network Kruskal+倍增lca
- poj2001 Shortest Prefixes (trie)
- 九度OJ 1511 从尾到头打印链表
- Swift(二,元组,可选类型,类型转化)
- a标签调用js的几种方法
- 计算rem
- .NET Framework VS .NET Core
- 盒模型、position、float详解css重点汇总
- vue分页组件二次封装---每页请求特定数据
- Tensorflow中神经网络的激活函数
- polyfill-eventsource added missing EventSource to window ie浏览器 解决方案
- Java JMX 监管
- Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)
- vue+hbuilder监听安卓返回键问题
- 解决Max retries exceeded with url的问题
- C++ 四种显示转换
- 【DUBBO】 Dubbo内核实现之动态编译
热门文章
- 2018-2-13-windows-10预览版升级win10-7月29-10240.16384
- SDUT-3334_数据结构实验之栈与队列七:出栈序列判定
- @loj - 3039@ 「JOISC 2019 Day4」蛋糕拼接 3
- Getting started with the basics of programming exercises_1
- DirectEvents用法
- typescript基础语法--变量/函数/指令/类
- python yield 和 return 对比分析
- Python--day27--内置函数isinstance和issubclass方法
- 试用ZooKeeper
- P1033 沙茶会传染