mysql8.0报错及解决

ENV:

[root@Fedora ~]# uname -r
5.1.19-300.fc30.x86_64
[root@Fedora ~]# cat /etc/redhat-release 
Fedora release 30 (Thirty)
[root@Fedora ~]# mysql --version
mysql  Ver 8.0.17 for Linux on x86_64 (MySQL Community Server - GPL)

新安装了mysql8.0,但是长时间不操作mysql了,有些东西都忘了,启动mysql后出现了几个错误,进行记录,为以后出现类似问题有个参考

[root@Fedora ~]# systemctl start mysqld
安装后获取密码:
[root@Fedora ~]# grep password /var/log/mysqld.log
2019-07-30T07:05:31.354631Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: jSeFudJgr8>0

一、报错mysqld: Can not perform keyring migration : Invalid --keyring-migration-source option.

#[root@Fedora ~]# mysqld -u root -p //-u后面有没有空格都是一样的,个人习惯使用
[root@Fedora ~]# mysql -uroot -p
Enter password: 
mysqld: Can not perform keyring migration : Invalid --keyring-migration-source option.
2019-07-30T08:15:51.572717Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.17) starting as process 3847
2019-07-30T08:15:51.575180Z 0 [ERROR] [MY-011084] [Server] Keyring migration failed.
2019-07-30T08:15:51.575226Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-07-30T08:15:51.613354Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.17)  MySQL Community Server - GPL.

问题:mysqld命令是MYSQL的主程序,是用来安装初始化;mysql才是MYSQL的命令行工具,这里是命令敲错导致的

应为:

[root@Fedora ~]# mysql -uroot -p

二、报错:ERROR :Access denied for user 'root'@localhost'(using password: YES)

[root@Fedora ~]# mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

问题如三,请和问题三一起看。

三、报错:ERROR :Access denied for user 'root'@localhost'(using password: NO)

[root@Fedora ~]# mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

问题:其实这里的问题是一样的,都是因为

密码错误

密码错误

密码错误

重要的事情多说两遍。

怎么可能是密码错误呢?两个的ERROR是不一样的啊,一个是using password:YES,一个是NO啊。

这里需要说明,这里的YES和NO,不在于用户是否存在。这个结果表示用户对密码有没有字符串的输入,如果没有,MYSQL就会返回NO;而用户对密码有字符串的输入时,MYSQL就会返回YES

所以如果出现这两个错误的时候,要先想想是不是自己的密码错了呢,就不要想其他的原因了,往其他方向找原因是找不出来的。

四、这里有没有发现问题呢?不要说没有啊,嘿嘿

[root@Fedora ~]# mysql -uroot -p"jSeFudJgr8>0"
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.17

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

这里出现了

mysql: [Warning] Using a pasword on the command line interface can be insecure.

没错,这也算问题的。

mysql为了增加安全性,如果用户在登陆时直接把密码在明显位置显示,就会出现这样的提示,表示你的密码存在了安全隐患,其实这样的方式也是不建议使用的,要保证自己的密码不外漏。

不要把这个不当问题哦,容易出大问题的。

五、报错: Your password does not satisfy the current policy requirements

mysql> alter user user() identified by 'abc123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这里的报错其实和问题四有些类似,都是从安全方面考虑的,这里是因为修改的密码太过简单。

在mysql5.7及以上版本中设置密码都要求复杂,密码要包含大写字母、小写字母、数字和字符这四项,哪怕是包含三项都不把密码修改成功的(这个是亲自试了好几次的)

六、在进入mysql后,如果没有修改密码就直接进行database操作也是会出错的,但是由于我的密码都改好了,现在才想起来以前操作mysql的时候有过几次没改密码直接进行database操作的,但是操作失败。由于没有记录,大家就看文字的吧,很多有过这样经历的应该可以明白的(哎,我也不想这样干巴巴的说,这次操作没有错误记录啊)

这样就要我们在第一次进mysql之后第一件事就是把密码改掉,这样就不会影响之后的操作了,这个情况也就第一次进mysql才会有,以后操作就不需要再担心了,毕竟也不是谁都没事干,几天重装一样mysql的,哈哈!

你可能感兴趣的:(Linux,数据库)