好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > linux mysql5.5升級至mysql5.7的步驟與踩到的坑

linux mysql5.5升級至mysql5.7的步驟與踩到的坑

熱門標簽:天智外呼系統 常州電銷外呼系統一般多少錢 400電話鄭州申請 房產智能外呼系統品牌 云南語音外呼系統平臺 地圖標注被騙三百怎么辦 北京人工外呼系統價錢 福州呼叫中心外呼系統哪家好 沃克斯電梯外呼線路圖

linux mysql5.5升級至mysql5.7

下面先分享一個簡單的升級mysql的步驟,后面腳本之家小編為大家整理了多個補充,大家可以參考一下。

1.下載mysql5.7.32

官方下載地址 https://dev.mysql.com/downloads/mysql/

解壓

tar xvf mysql.tar.gz mysql/

2. 進入舊的mysql的bin目錄下導出mysql的數據

./mysql -uroot -pxxxx -h127.0.0.1 -P3306 /home/mysql5.5/bin/all.sql

3. 進入新的mysql根目錄下創建存放數據的data目錄

mkdir data

4. 對于剛解壓的新數據庫,首先執行初始化命令

cd bin
./mysql_install_db --basedir=../ --datadir=../data

PS: 以上升級是在Cent OS上的,但是在中標麒麟我升級的時候,發現不認識上面的語句,需要替換成下面這個初始化語句

./mysqld --defaults-file=../my.cnf --basedir=../ --datadir=../data --user=root --initialize

5. 設置跳過密碼登錄

在my.cnf 中的[mysqld]中添加skip-grant-tables
my.cnf 為數據庫的配置文件

6. 啟動服務

./mysqld --defaults-file=../my.cnf --basedir=../ --datadir=../data --user=root

7. 設置密碼

在新的命令行窗口登錄mysql

./mysql -uroot
use mysql;
update mysql.user set authentication_string=password('xxxx') where user='root';

8. 停止服務

注釋掉配置文件中的skip-grant-tables

9. 啟動服務

./mysqld --defaults-file=../my.cnf --basedir=../ --datadir=../data --user=root

10. 新命令行登錄

./mysql -uroot -pxxxx
use mysql;

這個時候:不管運行任何命令,總是提示這個 You must reset your password using ALTER USER statement before executing this statement.
這時執行下面的語句

SET PASSWORD = PASSWORD('xxxx');

11. 設置其他ip可以連接mysql

use mysql;
grant all privileges on *.* to "root"@"%" identified by "xxxx";

12. 導入歷史數據

cd bin
./mysql -uroot -pxxxx -h127.0.0.1 -P3306 /home/mysql5.5/bin/all.sql

13. 執行更新

cd bin
./mysql_upgrade

14. 升級后可能出現查詢語句出現報錯的情況,可執行下面的語句

set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

下面是其他網友的補充

MySQL從5.5升級到5.7

最近有個任務將MySQL從5.5版本升級到5.7,沒升級過數據庫,只能摸索的前進。上網找了一堆資料。目測看只有兩種升級方式

1.升級方式

1.Logical Upgrade(邏輯升級):利用mysqldump來直接導出SQL文件,然后起一個新的MySQL5.7庫,將導出的SQL文件導入到新庫中,當然如果采用這種方式的話建議不要用mysqldump而使用mydumper.因為我們公司的數據量很大所以沒有采用這個方法來處理。

2.In-Place Upgrade:這個升級方法簡單快速,就是直接替換原來的MySQL的安裝目錄和/etc/my.cnf配置文件,利用mysql_upgrade腳本來完成系統表的升級。

2.環境介紹

我們的mysql集群采用的是Atlas讀寫分離,mysql-proxy下有4臺數據庫服務器:

master: 172.16.100.1

slave1:172.16.100.2

slave2:172.16.100.3

slave3:172.16.100.4

當前數據庫版本:”5.5.21

配置文件:/etc/my.cnf

數據目錄:/data/mysql

操作系統版本:CentOS6.9

3.升級思路

因為是線上業務不能中斷,所以決定先將其中一臺slave踢出集群,并升級到mysql5.7,然后再講mysql5.7這臺設備加入到集群當中,等數據同步完了再做主備切換,再升級其他的slave節點。

4.實在演練

4.1.登陸到mysql-proxy中將其中一臺從庫從集群中踢出

mysql -uuser -ppwd -h127.0.0.1 -P234

查看后端代理庫

mysql> SELECT * FROM backends;

