架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7848|回复: 0

[资料] linux更新mysql8.0的心酸史

[复制链接]
发表于 2019-1-10 14:15:36 | 显示全部楼层 |阅读模式
本文完全是个人实践经验,包含了mysql8.0升级的全过程以及中间遇到的问题及解决方法。

整个过程中参考的有价值的文档均有标注。

欢迎收藏,欢迎转发,但希望注明出处https://blog.csdn.net/qq_34175893/article/details/79564604原创不易



首先下载安装所需安装包,根据自己所需选择(这里以rhel7.4,64位为例)

https://dev.mysql.com/downloads/mysql/8.0.html



解压缩tar包

Tar -zxvf mysql-8.0.4-0.1.rc.el7.x86_64.rpm-bundle.tar

报错

gzip: stdin: not in gzipformat

tar: Child returnedstatus 1

tar: Error is notrecoverable: exiting now


解决方法:

去掉z参数,使用 tar -xvf解压正常

原因分析:

1、压缩文件被人为的改过名称,比如:最初压缩的并非.gz,被人为的修改了后缀,这时可以去掉后缀再解压,如:文件FMIS2600DMP.tar.gz,去掉gz后缀,再用tar -xvf 解压

2、-z参数实际上是调用bz2的加压或者解压程序,去掉该参数,则同样可以避免该问题
软件包的安装

这里就按照下面的做就行了,不然会出现很多软件包的依赖问题。具体问题就不举例了,我遇到的挺多的

将解压得到的所有rpm包放在同一个空的文件夹下,mysql-community-server-miniaml-*除外,因为会和server及client冲突,


QQ截图20190110141004.jpg

然后使用如下命令安装(我是建议直接全部装了就好了,没必要按照我下面的链接所给的那样限定很多,因为那样会出现一些冲突问题,直接把9个rpm包都用yum安装了就好了,建议一定要用yum装,不要用rpm命令,因为yum会自动检测并解决安装包之间的冲突和依赖问题)

sudoyum install mysql-community-*

安装参考:https://dev.mysql.com/doc/refman ... stallation-rpm.html


Can’t connect to local MySQL serverthrough socket ‘/var/lib/mysql/mysql.sock


QQ截图20190110141055.jpg

解决步骤:

1 systemctl stop mysqld (停止服务)

2 rm -fr /var/lib/mysql/* (删除/var/lib/mysql下的所有文件)

3 rm /var/lock/subsys/mysqld(删除锁定文件)

4 killall mysqld (杀死所有mysqld进程)

5 systemctl start mysqld (启动mysql服务。)

参考链接:https://www.cnblogs.com/okstill/p/5667138.html


Root用户无密码登录数据库遇到

Access denied for user 'root'@'localhost' (using password: YES)

方法:

跳过root临时密码登录数据库修改密码

1.    关闭mysql服务:

systemctl stop mysqld

2. 设置环境变量跳过权限检查

systemctlset-environment MYSQLD_OPTS="--skip-grant-tables"

3. 重新启动mysql服务

systemctl start mysqld

4.以root用户登录

mysql -u root

这时便可以成功登录了


QQ截图20190110141210.jpg

5. 设置root用户密码

UPDATE mysql.userSET authentication_string= PASSWORD('Root@123') WHERE User = 'root';

在mysql 5.6之后对密码的强度进行了加强,推出了validate_password 插件(据某些地方说好像之前就有,不过现在成了必须的了)。支持密码的强度要求。,通过如下命令查看validate_password的各参数配置要求,

MySQL密码强度审计插件:validate_password的使用说明http://www.xuchanggang.cn/archives/1033.html


SHOW VARIABLES LIKE 'validate_password%';


QQ截图20190110141258.jpg

使用如下命令可以自行配置参数,对密码强度要求最重要的参数为下面的policy

set global validate_password.policy=LOW;


QQ截图20190110141335.jpg

重新执行

UPDATEmysql.user SET authentication_string = 'root123'  WHERE User = 'root';


QQ截图20190110141419.jpg

所以最终的修改密码的命令为

UPDATEmysql.user SET authentication_string = 'root123'  WHERE User = 'root';


QQ截图20190110141444.jpg

6. 停止mysql服务

systemctl stopmysqld

7. 取消之前设置的跳过权限检查的选项

systemctl unset-environment MYSQLD_OPTS

8.正常启动mysql

systemctl start mysqld

9. 使用前面设置的新密码登录

mysql -u root -p



登录时遇到问题参考:http://blog.csdn.net/u014306472/article/details/78160427



查看默认密码

grep "temporary password"/var/log/mysqld.log



下面是我把上面的命令写在一块,这样copy执行只需一次,而不需3次

重新登录前,设置跳过权限检查 systemctl stop mysqld; systemctl set-environmentMYSQLD_OPTS="--skip-grant-tables"; systemctl start mysqld
重新设置
设置完成后,回复权限检查 systemctl stopmysqld; systemctl unset-environment MYSQLD_OPTS; systemctl start mysqld;





上一篇:YouCore思维力训练:用框架解决问题
下一篇:公共管理学电子版资料
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-5-29 04:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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