Access denied for user ''@'localhost' to database 'mysql'问题
Access denied for user ''@'localhost' to database 'mysql'问题
MySQL : Access denied for user ''@'localhost' to database 'mysql'问题看点。
原创starmyao 最后发布于2018-08-24 21:10:23 阅读数 7880 收藏
展开
问题描述:
MySQL命令行,登陆root账户的时候,密码为不为空,但是执行‘use mysql;’命令的时候,总是提示:‘Access denied for user ”@’localhost’ to database ‘mysql’ ’。
仔细看错误提示Access denied for user ''@’localhost’ to database ‘mysql’,意思就是:拒绝user为 ” 的账户登陆,就用空密码登录为匿名用户,没有权限,自己的密码又忘记了。没办法就只有该自己的密码。
问题一解决root密码的办法
MySQL安装目录下找到 my.ini文件,编辑, 找到[mysqlId],在之后添skip-grant-tables(跳过授权表),此时重启 MySQL服务,打开命令行,就可以使用空密码登陆了。(记得重启服务)
1. mysql -u root -p
2. //输入密码,直接使用回车,用空密码登陆
3. mysql>use mysql;
4. mysql>update user set password=PASSWORD('这里输入你的新密码要用单引号') where user='root';
5. mysql> flush privileges;
2.此时,重新启动MySQL服务,然后重新打开控制台。
3.记得把 my.ini 文件中最后添加的那行配置skip-grant-tables给删除了,删除后,要重启服务。使用新密码登陆。
问题二解决‘localhost’的办法
在以上的方法实施后,还是拒绝user为 ” 的账户登陆操作。这是什么原因了?在网上搜n久也没有看出所以然。
又前面的操作,跳过授权表,空密码进入mysql,查看user表。
user | password | host |
+------+-------------------------------------------------+-----------------------------+
| root | *8**************************************D | % |
| root | *8**************************************D | localhost.localdomain |
| root | *8**************************************D | 127.0.0.1 |
| root | *8**************************************D | ::1 |
| | | localhost |
| | | localhost.localdomain |
| DCH | *8**************************************D | % |
| DCH | *8**************************************D | localhost |
发现我的root用户原来没有localhost权限?在mysql -uroot -p -h127.0.0.1登录ok!
那就是没有给“localhost”授权。
我记得授权时使用的'%',为什么没有“localhost”呢?这里用%则代表了所有的host都能远程访问该mysql。
但是查询mysql官方文档说明后,‘%’并不包括localhost!为什么这样呢,害人不浅,快快对localhost和%都进行了赋权。
grant all privileges on *.* to root@"localhost" identified by "password";
flush privileges;
登录成功!
解决Access denied for user ''@'localhost' to database 'mysql'问题
原创你好龙卷风!!! 最后发布于2018-10-15 17:50:20 阅读数 6093 收藏
展开
在修改mysql的root用户密码后,再登陆,提示如标题的错误,找了一番答案之后,终于解决,步骤如下:
1.停掉mysql: service mysqld stop
2.使用不验证的状态登陆mysql:
mysqld_safe --skip-grant-tables & //后台运行
启动mysql: service mysqld start
3.进入mysql: mysql -u root
4.use mysql;
5. update user set password=password("new_pass") where user="root";// 'new_pass' 这里改为你要设置的密码
或者
5.delete from user where user=''; 删除空用户
6,flush privileges;
7,quit
8.service mysqld restart
9.重新进入 mysql -utoot -p
然后输入密码就会发现问题已解决
最新文章
- 解读sencha touch移动框架的核心架构(一)
- FastReport报表控件使用技巧总结
- Section 1.4 Mother's Milk
- Java学习日记-2 零零碎碎
- 创建并发布npm包
- Linux的同步访问技术
- js通过Date获取日期
- httpclient的封装完整版
- PHP之ThinkPHP框架(界面)
- Scala 入门介绍
- Python 爬虫入门(四)—— 验证码上篇(主要讲述验证码验证流程,不含破解验证码)
- metasploit framework(十):SSH扫描、爆破
- CLR、内存分配和垃圾回收
- python 正则表达式替换字符串中匹配的字符
- 使用Ajax无刷新页面登录
- 重新设定McAfee Agent的菜单语言
- Python【每日一问】17
- [svc]ssh生成key不交互
- 常用eclipse插件
- 【题解】ZJOI2007报表统计
热门文章
- CenOS下监控工具尝试
- [从源码学设计]蚂蚁金服SOFARegistry之消息总线
- JAVA中删除文件夹下及其子文件夹下的某类文件
- C++-codeblocks安装
- 冲刺随笔——Day_Four
- JZOJ 【NOIP2016提高A组集训第16场11.15】SJR的直线
- 20200513_安装windows sql server 2012 _ ws功能 NetFx3时出错,错误代码:-2146498298
- 如何将图片、html等格式转成pdf
- 20200311_最新爬取mzitu
- Spring框架之AOP源码完全解析