MySQL 5.5升级5.6 单实例操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: <div class="Blog_tit4 Blog_tit5" style="word-wrap:break-word; border-bottom-width:0px; padding:0px 0px 11px; color:rgb(86,86,86); font-family:宋体,Arial; line-height:12px"> <span class="Blog_b1" st

同类可参考:

环境:RHEL 6
mysql旧版本:mysql-5.5.28
mysql新版本:mysql- 5.6.26
安装方式:源码编译

不习惯用rpm包来安装mysql,所以此处仍然使用 源码安装编译 mysql
若为rpm包安装,操作过程大体一致,当然路径和安装方法有出入。

因为是实验环境,首先安装mysql5.5。
basedir :  /home/sano1y/mysql5.5
datadir : /home/sano1y/mysql5.5/data
socket : /tmp/mysql.sock
配置文件路径 : /home/sano1y/.my.cnf

此处操作系统用户名为sano1y,下同。

安装过程略。

安装完后配一下用户环境变量
  1. vi ~/.bash_profile
  2. 添加 export PATH=$PATH:/home/sano1y/mysql5.5/bin
  3. source ~/.bash_profile

将默认配置文件放到~/.my.cnf
  1. cp ~/mysql5.5/support-files/my-medium.cnf ~/.my.cnf
先启动服务,修改一下初始密码并确认版本:

  1. [sano1y@localhost ~]$ mysql -uroot -p
  2. Enter password:
  3. Welcome to the MySQL monitor. Commands end with ; or \g.
  4. Your MySQL connection id is 5
  5. Server version: 5.5.28-log Source distribution
  6. Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
  7. Oracle is a registered trademark of Oracle Corporation and/or its
  8. affiliates. Other names may be trademarks of their respective
  9. owners.
  10. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  11. mysql>
  12. mysql> set password=password('root');
  13. Query OK, 0 rows affected (0.00 sec)
  14. mysql>
  15. mysql> flush privileges;
  16. Query OK, 0 rows affected (0.00 sec)
因为5.5、5.6版本的密码均为空,所以先指定一个密码,后面将会用到。


① 停止旧版本
服务

  1. [sano1y@localhost bin]$ mysqladmin -uroot -p shutdown
  2. Enter password:
  3. 151125 00:13:35 mysqld_safe mysqld from pid file /home/sano1y/mysql5.5/data/localhost.localdomain.pid ended
  4. [1]+ Done ./mysqld_safe
  5. [sano1y@localhost mysql5.6]$ ps -ef | grep mysql
  6. sano1y 20590 19687 0 02:00 pts/2 00:00:00 grep mysql



② 备份数据库

备份数据文件,略。

同时备份参数文件。
  1. cp ~/.my.cnf ~/.my.cnf.bk


③ 安装新版本 

同样通过cmake make make install来编译安装 mysql5.6,并初始化
并修改用户环境变量。
  1. vi ~/.bash_profile
  2. export PATH=$PATH:/home/sano1y/mysql5.6/bin
  3. source ~/.bash_profile

将默认5.6的配置文件修改掉(禁用)
  1. mv ~/mysql5.6/my.cnf ~/mysql5.6/my.cnf.default

将对应参数修改为新的。
  1. vi ~/.my.cnf
  2. [mysqld]
  3. basedir=/home/sano1y/mysql5.6
  4. datadir=/home/sano1y/mysql5.5/data
  5. pid-file=/home/sano1y/mysql5.5/sAno1y.pid


④ 启动新版本服务 


  1. mysqld_safe & 启动服务
此时mysql服务器会找到 ~/.my.cnf这个配置文件,并启用。


⑤ 检查升级的表

此时做mysql_upgrade进行检查
  1. mysql_upgrade -uroot -p --force
然后是mysqlcheck

  1. mysqlcheck -uroot -p

进入mysql client检查:
此时 密码仍然是mysql5.5的,因为启动时,是在/home/sano1y/mysql5.5/data/中的mysql.user中校验。
  1. [sano1y@localhost bin]$ mysql -uroot -p
  2. Welcome to the MySQL monitor. Commands end with ; or \g.
  3. Your MySQL connection id is 26
  4. Server version: 5.6.26-log Source distribution
  5. Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
  6. Oracle is a registered trademark of Oracle Corporation and/or its
  7. affiliates. Other names may be trademarks of their respective
  8. owners.
  9. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  10. mysql> select @@datadir;
  11. +-----------------------------+
  12. | @@datadir                   |
  13. +-----------------------------+
  14. | /home/sano1y/mysql5.5/data/ |
  15. +-----------------------------+
  16. 1 row in set (0.00 sec)



