通过tar包升级mysql5.6

很多linux中自带的mysql版本是5.1,最近由于需要使用新版本特性,必须升级。

网上很多升级方法都是建议下载rpm包后使用yum升级,但这种方法必须上网下载升级包,而且由于网络不稳定或下载的镜像文件找不到,通常不顺利。

经过本次的实践摸索,成功使用tar包进行升级,现分享:

1、备份

停止mysql 

/etc/init.d/mysqld stop

备份数据库文件: 看my.cnf下配置的data文件目录,一般是放到 /var/lib/mysql/,复制 /var/lib/mysql/下的数据库文件到安全的目录 

cp -r /var/lib/mysql   /home/workflow/mysqlbak/

再将 /etc/my.cnf 备份一下,然后删除

mv /etc/my.cnf  /home/workflow/mysqlbak/

2、删除 

rpm -e mysql   //普通删除模式

rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
删除后,/usr/local/mysql目录将被删除

3、安装

安装有两种方式,一种是编译方式,一种为非编译方式,编译方式只需从官网下载一个几十M的源文件,但编译时间需要20分钟左右。非编译方式则需从官网下载一个300M左右已编译好的包,但免除了安装gcc等编译环境的烦恼

3.1) 非编译方式

下载Generic版本,有6432位的

下载后可以拷贝到/usr/local/目录下,解压,然后将目录名改成mysql就好,例如使用5.6.20版

tar zxvf /home/mysql-5.6.20-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

mv /usr/local/mysql-5.6.20-linux-glibc2.5-x86_64/ /usr/local/mysql

3.2) 编译方式

安装编译代码需要的包:

yum -y install make gcc-c++ cmake bison-devel ncurses-devel

如果报以下错误:

到下面的网站下载bison-devel-2.4.1-5.el6.x86_64.rpm

http://pkgs.org/centos-6/centos-x86_64/bison-devel-2.4.1-5.el6.x86_64.rpm.html

yum localinstall bison-devel-2.4.1-5.el6.x86_64.rpm

然后重新运行yum -y install make gcc-c++ cmake bison-devel ncurses-devel 即成功了

下载:

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.19.tar.gz

tar xvf mysql-5.6.19.tar.gz

cd mysql-5.6.19

编译

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

make && make install

4、初始化配置

使用下面的命令查看是否有mysql用户及用户组

cat /etc/passwd 查看用户列表

cat /etc/group  查看用户组列表

如果没有就创建

groupadd mysql

useradd -g mysql mysql

修改/usr/local/mysql权限

chown -R mysql:mysql /usr/local/mysql

先将etc/my.cnf 删除

cd /usr/local/mysql

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

若不行,则 chmod -R 777  /usr/local/mysql

cp support-files/mysql.server /etc/init.d/mysqld

添加服务,拷贝服务脚本到init.d目录,并设置开机启动

-- 注册服务:chkconfig mysqld on

-- 使用服务方式启动service mysqld start  --启动MySQL

也可以不注册,直接使用 /etc/init.d/mysqld start启动

启动mysql:

mysql -uroot  

若报找不到命令,则需添加系统路径

# vim /etc/profile

在最后,添加:

PATH=/usr/local/mysql/bin:$PATH

export PATH

或者用alias mysql=’/usr/local/mysql/bin/mysql’

保存,退出,然后运行:

#source /etc/profile

不报错则成功。

mysql -uroot  

mysql> SET PASSWORD = PASSWORD('passwrod');

设置远程访问的用户:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passwrod' WITH GRANT OPTION;

FLUSH PRIVILEGES;

然后查看,

SELECT host FROM mysql.user WHERE User = 'root';

看是否有显示%

拷贝备份的my.cnf回到/etc/my.cnf

使用原my.cnf文件后可能要进行的修改:

如果原来[mysqld]下有skip-locking,需要注释,5.6不支持

如果原来[mysqld]下有default-character-set,需要改成character_set_server

data文件在默认的/usr/local/mysql文件夹中,则需要拷贝回去

/bin/cp -rf  /home/pan/mysqlbak/mysql  /usr/local/mysql/data/

chgrp -R mysql /usr/local/mysql/data/ && chown -R mysql /usr/local/mysql/data/

data文件在其他目录,例如/var/lib/,则需要将/usr/local/mysql/data 拷贝过去,然后还原

mv /var/lib/mysql  /home/workflow/mysqlbak/
mkdir /var/lib/mysql
chmod -R 777 /var/lib/mysql
cp -r /usr/local/mysql/data/*   /var/lib/mysql/
chmod -R 777 /var/lib/mysql

启动mysql,即完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值