/***************************************************** 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 #數據庫升級成功