顺便可以删一下mysql5.5目录里的其他目录:

  1. [sano1y@localhost ~]$ cd mysql5.5
  2. [sano1y@localhost mysql5.5]$ ls
  3. bin data include lib mysql-test scripts sql-bench sAno1y.pid
  4. COPYING docs INSTALL-BINARY man README share support-files
  5. [sano1y@localhost mysql5.5]$ rm -rf bin/ include/ lib/ mysql-test/ scripts/ sql-bench/ COPYING docs/ INSTALL-BINARY man/ README share/ support-files/
  6. [sano1y@localhost mysql5.5]$
  7. [sano1y@localhost mysql5.5]$ ls
  8. data  sAno1y.pid


总结升级过程:
① 停止旧版本服务 → ② 备份数据库 → ③ 安装新版本 → ④ 启动新版本服务 → ⑤ 检查升级的表

源码编译安装mysql参考:
http://blog.itpub.net/29773961/viewspace-1364808/

编译安装2:

(RHEL 6通用)
我的环境:
CentOS-6.5-64bit+MySQL 5.5.28


【在root用户下操作】
首先用whereis 或者 find等命令查找系统内有无其他mysql,若有,请删除。

并删除/etc/my.cnf(centos ubuntu系统会默认存在)


包依赖:

yum install cmake make -y

yum install gcc gcc-c++ autoconf bison automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* -y

解压后,进入解压出来的文件夹:

cmake -DCMAKE_INSTALL_PREFIX=安装目录 \
        -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
        -DDEFAULT_CHARSET=utf8 \
        -DDEFAULT_COLLATION=utf8_general_ci \
        -DWITH_EXTRA_CHARSETS:STRING=utf8 \
        -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        -DWITH_READLINE=1 \
        -DENABLED_LOCAL_INFILE=1 \
        -DMYSQL_DATADIR=安装目录/data \
        -DMYSQL_USER=执行用户 \          
        -DMYSQL_TCP_PORT=3306
可以提前mkdir出安装目录和data目录。
当然不创建也可以,这将在make install时安装。

比如我自己试验环境:
cmake -DCMAKE_INSTALL_PREFIX=/home/$USERNAME/software/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/home/$USERNAME/software/mysql/data -DMYSQL_USER=op -DMYSQL_TCP_PORT=3306

然后安装:
make && make install

make会比较慢,虽然是c系语言写的,但毕竟几十万行代码。


cd $basedir

(chown USERNAME:USERNAME -R .)


如果data文件夹在mysql之外,需cd进去,并chown mysql:mysql -R .

【在mysql or USERNAME用户下操作:】

cp support-files/my-medium.cnf  ~/.my.cnf

注:mysql 5.6版本要
cp support-files/my-default.cnf  ~/.my.cnf


mysql启动优先查找/etc/my.cnf,最后查找~目录下的.my.cnf。

【(待确认)若两个地方均有,则以后者.my.cnf为准(覆盖之前的参数)】


然后继续:

安装目录/scripts/mysql_install_db  --user=USERNAME --basedir=安装目录 --datadir=安装目录/data  #初始化。

常用的三个命令:

启动服务:

安装根目录/bin/mysqld_safe --user=USERNAME &

开启mysql:

安装目录/bin/mysql -uroot -p

关闭服务:

安装根目录/bin/mysqladmin -uroot -p shutdown

配置一下环境变量:
vi ~/.bash_profile
加入
export PATH=$PATH:安装目录/bin/
保存退出
source ~/.bash_profile即可


另外通过

安装根目录/bin/mysqld_safe --skip-grant-tables & 可以绕过登录密码,解决忘记root密码的方案之一。
当然要提前关闭mysql服务或者kill掉mysql,这样才能以--skip-grant-tables方式启动。

已经在centos 6.5测试mysql5.5及5.6编译安装通过



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
SQL 运维 关系型数据库
MySQL 中 GRANT 操作会引起复制中断吗?
GRANT 操作并不是一个原子性操作,不管执行成功与否,都会触发一个隐式重载授权表的行为。 在生产环境中需要规范用户创建及授权的操作,不推荐使用 DML 语句去直接变更 mysql.user 表,可能会引发其他的问题,若使用了 DML 语句进行变更, 需要手工执行 flush privileges。
68 4
|
4月前
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
67 0
|
5月前
|
关系型数据库 MySQL
【mysql技巧】如何在这个mysql语句执行前加个前提,也就是只有表里没有相同数据才进行添加插入操作
【mysql技巧】如何在这个mysql语句执行前加个前提,也就是只有表里没有相同数据才进行添加插入操作
39 1
|
1月前
|
监控 关系型数据库 MySQL
如何升级MySQL数据库?
【10月更文挑战第16天】如何升级MySQL数据库?
|
2月前
|
监控 关系型数据库 MySQL
如何升级mysql的版本
如何升级mysql的版本
527 2
|
2月前
|
存储 监控 关系型数据库
如何升级MySQL版本?
如何升级MySQL版本?
151 2
|
4月前
|
存储 关系型数据库 文件存储
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
49 2
|
4月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之从mysql读数据写到hive报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之运行mysql to doris pipeline时报错,该如何排查
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之整库同步mysql到starRock提交任务异常,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
下一篇
无影云桌面