实战:mysql版本升级

/*****************************************************
mysql 5.6.19 升级到5.6.21

*****************************************************/
升级前做好备份是必须的!

----1.查看现有版本mysql的数据目录位置

show variables like '%datadir%';

/usr/local/mysql01/data/ 

---2.安装新版本MySQL

2.1.安装编译代码需要的包

yum -y install  gcc gcc-c++  autoconf automake zlib*  libxml* ncurses-devel libtool-ltdl-devel* make cmake bison bison-devel libaio

2.2.为mysql新建组和用户

#groupadd mysql

#useradd -g mysql  mysql 

2.3.设置用户的系统资源限制

#vi /etc/security/limits.conf

mysql            soft    nproc   2047
mysql            hard    nproc   16384
mysql            soft    nofile  1024
mysql            hard    nofile  65536

2.4.编译安装新版本mysql

tar xvf mysql-5.6.21.tar.gz

cd mysql-5.6.21

编译安装到新位置

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql02 -DMYSQL_DATADIR=/usr/local/mysql02/data \
-DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql02/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci

make 

make install

2.5 停止老版本mysql

service mysqld stop

----3.配置MySQL

3.1.修改/usr/local/mysql权限

#mkdir -p /usr/local/mysql02

3.2.新建数据文件、临时文件

mkdir /usr/local/mysql02/{innodb_data,data,tmp}  -p

mkdir /usr/local/mysql02/mysql_logs/{binary_log,innodb_log,query_log,slow_query_log,error_log}  -p

3.3.修改权限

cd /usr/local/mysql02
chown -R mysql .
chgrp -R mysql .

3.4.修改参数

#vi /etc/my.cnf   

basedir = /usr/local/mysql#数据库安装目录指定到新版本的安装目录
datadir = /var/lib/mysql #原数据库数据目录保持原来的目录即可
skip-grant-tables  #由于升级需要,跳过权限验证
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 中
#去掉STRICT_TRANS_TABLES,禁用数据严格模式
#只需要修改这些,其它的一般不需修改,如果需要将日志之类的转移到新目录,则按需修改

3.5.覆盖启动文件
#cp /usr/local/mysql02/support-files/mysql.server   /etc/init.d/mysqld 

3.6.执行表权限升级 

#service mysqld start #重启新版本MySQL 

#/usr/local/mysql02/bin/mysql_upgrade  #执行表权限升级 

3.7.检查所有数据库
#/usr/local/mysql02/bin/mysqlcheck --all-databases -uroot -p123456   

3.8.重新启动mysql

#vi /etc/my.cnf
去掉skip-grant-tables  

#service mysqld restart #数据库升级成功

时间: 2024-07-28 17:40:08

实战:mysql版本升级的相关文章

企业Shell实战-MySQL分库分表备份脚本

本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.html 企业Shell实战-MySQL分库分表备份 今天是2015年的最后一天,大家都开心的跨年,而我还在苦逼的呵呵-省略 此处内容来自老男孩教育oldboy以及老男孩26期王续精彩分享整理而来  为表示感谢,特整理此篇博文分享给大家! 项目联系笔者QQ:572891887   也可以加入架构师交流群:

屌炸天实战 MySQL 系列教程(二) 史上最屌、你不知道的数据库操作

此篇写MySQL中最基础,也是最重要的操作! 第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网远程连接法 查看\创建\使用\删除\清空\修改 数据库表(是否可空,默认值,主键,自增,外键) 表内容的增删改查 where条件.通配符_%.限制limit.排序desc\asc.连表join.组合union 查

屌炸天实战 MySQL 系列教程(四)【秒杀七年经验 LowB工程师】 主从复制、读写分离、模拟宕机、备份恢复方案生产环境实战

第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不知道的数据库操作 第三篇:屌炸天实战 MySQL 系列教程(三)你不知道的 视图.触发器.存储过程.函数.事物.索引.语句 第四篇:屌炸天实战 MySQL 系列教程(四) 主从复制.读写分离.模拟宕机.备份恢复方案生产环境实战 去年公司有一个七年PHP开发经验的工程师,想要跳槽. 去国内某知名互联网公司面试后,被虐惨了,非要我给他讲讲什么是主从

(转)企业Shell实战-MySQL分库分表备份脚本

本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.html 企业Shell实战-MySQL分库分表备份 今天是2015年的最后一天,大家都开心的跨年,而我还在苦逼的呵呵-省略 此处内容来自老男孩教育oldboy以及老男孩26期王续精彩分享整理而来  为表示感谢,特整理此篇博文分享给大家! 项目联系笔者QQ:572891887   也可以加入架构师交流群:

实战MYSQL 8.0.12 主主复制配置过程

实战MYSQL 8.0.12 主主复制配置过程 搭建环境: Server name IP mysql1 192.168.200.1 mysql2 192.168.200.2 服务器版本:CentOS Linux release 7.5.1804 (Core)MYSQL版本:8.0.12 # 采用源码安装方式, 此过程略,或者参考 http://blog.51cto.com/snowlai/2140451 由于MYSQL采用的是源码安装方式,没有生成 /etc/my.cnf 文件,需要手动创建,创

MySQL版本升级

日常工作中,数据版本升级是常有的事,升级过程非常简单,但也容易忽视一些问题 1.大版本号和小版本号,使用在什么位(32/64)的系统上 2.或者5.1的默认使用区分大小写,若5.6使用不区分,这会导致APP找不到库的,所以需要注意 3.就是5.1到5.6升级没问题,但到5.7,有时候会提示: ERROR 1031 (HY000) at line 833: Table storage engine for 'histories' doesn't have this option 这是为什么呢?因为

实战mysql分区

前些天拿到一个表,将近有4000w数据,没有任何索引,主键.(建这表的绝对是个人才) 这是一个日志表,记录了游戏中物品的产出与消耗,原先有一个后台对这个表进行统计.....(这要用超级计算机才能统计得出来吧),只能帮前人填坑了.... 数据太大,决定用分区来重构. 如果你发现是empty,说明你的mysql版本不够,分区至少要5.1 下面针对业务查询,决定用时间来做range分区(还有list,hash等类型),一个月一个区. 按照RANGE分区的表是通过如下一种方式进行分区的,每个分区包含那些

MySQL版本升级之5.6到5.7

两种升级方式 In-Place Upgrade: Involves shutting down the old MySQL version, replacing the old MySQL binaries or packages with the new ones, restarting MySQL on the existing data directory, and running mysql_upgrade. Logical Upgrade: Involves exporting exi

【转载】实战mysql分区(PARTITION)

转载地址:http://lobert.iteye.com/blog/1955841 前些天拿到一个表,将近有4000w数据,没有任何索引,主键.(建这表的绝对是个人才) 这是一个日志表,记录了游戏中物品的产出与消耗,原先有一个后台对这个表进行统计.....(这要用超级计算机才能统计得出来吧),只能帮前人填坑了.... 数据太大,决定用分区来重构. 如果你发现是empty,说明你的mysql版本不够,分区至少要5.1 下面针对业务查询,决定用时间来做range分区(还有list,hash等类型),