MySQL5.6.25升級MySQL5.7.15
升級
環境介紹
Part1:寫在最前
提到MySQL升級,網上文章數之不盡,但大多數為老的版本,諸如升級到、升級到,今天給大家介紹下升級到版本的方法和注意事項。
Part2:升級方法
升級的方法一般有兩類:
1.利用mysqldump來直接匯出sql檔案,匯入到新庫中,這種方法是最省事兒的,也是最保險的,缺點的話,也顯而易見,大庫的mysqldump費時費力。
2.直接替換掉mysql的安裝目錄和,利用mysql_upgrade 來完成系統表的升級,這種方法需要備份原有的檔案,但屬於物理拷貝,速度較快。缺點的話,跨版本升級不推薦這麼做,比如升級到,升級到等。
本文采用的是第二種方法升級。
Part3:環境
資料庫軟體目錄:/usr/local/mysql
位置:/etc/
資料庫data目錄:/data/mysql
慢日誌目錄:/data/slowlog
準備工作
Part1:
[[email protected] ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: -log 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 its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> select version(); +------------+ | version() | +------------+ | -log | +------------+ 1 row in set ( sec) mysql> use helei; Database changed mysql> show tables; +-----------------+ | Tables_in_helei | +-----------------+ | helei | +-----------------+ 1 row in set ( sec)
我這裡用的是版本作為待升級庫,庫中已經模擬和建立了資料庫helei和表helei,用以之後驗證升級。
Part2:備份
備份整體需要備份的是、資料庫安裝目錄、還有資料目錄。
[[email protected] ~]# /etc//mysqld stop
Shutting down MySQL.. SUCCESS!
[roo[email protected] etc]# cp -rp my_56_
[[email protected] local]# cp -rp mysql mysql_56_old
[[email protected] ~]# rm -rf /usr/local/mysql
[[email protected] data]# cp -rp mysql/ mysql_56_old
這裡我直接採用cp的方式來進行。
Part3:替換
1.替換/etc/為的
[[email protected] ~]#vi /etc/ [client] port=3306 socket=/tmp/ default-character-set=utf8 [mysql] no-auto-rehash default-character-set=utf8 [mysqld] port=3306 character-set-server=utf8 socket=/tmp/ basedir=/usr/local/mysql datadir=/data/mysql explicit_defaults_for_timestamp=true lower_case_table_names=1 back_log=103 max_connections=3000 max_connect_errors=100000 table_open_cache=512 external-locking=FALSE max_allowed_packet=32M sort_buffer_size=2M join_buffer_size=2M thread_cache_size=51 query_cache_size=32M #query_cache_limit=4M transaction_isolation=REPEATABLE-READ tmp_table_size=96M max_heap_table_size=96M ###***slowqueryparameters long_query_time=1 slow_query_log = 1 slow_query_log_file=/data/slowlog/ ###***binlogparameters log-bin=mysql-bin binlog_cache_size=4M max_binlog_cache_size=8M max_binlog_size=1024M binlog_format=MIXED expire_logs_days=7 ###***relay-logparameters #relay-log=/data/3307/relay-bin #relay-log-info-file=/data/3307/relay- #master-info-repository=table #relay-log-info-repository=table #relay-log-recovery=1 #***MyISAMparameters key_buffer_size=16M read_buffer_size=1M read_rnd_buffer_size=16M bulk_insert_buffer_size=1M #skip-name-resolve ###***master-slavereplicationparameters server-id=$SERVERID slave-skip-errors=all #***Innodbstorageengineparameters innodb_buffer_pool_size=512M innodb_data_file_path=ibdata1:10M:autoextend #innodb_file_io_threads=8 innodb_thread_concurrency=16 innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=16M innodb_log_file_size=512M innodb_log_files_in_group=2 innodb_max_dirty_pages_pct=75 innodb_buffer_pool_dump_pct=50 innodb_lock_wait_timeout=50 innodb_file_per_table=on innodb_buffer_pool_dump_at_shutdown=1 innodb_buffer_pool_load_at_startup=1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION [mysqldump] quick max_allowed_packet=32M [myisamchk] key_buffer=16M sort_buffer_size=16M read_buffer=8M write_buffer=8M [mysqld_safe] open-files-limit=8192 log-error=/data/mysql/ pid-file=/data/mysql/
2.解壓新版mysql
[[email protected] ~]# tar xvf mysql--linux--x86_
[[email protected] ~]# mv mysql--linux--x86_64 /usr/local/mysql
[[email protected] ~]# chown -R mysql. /usr/local/mysql
3.替換新版mysqld啟動指令碼
[[email protected] ~]# cp /usr/local/mysql/support-files/ /etc//mysqld
cp: overwrite `/etc//mysqld'? y
開始升級
Part1:啟動
[[email protected] ~]# /etc//mysqld start Starting MySQL..... SUCCESS! [[email protected] ~]# ps -ef|grep mysql root 26467 1 0 20:30 pts/2 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/ mysql 27197 26467 4 20:30 pts/2 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/ --open-files-limit=8192 --pid-file=/data/mysql/ --socket=/tmp/ --port=3306 root 27235 25656 0 20:31 pts/2 00:00:00 grep mysql
這裡雖然啟動成功了,但error日誌裡能捕捉到很多錯誤資訊,因為沒有升級字典,諸如:
2016-10-20T03:30: 0 [ERROR] Native table 'performance_schema'.'events_statements_summary_by_program' has the wrong structure 2016-10-20T03:30: 0 [ERROR] Native table 'performance_schema'.'events_transactions_current' has the wrong structure 2016-10-20T03:30: 0 [ERROR] Native table 'performance_schema'.'events_transactions_history' has the wrong structure 2016-10-20T03:30: 0 [ERROR] Native table 'performance_schema'.'events_transactions_history_long' has the wrong structure 2016-10-20T03:30: 0 [ERROR] Native table 'performance_schema'.'events_transactions_summary_by_thread_by_event_name' has the wrong structure
Part2:系統表升級
1.升級資料字典
[[email protected] ~]# /usr/local/mysql/bin/mysql_upgrade -uroot -pMANAGER mysql_upgrade: [Warning] Using a password on the command line interface can be insecure. Checking if update is needed. Checking server version. Running queries to upgrade MySQL server. Checking system database. _priv OK OK _cost OK OK OK _log OK _executed OK _category OK _keyword OK _relation OK _topic OK _index_stats OK _table_stats OK _binlog_index OK OK OK _priv OK _priv OK _cost OK OK _master_info OK _relay_log_info OK _worker_info OK _log OK _priv OK _zone OK _zone_leap_second OK _zone_name OK _zone_transition OK _zone_transition_type OK OK Upgrading the sys schema. Checking databases. OK _config OK Upgrade process completed successfully. Checking if update is needed.
2.重啟例項再次檢查error日誌
[[email protected] ~]# /etc//mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
3.請保證一些路徑的設定和以前的一致,如果設定錯誤,很可能導致啟動不了資料庫
[ERROR] Could not use /data/slowlog/ for logging
我這裡是由於慢日誌的位置和老的路徑不一致,建立/data/slowlog即可,這裡要仔細看報錯,然後根據報錯來發現和解決問題。
驗證結果
Part1:輸入使用者名稱密碼檢查結果
[[email protected] ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: -log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select version();
+------------+
| version() |
+------------+
| -log |
+------------+
1 row in set ( sec)
Part2:驗證庫和表是否有丟失
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| helei |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set ( sec)
升級後,我們會發現多了一個sys庫,這個庫有很多的功能,以後再給大家慢慢介紹~
——總結——
MySQL升級有多種方式,但無論採用何種方式,都要做好備份和回滾的準備,以避免升級失敗所帶來的損失。由於筆者的水平有限,編寫時間也很倉促,文中難免會出現一些錯誤或者不準確的地方,不妥之處懇請讀者批評指正。
相關推薦
MySQL5.6.25升級MySQL5.7.15
升級 環境介紹 Part1:寫在最前 提到MySQL升級,網上文章數之不盡,但大多數為老的版本,諸如升級到、升級到,今天給大家介紹下升級到版本的方法和注意事項。 Part2:升級方法 升級的方法一般有兩類: 1.利用mysqldump來直接匯出sql檔案
centos7.2+mysql5.6.35+subversion1.9.7+apache+https+php5.6.20+manmanager1.10(一)
賬戶 停止 file set and .gz rep kcon start 最近因為windows平臺的powershell病毒,導致所有windows服務器都需要遷移到linux,其中也包括svn,遷移過程中遇到很多坑逐一踩過後,現在就過程記錄下 這套環境是使用的cent
mysql5.6.25編譯安裝步驟(這是我復制別人的,方便查看)
ODB mysql啟動 mysql grant inf hive port local min 原文地址:https://www.cnblogs.com/netsa/p/7088494.html 簡略步驟:mysql5.6.25編譯安裝步驟:下載mysql準備用戶和組y
MySQL5.6.25 RPM包安裝
1. 檢查mysql相關rpm包,有則移除 rpm -qa | grep mysql rpm -e pkgname yum remove mysql mysql-server mysql-libs compat-mysql51 2. 解壓安裝
MySQL5.6.4升級到5.6.40遇到的一些坑
維護的一個老專案,資料庫版本過低,出現了一系列的MySQL高危漏洞,總之一大堆高危漏洞,解決此問題有兩種解決辦法,一個是升級MySQL,一個是改資料庫版本,從安全性角度考慮,還是需要升級MySQL為上策,升級過程的一些小經驗和大家分享一下。 首先說明的是
Centos 6.x 升級到 7
前言 因為軍佬放棄製作Centos7的網路重灌包,又Centos7的安裝引導和6有較大區別所以,選擇曲線救國(技術不行,只能這樣亂搞) 前文:Centos6.9一鍵重灌包https://ppx.ink/netrebuild.ppx 開始折騰 首先,用軍佬的指令碼安裝到Centos6.9(本懶人用的DO寶寶自
Mysql5.6主從配置(mysql5.5通用)
error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
python2.6版本升級2.7
一.下載2.7版本python及相關元件 二.安裝 上傳上面下載的軟體包到伺服器 安裝python tar xf Python-2.7.13.tgz cd Python-2.7.13
MySQL5.6到5.7版本升級采用IN-PLACE的升級方式需要具體關註的地方
null mysq 限定 replicate 有效 lac switch 錯誤 cat 一.SQL變更GET_LOCK()函數行為MySQL 5.7.5之前GET_LOCK()在執行第二次的額時候會釋放前面獲得的鎖,在此版本以後支持同時獲得多個鎖,如:mysql>
記一次MySQL遷移並從MySQL5.6升級到5.7後查詢慢了幾十倍的問題
打印 ins 狀態 sql語句 top 引用 為什麽 區別 image 起因 因為生產環境數據量越來越大,客戶越來越多,項目功能也越來越多,項目本身也越來越多,導致之前的服務器內存、硬盤都已經漸漸的不夠用了,當時出現了2種解決方案,增加服務器配置和新購服務器,但是就算是新增
mysql5.6升級5.7(物理方式)
本文的升級方式為物理升級: 直接替換掉mysql的安裝目錄和修改my.cnf,利用mysql_upgrade來完成系統表的升級,這種方法需要備份原有的檔案,屬於物理拷貝,速度較快。缺點的話,跨版本升級不推薦這麼做,比如mysql5.1升級到mysql5.6,mysql5.5升級到mysql5.7等。
Mysql5.6升級到5.7操作步驟
mysql5.6 升級至 mysql5.7 環境介紹: 舊庫: basedir=/usr/local/mysql-5.6 datadir=/home/mysql config=/home/mysql/my.cnf sock=/home/mysql/mysql.sock
centos mysql5.6 升級5.7
系統環境:centos7.2,linux3.10 [[email protected]_0_15_centos ~]# uname -a Linux VM_0_15_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul
linux中的mysql5.6升級到5.7
公司伺服器使用的是5.6版本mysql,然後要升級到5.7,然而公司的mysql是使用rpm包安裝的mysql,於是我在網上各種搜尋mysql升級,終於在網上找到了一篇文章下面是文章的地址,(我是在參考人家的基礎上升級的) 注意: 我的是rpm安裝的
mysql5.6升級5.7
原地升級1.將現有的mysql關閉。使用cmd視窗,進入到mysql目錄下面,將mysql服務移除。?12X:\Ares\bin\mysql5.6\bin>mysqld --remove mysql5.6Service successfully removed.2.下載
windows下卸載mysql5.5,升級為mysql5.7.25
ase mysql5 secure ucc div inno window eve mod 0. 停止mysql的服務 1. 卸載mysql5.5 1.1 使用360或者控制面板卸載mysql,為求幹凈,我使用的360,結果也需要手動清理 1.2 卸載完成之後到
mysql5.6升級到5.7後Sequel Pro無法連線解決
因為裝ntop,brew自動升級了本地的Mysql,結果升級完成之後,使用Sequel Pro連線總是報錯,使用mysql 命令列工具就沒有問題。 OSX版本 10.11.5 Mysql版本
centos6.7下安裝mysql5.6.22同時解決中文亂碼問題
系統服務 iptable nod -- 1.7 亂碼問題 dport 5.6 復制 1.下載 http://dev.mysql.com/downloads/mysql/ 或者使用wget下載: wget http://dev.mysql.com/get/Do
mysql5.6以上(適用5.7)免安裝版本 終極配置
進入 cli x64 basedir 其他 color cnblogs ade header 1.解壓你的mysql5.6 我解壓的位置是D:\Program Files\mysql-5.6.14-winx64,你可以隨意放在任何位置,不建議解壓到C盤 2.來到你解壓的
centos6.9升級mysql5.1到mysql5.6
升級 mysql 一:查看下是否有系統自帶MySQL的rpm包,如果有,需要刪除自帶的舊rpm包。[[email protected] mnt]# mysql -V mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64