Mysql 5.7登陆密码问题

环境情况:

        SUSE Linux Enterprise Server 11 SP3  (x86_64) 

          Mysql  5.7.19

   刚开始安装的时候打算安装二进制文件tar.gz,结果安装过程中问题百出,而且网上查了好久,都以失败而告终,最后选择rpm包进行安装,运气比较好,除了首次登陆找不到随机密码纠结外,没出什么大问题。

   1.下载安装包,四个包缺一不可,不然会报依赖不满足,然后依次执行rpm -ivh 文件名  

mysql-community-common-5.7.19-1.sles11.x86_64.rpm
mysql-community-libs-5.7.19-1.sles11.x86_64.rpm
mysql-community-client-5.7.19-1.sles11.x86_64.rpm
mysql-community-server-5.7.19-1.sles11.x86_64.rpm

2.这中间没出现什么问题,也没什么好说的,说说安装完毕后登陆的问题吧。在安装完毕后根本没出现所谓的root用户的随机密码,所以在首次登陆的时候就尴尬了,

执行mysql  -u root 直接进不去,然后从网上找了好久,其实都是一篇复制来复制去,让从安全模式进入后修改user表的password字段,然而尴尬的是mysql 5.7已经取消了这个字段,该方法行不通。又想了想,安装没有显示随机密码,但他确实是创建了,会不会记录在了日志里,然后开始找日志,问题来了,日志在哪里?mysql安装目录在哪里?那就找吧,不在/usr/local下,最后没办法了,直接找服务,ps -ef|grep mysql 还好,找到了需要找的文件路径


cat  /var/log/mysql/mysqld.log后发现文件很长,都没什么意义,那就直接找需要的,grep password  /var/log/mysql/mysqld.log

第一行就是需要的,为了准确定位,建议直接 grep "temporary password"  /var/log/mysql/mysqld.log,终于见到了所谓的随机密码

2017-08-31T15:37:43.822067Z 1 [Note] A temporary password is generated for root@localhost: ;ik=?y9wuxbI

用这个登陆mysql,成功。

3.这个密码太随机了,必须改下啊,执行set password=pasword('newname');然后刷新让立即生效flush privileges;

在改密码时,mysql会有检核机制,不符合他的检核规则就修改不成功,会强制修改失败,这就很蛋疼了,为了修改密码纠结了好久,试了好多次才设置成功,最好大写小写数字特殊字符全上。然后问题又来了,这样改完密码后每次登陆太费劲了,那有没有方法去不让他检核呢?去官网查发现这个检核是可以关掉的,直接在/etc/my.cnf中添加

validate-password=OFF,保存重启mysql,然后登陆后重新用set命令设置密码,这下剧可以设置简单密码了。

那如果后面你把自己设置的密码忘了,那就得换另一种方法重置密码了,以下方法也可以用在上面找不到生成随机密码日志文件的情况。

  1.首先在/etc/my.cnf中添加一行skip-grant-tables,该命令是让root可以免密登陆;

  2.执行mysql -u root -p 后出现输入密码选项,直接回车就好。mysql 5.7的user表没有了password字段,查看user表,select * from user\G;发现有一个字段authentication_string,后面值是*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE,看着像是存密码的字段,改着试下呗,

update user set authentication_string=PASSWORD('123456') where User='root';

然后发现可以用设置的这个密码登录,但是在执行操作时会提示让修改密码,那就修改吧,用set password修改,可以,密码重置完毕。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页