+-------------+-------------------+-------+------+
| backend_ndx | address  | state | type |
+-------------+-------------------+-------+------+
|  1 | 172.16.100.1:3306 | up | rw |
|  2 | 172.16.100.2:3306 | up | ro |
|  3 | 172.16.100.3:3306 | up | ro |
|  4 | 172.16.100.4:3306 | up | ro |
+-------------+-------------------+-------+------+ 

5 rows in set (0.00 sec)
將服務172.16.100.4從集群中踢出
mysql> remove backend 4

4.2.替換mysql的安裝目錄

到mysql的官網下載mysql5.7版本mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

解壓mysql5.7

tar -zxf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

如果你之前的mysql目錄是鏈接的方式創建的話,那么只需要取消鏈接,從新做一下鏈接就可以了

cd /usr/local/

unlink mysql

ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql

如果你之前的mysql目錄不是鏈接的方式,那么重新命名一下,再鏈接一個mysql目錄就可以了

cd /usr/local/

mv mysql mysql5.5

ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql(建議盡可能的使用這種方式,比較方便升級)

4.3.啟動mysql服務

mysql5.7以后是不需要進行數據庫初始化的,也就是不用去執行mysql_install_db這個命令

/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql --skip-grant-tables --skip-networking

ps -ef |grep mysql

如果有出息錯誤的話查看日志信息

4.4.升級系統表數據字典信息,命令如下:

/usr/loca/mysql/bin/mysql_upgrade

輸出的結果:

可能會有一些error提示"ALTER TABLE ** FROCE",這些錯誤不用擔心mysql在后面會自動修復repair的時間可能會有點長,要看你的數據庫情況,我這次升級花了兩個多小時

最后如果輸出Upgrade process completed successfully那么就表示升級成功了。

4.5.升級完以后重啟一下mysql

/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql

查看一下是否升級完了,如果升級成功的話輸出如下

This installation of MySQL is already upgraded to 5.7.23, use --force if you still need to run mysql_upgrade

4.6.重新做一下主從配置

重做一下主從配置

mysql> change master to master master_host="172.16.100.1",master_user="***",master_passowrd="***",master_log_file=" mysql-bin.000004", master_log_pos=1083;

mysql> start slave;

mysql> show slave status\G;

如果兩個yes就說明正常了

4.7加入到讀寫分離的集群中

到mysql-proxy設備上面

mysql -uuser -ppwd -h127.0.0.1 -P234

mysql> ADD SLAVE 172.16.100.4

mysql> select * from backends;

如果state的狀態是up的就說明加入集群成功了。

后記:

我第一次升級數據庫,不知道整體思路對不對,先在測試環境上面做的測試,然后又測了幾天沒有問題了才在線上做的升級。僅供參考。

Mysql5.5升級到5.7的過程已經踩到的坑

故事是這樣子的,我們公司有幾臺老的mysql版本是5.5的,最近項目做了一些升級增加了幾個字段,用spring-data-jpa自動刷新表結構的時候報錯了,原因是mysql5.5的版本不支持一張表里面有兩個以上的 current_timestamp 作為default value。所以就要考慮升級下數據庫

先到服務器上面看了下版本

再看了下源


哦,順帶提一句,我們公司在用的aws 的 ec2 ,所以都是amz的源

試了下 yum update mysql-server 然后并沒什么卵用,所以繼續往下搞。

網上看了好多都說是先把舊版本的數據庫卸載了再用裝新版本的數據庫,那我的里面的數據咋辦,為了保險起見,我先辦數據庫做了個備份,一個庫一個庫的備份,我看mysql庫里面也配了好多用戶和權限,就順便也把mysql備份了,然后開搞。

1、卸載數據庫

yum remove mysql-server

但是我們這邊裝的好像不太一樣,我就把剛才yum查到的幾個都卸載了。

卸載前記得把mysql服務關掉,要不然裝新版本之后用mysql --version 查看是5.7 mysql 登錄進去還是5.5然后重啟服務就各種問題。因為有些文件沒被刪掉,導致新裝的數據庫好奇怪的樣子。。。

2、安裝新數據庫

yum search mysql57

先看看有什么版本可以選,這個沒啥說的直接

yum install msyql57-server.x86_64

安裝下來就ok,來看看都裝了些啥東西


很奇怪一點就是mysql-config依賴竟然還是5.5的,不過用起來沒發現啥問題

3、配置

安裝好了之后修改以下my.cnf

我的服務器上面是在/etc/my.cnf 不知道其它的鏡像有沒有變化

在配置的時候我突然想到數據存儲的空間是還在的啊,配過去看看能用不

