通過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,即完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章