mysql5.5 升級至5.7

mysql5.5 升級至5.7

1.下載mysql5.7.32

官方下載地址
解壓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上的,可是在中標麒麟我升級的時候,發現不認識上面的語句,須要替換成下面這個初始化語句sql

./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. 設置密碼

在新的命令行窗口登陸mysqlide

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

8. 中止服務

註釋掉配置文件中的skip-grant-tablesthis

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';
相關文章
相關標籤/搜索