于是就在my.cnf配了這一行(5.5的好多配置都棄用了,之前的my.cnf里面的都要刪一刪要不然啟動時會報錯)


配置之后果斷啟動服務

service mysqld start

果然報錯了

看了下啟動日志

[ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.

ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directoryAdditionally, an exception has occurred while trying to report this error: Zend_ExceptionNo entry is registered for key 'translate' (Abstract.php:144)

臥槽,這咋辦google一波 搜到了這篇文章https://support.plesk.com/hc/en-us/articles/115001659169-MySQL-fails-to-start-mysql-user-table-is-damaged

具體解決方法如下

a. 登錄到那臺服務器主機上面

b. Add skip-grant-tables in /etc/my.cnf file under [mysqld] section 意思就是開啟安全模式(不驗證密碼什么的)

c. service mysqld start

d. mysql_upgrade

e. service mysqld restart

我執行了一下mysql_upgrade


查了查官方文檔,大體意思就是升級之后好多東西不怎么兼容,官方提供這個腳本來修復之前的工作空間

果然是無縫升級mysql數據庫中的用戶都還在之前的數據庫也沒有受到影響

至此升級完成

到此這篇關于linux mysql5.5升級至mysql5.7的詳細步驟的文章就介紹到這了,更多相關mysql5.5升級至5.7內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Linux下MySQL多實例部署及安裝指南
  • Linux下mysql 8.0.25 安裝配置方法圖文教程
  • 一臺linux主機啟動多個MySQL數據庫的方法
  • 解決Linux安裝mysql 在/etc下沒有my.cnf的問題
  • linux下利用Docker安裝mysql的步驟
  • Linux手動部署遠程的mysql數據庫的方法詳解
  • linux使用mysqldump+expect+crontab實現mysql周期冷備份思路詳解
  • Aliyun Linux 編譯安裝 php7.3 tengine2.3.2 mysql8.0 redis5的過程詳解
  • Mysql如何在linux中實現定時備份
  • Linux mysql-5.6如何實現重置root密碼
  • 在Ubuntu/Linux環境下使用MySQL開放/修改3306端口和開放訪問權限
  • MySQL定時備份方案(利用Linux crontab)
  • linux環境下安裝mysql數據庫的詳細教程
  • Linux下mysql異地自動備份的方法
  • Linux MySQL忘記root密碼解決方案
  • Linux下安裝mysql-8.0.20的教程詳解
  • Linux如何使用 MyCat 實現 MySQL 主從讀寫分離

標簽:黔東 移動 拉薩 徐州 珠海 鹽城 沈陽 沈陽

巨人網絡通訊聲明:本文標題《linux mysql5.5升級至mysql5.7的步驟與踩到的坑》,本文關鍵詞  linux,mysql5.5,升級,至,mysql5.7,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《linux mysql5.5升級至mysql5.7的步驟與踩到的坑》相關的同類信息!
  • 本頁收集關于linux mysql5.5升級至mysql5.7的步驟與踩到的坑的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 91精品成人免费国产片| 奶奴小小| 女生张开腿让男人捅| bt天堂网www天堂在线观看| 香港三级日本三级a视频是什么意思| 岐山县| 国产真实乱了老女人视频| 国产亲妺妺乱的69视频免| 免费看国产曰批40分钟视频网站99 | 久久99国产视频| 2048核基地人人为我我为人人登录 | 校花被胁迫调教成为性nu| 恋上骄傲女上司| 日本做的爱c视频| 国产三级一区二区| 动漫videosexfreexxxx| 张津瑜被揉到高潮下不了床| 清纯校花的被肉日常(NP)》 沈柔| 澳门一级毛片免费播放| 中国黄色毛片视频| 国产91久久精品| 史黛西克鲁兹顶级A片| 欧美人禽性动交异族另类| 刘玥系列AV视频在线观看| 色系视频在线观看免费观看| GOGO人体无码一区二区| 美国一级毛片aa黑人| 一级一片免费看| 成a人无码亚洲成a无码一区变态| 蝶恋直播免费视频高清观看在线| 欧美精产国品一二三产品区别在哪 | 亚洲天堂视频在线观看| 猛男GAY高H纯肉猛男A片| 精品久久成人免费第三区| 踢蹬两眼翻白失禁勒死小说| 《国产精品自在拍在线拍》| 美人娇全文阅读| 麻豆XXX乱女少妇精品潘甜甜| 美女黄小说| 91午夜精品一区二区三区| 免费国产一级??片????,,,|