请选择 进入手机版 | 继续访问电脑版
贠老师培训群:150322713    贠老师QQ:767708506

贠老师office培训-excel学习网

 找回密码
 立即注册
点击咨询贠老师
查看: 479|回复: 13

[mysql] MySQL 5.7不能登录的问题

[复制链接]

607

主题

604

帖子

1909

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1909
发表于 2016-3-3 23:37:55 | 显示全部楼层 |阅读模式

先在MySQL出到了5.7版本,经理让用最新的版本搭建LNMP,搭建过程遇到很多问题,今天简要说说MySQL的一个问题:

安装完成后,无法登陆mysql,按理说新安装后默认是以root用户登录,而且密码应该为空,所以可以直接进的,但是出现了下面的问题

[root@bogon mysql]# bin/mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@bogon mysql]# bin/mysqladmin -uroot password
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

此时我的反应是会不会为了安全起见,新版mysql默认有密码,我一查还真是,mysql默认安装会有密码生成,密码文件直接写在 log-error 日志文件中(在5.6版本中是放在 root/.mysql_secret 文件里,更加隐蔽,不熟悉的话可能会无所适从),但是我去查看了log_error,但是没有找到密码,而且也没有root/.mysql_secret 文件;

之后我尝试在配置文件中加了skip-grant-tables,重启之后可以进去了;所以一定是密码的问题,所以我开始改密码

mysql> update user set password=password('123456') where user='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> update user set password=password('123456') where user='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'

但是出现了这种情况,改不了,网上说:官方的方式,笔者无论是否使用--skip-grant-tables启动mysql都测试失败,亲们可以测试:
shell>mysql -uroot -p'password'    #password即.mysql_secret里的密码
mysql>SET PASSWORD = PASSWORD('newpasswd');

但是根据上面的操作,官方说明也不是太靠谱。。。。。。。。。

于是我又开始搜索各种解决办法,又在朋友的帮助下,终于找到解决的办法-----------------------

我们把root@localhost用户删了,然后有新建了这个用户

mysql> delete from mysql.user where user='root' and host='localhost';
Query OK, 1 row affected (0.01 sec)
mysql> select user,host from mysql.user;
+-----------+-----------+
| user      | host      |
+-----------+-----------+
| mysql.sys | localhost |
+-----------+-----------+
1 row in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select user,host from mysql.user;
+-----------+-----------+
| user      | host      |
+-----------+-----------+
| mysql.sys | localhost |
| root      | localhost |
+-----------+-----------+
2 rows in set (0.01 sec)

但是到这还是不行,你用下面的命令会发现一个情况

mysql> select * from mysql.user\G;

Grant显示N--mysql权限架构体系(应该是这么说)是关闭的,so.............

mysql> grant all on *.* to 'root'@'localhost' identified by '123456' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

退出mysql,将skip-grant-tables注掉,然后重启mysql。此时在登陆就可以了。

-----------------------------------------------------------------------------------------------

当然许多朋友的错可能只跟我类似,但是并不是相同,如果上述方法还是不行,可以跟我留言,我们可以探讨。

当然我对mysql还并不是太熟,我在想删除用户,如果里边有数据怎么办,其实以防万一备份一下就好了;而我朋友告诉我其实删除用户和新建用户不影响数据,没事,因为我没有实际操作,所以不好保证,其实备份一下更好更安全,不影响数据那对我们更好啦。


想要了解更多更全面的web前段知识,css样式,html教程,数据库教程,word教程,excel教程等等,就到excel学习网www.excelxue.com


回复

使用道具 举报

4

主题

1004

帖子

195

积分

注册会员

Rank: 2

积分
195
发表于 2016-3-21 13:27:37 | 显示全部楼层
太给力啊 跪谢啊
回复 支持 反对

使用道具 举报

2

主题

945

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2016-3-23 21:38:59 | 显示全部楼层
请问大家有什么看法?我绝对喜欢这个帖子
回复 支持 反对

使用道具 举报

0

主题

700

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2016-3-24 16:56:14 | 显示全部楼层
有些不是太明白,研究研究再说
回复 支持 反对

使用道具 举报

8

主题

1005

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2016-3-28 11:45:20 | 显示全部楼层
写的不错,支持一下哟
回复 支持 反对

使用道具 举报

0

主题

879

帖子

10

积分

注册会员

Rank: 2

积分
10
发表于 2016-3-29 16:21:46 | 显示全部楼层
谢谢您的分享!
回复 支持 反对

使用道具 举报

0

主题

957

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2016-4-9 13:27:37 | 显示全部楼层
顶顶
回复 支持 反对

使用道具 举报

0

主题

942

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2016-4-14 13:40:58 | 显示全部楼层
谢谢您的分享!
回复 支持 反对

使用道具 举报

1

主题

1041

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2016-4-21 15:05:01 | 显示全部楼层
楼主不错
回复 支持 反对

使用道具 举报

0

主题

879

帖子

10

积分

注册会员

Rank: 2

积分
10
发表于 2016-4-26 10:46:06 | 显示全部楼层
好东西一定要看看!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



陕ICP备15003731号  

贠老师培训 GMT+8, 2018-11-18 19:08 , Processed in 0.234805 second(s), 33 queries .

快速回复 返回顶部 返回列表