天天看點

centos下更新mysql5.5.47到5.7.14操作過程

一. 檢視已安裝Mysql基礎資訊

通過mysql –V 檢視下mysql版本

可以通過指令find / -name mysql 得到下面資訊

1、安裝目錄

[root@jjxnhd-192-10 mysql]# /var/lib/mysql

2、配置檔案

[root@jjxnhd-192-10 mysql]# /usr/share/mysql

3、相關指令 

[root@jjxnhd-192-10 mysql]# /usr/bin (mysqladmin mysqldump等指令)

4、啟動腳本

[root@jjxnhd-192-10 mysql]# /etc/init.d/mysql

mysql啟動,重新開機,停止指令如下:

/etc/init.d/mysqld start

/etc/init.d/mysqld restart

/etc/init.d/mysqld stop

備份mysql相關資料,配置

(1).備份資料庫,可以将mysql内資料庫分開備份

通過 mysql –uroot –p 上去

備份重要資料庫:

[root@jjxnhd-192-10 mysql]# cd /opt/szw

[root@jjxnhd-192-10 mysql]# mysqldump -u root -p hive > hive.sql

[root@jjxnhd-192-10 mysql]# mysqldump -u root -p oozie > oozie.sql

(2).備份Mysql 資料目錄,更多備份,更多安全

[root@jjxnhd-192-10 mysql]# cp -R /var/lib/mysql/ mysqldata

(3).備份MySQL 配置檔案

[root@jjxnhd-192-10 mysql]# cp /etc/my.cnf mysqlconf

三.更新mysql(注意:所有對檔案的修改,修改之前都要進行備份)

1、下載下傳通用安裝二進制包

先下載下傳mysql安裝包:打開 http://dev.mysql.com/download...

選擇 linux - Generic并在其下選擇

Linux - Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive

進行下載下傳。可以先下載下傳到一個臨時目錄裡,解壓後,得到兩個包:

mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz 

mysql-test-5.7.11-linux-glibc2.5-x86_64.tar.gz

隻需要mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz 這個包就行了。

2、建立使用者和目錄

建立使用者mysql,組mysql。後面mysql就使用這個使用者來運作(注意這也是mysql啟動腳本中預設的使用者,是以最好不要改名)。

groupadd mysql

useradd -r -g mysql mysql

(使用-r參數表示mysql使用者是一個系統使用者,不能登入)

建立目錄/work/program,後面mysql就安裝在這個目錄下面。

mkdir -p /work/program

3、安裝

【解壓】

将前面得到的mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz解壓至/work/program目錄下

tar zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /work/program

這時在program下得到的目錄名很長,如果不想改名,則可以建立一個聯接:

ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql

此後就可以用/work/program/mysql來找到mysql的安裝目錄了

注意,如果mysql目錄下沒有data目錄,手動建一個。

【目錄權限設定】

将mysql及其下所有的目錄所有者群組均設為mysql:

cd /work/program/mysql

chown mysql:mysql -R .

【初始化】

/work/program/mysql/bin/mysqld --initialize --user=mysql --datadir=/work/program/mysql/data --basedir=/work/program/mysql

初始化成功後出現如下資訊:

201x-xx-xxT07:10:13.583130Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

201x-xx-xx T07:10:13.976219Z 0 [Warning] InnoDB: New log files created, LSN=45790

201x-xx-xx T07:10:14.085666Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

201x-xx-xx T07:10:14.161899Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 1fa941f9-effd-11e5-b67d-000c2958cdc8.

201x-xx-xx T07:10:14.165534Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

201x-xx-xx T07:10:14.168555Z 1 [Note] A temporary password is generated for root@localhost: q1SLew5T_6K,

注意最後一行,這也是和之有版本不同的地方,它給了root一個初始密碼,後面要登入的時候要用到這個密碼。

【配置】

将mysql/support-files下的my-default.cnf改名為my.cnf,拷到/etc下

cp /work/program/mysql/support-files/my-default.cnf /etc/my.cnf

my.cnf中關鍵配置:

[mysqld]

basedir = /work/program/mysql

datadir = /work/program/mysql/data

port = 3306

socket = /work/program/mysql/tmp/mysql.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

注意,tmp目錄不存在,請建立之。

如果不把my.cnf拷到/etc下,運作時會出現:

mysqld: Can't change dir to '/usr/local/mysql/data/' (Errcode: 2 - No such file or directory)

這樣的出錯提示,說明它沒找到my.cnf中的配置;而去找了程式編譯時的預設安裝位置:/usr/local/mysql

4、設定mysql以服務運作并且開機啟動

将/work/program/mysql/ support-files/mysql.server 拷貝為/etc/init.d/mysql并設定運作權限

cp mysql.server /etc/init.d/mysql  (需要修改basedir ,datadir )

chmod +x /etc/init.d/mysql

把mysql注冊為開機啟動的服務

chkconfig --add mysql

啟動mysql:

/etc/init.d/mysql start

此處如果提示有錯誤,記得先ps –ef|grep mysql 檢視mysql程序,如果有的話,請先全部kill,然後在執行上面指令。

5、用戶端連接配接測試

/work/program/mysql/bin/mysql -uroot -p

此時要求輸入密碼,就是前面初始化時生成的密碼。

這時如果連接配接服務的時候出現錯誤:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

則需要在在my.cnf中填加:

[client]

連上後,在做任何操作前,mysql要求要改掉root的密碼後才能進行操作。

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> alter user 'root'@'localhost' identified by 'xxxxxxx';

然後exit退出,在重新用新密碼登入試試。

四.将備份的資料庫導入新版mysql

[root@jjxnhd-192-11 opt]# mysql -uroot –p

mysql> create database hive;

mysql> create database oozie;

mysql> use hive;

mysql> set names utf8;

mysql> source /opt/szw/hive.sql;

mysql> use oozie;

mysql> source /opt/szw/oozie.sql;

五.檢視mysql版本

如果你檢視時版本還是原來的,那麼你需要把/work/program/mysql/bin/mysql拷貝到/usr/bin/下。

注:/usr/bin 下原來也有mysql ,是以拷貝過去的時候記得先備份。