Centos6安装mysql5.7最新版
最近因为公司的服务器需要做基线和漏洞扫描,基线方面问题不大,按照报告上的加固建议,选一些权重高的问题处理一下就好了。但是漏洞扫描就比较坑了,扫出来了十几个高危和一百六十多个中危漏洞,不过还好漏洞基本上都出在openSSH和mysql上,升级一下这两个的版本就好了。因为是云主机openSSH不敢乱动,所以我们先把mysql升级到最新版。centos并不能像window简单快捷的直接运行升级包,所以我们采取的方式是卸载重装。
卸载mysql
首先把数据库里面的数据备份一下
$> mysqldump -u root -p --all-databases > backdb.sql
输入密码即可开始备份,完成后的备份文件会放在当前目录里,用 ll 命令即可看到
通过 whereis mysql 和 which mysql 来查找mysql文件夹,通过rm命令删除文件夹,删除 /etc/my.cnf配置文件
查看当前mysql: rpm -qa|grep mysql
没有显示任何内容可进行下一步,如果有输出的话通过 yum remove 后面跟上一行输出的mysql内容进行删除
删除完mysql后,可以准备开始重新安装了。
下载mysql
因为服务器是纯内网的,所以只能通过源码来进行安装。mysql下载:https://dev.mysql.com/downloads/mysql/
自行选择你需要下载的版本,因为之前安装的是5.7,所以为了保证数据不出现问题,这次仍然准备安装5.7。
最新的版本是5.7.27,其他的按图片上的选择,64位或32位则要看系统本身了可以通过 getconf LONG_BIT 命令查看。
安装mysql
下载完成后上传到服务器里的 /usr/local/ 目录下
解压: tar -zxvf (文件名) 然后通过 mv 命令将文件夹名修改为mysql
创建用户组和用户
用户组: groupadd mysql
用户: useradd -r -g mysql mysql
给mysql用户指定专有用户和用户组
进入mysql文件夹:cd /usr/local/mysql
创建data目录:mkdir data
指定用户和用户组
cd /usr/local/
chown -R mysql mysql/
chgrp -R mysql mysql/
初始化mysql
进入bin目录:cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
记住最后面的的临时密码,如果忘记密码或者想重新初始化,可以先将mysql/data目录中文件删除,然后再执行初始化命令。
配置my.cnf
vi /etc/my.cnf 没有的话会自动创建
输入如下内容:
[mysqld] basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data/
启动mysql
cd /usr/local/mysql/bin
./mysqld_safe --user=mysql &
我实际上在走到这一步的时候出现了bug,输出显示linxu守护进程已经启动,但是 ps -ef|grep mysql 始终找不到mysql进程,这个时候如果你去百度的话,会得到各种各样的答案,可能对你并不适用,最好的方式是去看mysql的错误日志,一般存放在mysql目录下的data文件夹里后缀是.err。如果没有的话可以通过 find / -name 主机名.err 命令查找,主机名可以通过 hostnamectl 命令查看。通过报错来查找问题就会更有针对性,后来发现我配置文件里少打了两个字母,粗心害死人啊!!!
登陆mysql
cd /usr/local/mysql/bin
登录:./mysql -u root -p
登录上mysql之后,必须先修改密码才能进行其他操作
修改密码: set password=password("root");
登录授权:grant all privileges on *.* to'root' @'%' identified by 'root';
授权生效: flush privileges;
至此mysql的安装升级以及完成了,现在就是把之前备份的文件导回到mysql里面了
进入一个数据库: use mysql;
设置编码: set names utf8;
导入sql文件: source ....../backdb.sql;
原文地址:https://www.cnblogs.com/kinhzf128/p/11311162.html
- Hive 时间转换函数使用心得
- Flume-Hbase-Sink针对不同版本flume与HBase的适配研究与经验总结
- 利用Flume 汇入数据到HBase:Flume-hbase-sink 使用方法详解
- 浅谈保证软件工程质量的一些心得体会
- 基于ELK的nginx-qps监控解决方案
- 2017年年度最烂密码排名
- 字符串方法汇总(三)
- 周鸿祎:“大安全”网络时代 需要AI大数据的技术支持
- 爆料:对扫码支付下手后,据说央行接下来要提高备付金,目标比例42%
- 回顾2017年5大科技突破,“时间晶体”充满想象!
- 1宽币=883?山本宽称要发行自己的数字货币
- 十种深度学习算法要点及代码解析
- 王健林旗下万达网科被曝大裁员 总裁出面说话了
- lodash源码分析之缓存方式的选择
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android开发之SD卡文件操作分析
- Android学习之Broadcast的简单使用
- Android 仿微信自定义数字键盘的实现代码
- RN在Android打包发布App(详解)
- Android开发之使用SQLite存储数据的方法分析
- Android进度条控件progressbar使用方法详解
- Android自定义view利用Xfermode实现动态文字加载动画
- Android自定义控件实现下拉刷新效果
- Android实现文件解压带进度条功能
- Android使用ViewPager实现图片滑动预览效果
- Android 布局中的android:onClick的使用方法总结
- Android 提交或者上传数据时的dialog弹框动画效果
- Android 调用系统应用的方法总结
- Android实现网易严选标签栏滑动效果
- Android socket实现原理详解 服务端和客户端如何搭建