服務器上Mysql的版本為:社區版的mysql-community-server-5.6.14。近日局方對服務器進行漏洞掃描,發現zhyh08上的mysql存在幾個高危漏洞,要求進行修復。受這幾個漏洞影響的主要是5.6.17及以前的版本,所以將mysql升級至最新的5.6.25即可解決問題。
1、下載最新的mysql安裝包(rpm文件),鏈接如下:
MySQL-5.6.25-1.el6.x86_64.rpm-bundle.tar
2、備份數據庫數據,這里使用的是mysqldump命令。
3、備份/etc/my.cnf:cp /etc/my.cnf /etc/my.cnf_backup
3、停止mysql服務:service mysql stop
4、解壓上面的tar包:tar -xvf MySQL-5.6.25-1.el6.x86_64.rpm-bundle.tar
5、確認服務器上所安裝的mysql的各個組件,這里我們只升級server和client。
[hadoop@zlyh08 chx]$ rpm -qa|grep -i mysqlmysql-community-libs-compat-5.6.14-3.el6.x86_64mysql-community-devel-5.6.14-3.el6.x86_64mysql-community-common-5.6.14-3.el6.x86_64mysql-community-libs-5.6.14-3.el6.x86_64mysql-community-server-5.6.14-3.el6.x86_64mysql-community-client-5.6.14-3.el6.x86_64perl-DBD-MySQL-4.013-3.el6.x86_64[hadoop@zlyh08 chx]$
6、將server和client卸載:
rpm -e mysql-community-server-5.6.14-3.el6.x86_64rpm -e mysql-community-client-5.6.14-3.el6.x86_64
注:如若不先卸載的話,安裝時會報文件沖突:
[root@zlyh08 chx]# rpm -Uvh MySQL-server-5.6.25-1.el6.x86_64.rpm Preparing... ########################################### [100%]file /usr/share/mysql/bulgarian/errmsg.sys from install of MySQL-server-5.6.25-1.el6.x86_64 conflicts with file from package mysql-community-common-5.6.14-3.el6.x86_64…………file /usr/share/mysql/french/errmsg.sys from install of MySQL-server-5.6.25-1.el6.x86_64 conflicts with file from package mysql-community-common-5.6.14-3.el6.x86_64
7、重新安裝server和client:
[root@zlyh08 chx]# rpm -ivh MySQL-server-5.6.25-1.el6.x86_64.rpmPreparing... ########################################### [100%]1:MySQL-server ########################################### [100%]2015-07-01 16:02:40 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).2015-07-01 16:02:40 0 [Note] /usr/sbin/mysqld (mysqld 5.6.25) starting as process 28611 ...2015-07-01 16:02:40 28611 [Note] InnoDB: Using atomics to ref count buffer pool pages2015-07-01 16:02:40 28611 [Note] InnoDB: The InnoDB memory heap is disabled…………2015-07-01 16:02:44 28633 [Note] InnoDB: FTS optimize thread exiting.2015-07-01 16:02:44 28633 [Note] InnoDB: Starting shutdown...2015-07-01 16:02:45 28633 [Note] InnoDB: Shutdown completed; log sequence number 1625987A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !You will find that password in '/root/.mysql_secret'.#竟然沒發現這一行,難怪裝完一直連不上----------[root@appserver ~]# cat /root/.mysql_secret# The random password set for the root user at Thu Nov 20 15:52:02 2014 (local time): sFpJCf6WLhyYKc35----------You must change that password on your first connect,no other statement but 'SET PASSWORD' will be accepted.See the manual for the semantics of the 'password expired' flag.Also, the account for the anonymous user has been removed.In addition, you can run:/usr/bin/mysql_secure_installationwhich will also give you the option of removing the test database.This is strongly recommended for production servers.See the manual for more instructions.Please report any problems at http://bugs.mysql.com/The latest information about MySQL is available on the web athttp://www.mysql.comSupport MySQL by buying support/licenses at http://shop.mysql.comNew default config file was created as /usr/my.cnf andwill be used by default by the server when you start it.You may edit this file to change server settings[root@zlyh08 chx]# rpm -ivh MySQL-client-5.6.25-1.el6.x86_64.rpm Preparing... ########################################### [100%]1:MySQL-client ########################################### [100%][root@zlyh08 chx]#
8、恢復my.cnf:cp /etc/my.cnf_backup /etc/my.cnf
9、啟動mysql服務:service mysql start
[root@zlyh08 chx]# service mysql startStarting MySQL... SUCCESS!
10、使用客戶端連接mysql:
[root@zlyh08 mysql-5.6.25]# mysqlERROR 2002 (HY000): Can t connect to local MySQL server through socket '/data1/mysql/mysql.sock' (2)
11、查看/data1/mysql目錄下,確實沒有mysql.sock文件。
12、查看/etc/my.cnf文件,發現只在[mysql]下面配置了
[mysql]socket=/data1/mysql/mysql.sockdefault-character-set=utf8[mysqld] #mysqld下面沒有配置socket#skip-grant-tablesinteractive_timeout=300wait_timeout=300
13、編輯/etc/my.cnf,在[mysqld]下面添加socket的配置,使用服務器和客戶端都使用同一個socket文件,如下:
[mysql]socket=/data1/mysql/mysql.sockdefault-character-set=utf8[mysqld]#skip-grant-tablessocket=/data1/mysql/mysql.sock #增加此行,之前只[mysql]加了這一項interactive_timeout=300wait_timeout=300
14、重啟mysql服務。
15、使用升級前的root用戶連接mysql:
[hadoop@zlyh08 report_script]$ mysql -hzlyh08 -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or /g.Your MySQL connection id is 233Server version: 5.6.25 MySQL Community Server (GPL)Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || apollo_v1.0 || hive || log || metastore || mysql || oozie || performance_schema || test |+--------------------+9 rows in set (0.00 sec)mysql>
16、至此,升級完成。
以上所述是小編給大家介紹的Mysql從5.6.14安全升級至mysql5.6.25的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答