mysql5.7 yum 密码_mysql5.7 yum 安装 密码

先在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;

d6105b08826092edb6ffe8df31f8c577.png

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。此时在登陆就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值