mysql5.5 升級至5.7
1.下載mysql5.7.32
官方下載地址
解壓
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
12. 執行更新
cd bin
./mysql_upgrade
13. 升級后可能出現查詢陳述句出現報錯的情況,可執行下面的陳述句
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';
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/251624.html
標籤:MySQL
