注意:無論是什么升級都是有風險的,升級前都需要做一次全備份。
mysql簡單備份和恢復-CSDN博客
本文章以5.7升級為8.0為案例演示。
0、準備
1、安裝mysql5.7,5.7版本mysql安裝演示mysql-linux歸檔版安裝-CSDN博客
2、在官網(wǎng)下載8.0壓縮包MySQL :: Download MySQL Community Server?
3、mysql8.0壓縮包上傳到服務器,并解壓
xz -d /opt/mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz
tar -xf /opt/mysql-8.0.35-linux-glibc2.28-x86_64.tar -C /opt/mysql/mysql8/
mv /opt/mysql/mysql8/mysql-8.0.35-linux-glibc2.28-x86_64 /opt/mysql/mysql8/mysql
?文章來源地址http://www.zghlxwxcb.cn/news/detail-743666.html
?
1.就地升級
概述:關閉老版本mysql,使用老版本數(shù)據(jù)目錄啟動新版本數(shù)據(jù)庫 。
1.關閉舊數(shù)據(jù)庫
開啟慢速關閉mysql,讓一些緩存信息可以刷盤到磁盤中。?
SET GLOBAL innodb_fast_shutdown = 0;
?關閉mysql
/opt/mysql/mysql2/mysql/bin/mysqladmin -u root -P 3308 -S /tmp/mysql3.sock -p shutdown
2.啟動新數(shù)據(jù)庫?
?/opt/mysql/mysql8/mysql/bin/mysqld_safe --defaults-file=/etc/my3.cnf ?--user=mysql3
?--defaults-file使用舊數(shù)據(jù)庫配置文件
?--user使用舊數(shù)據(jù)庫用戶
?
3.客戶端連接
/opt/mysql/mysql8/mysql/bin/mysql -u root -p -P 3308 -S /tmp/mysql3.sock?
查看mysql版本 ,8.0表示升級成功
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.35 ? ?|
+-----------+
1 row in set (0.00 sec)?
?
2.邏輯升級
?概述:邏輯備份老版本數(shù)據(jù)庫,關閉老版本數(shù)據(jù)庫,啟動新版本數(shù)據(jù)庫,把老版本邏輯備份數(shù)據(jù)導入新版本數(shù)據(jù)庫。
?
1.從以前的 MySQL 導出現(xiàn)有數(shù)據(jù) :?
/opt/mysql/mysql5.7.36/mysql/bin/mysqldump -u root -p -P3307 -S /opt/mysql/mysql5.7.36/mysql.sock --add-drop-table --routines --events --all-databases --force > /opt/mysql/mysql5.7.36/data-for-upgrade.sql?
?--add-drop-table:SQL語句添加-如果存在表刪除表
?--routines:轉(zhuǎn)儲包括函數(shù)和過程
--events:轉(zhuǎn)儲包括事件
--all-databases:轉(zhuǎn)儲所有數(shù)據(jù)庫
--force:轉(zhuǎn)儲中出現(xiàn)錯誤繼續(xù)執(zhí)行
?
2.關閉舊mysql數(shù)據(jù)庫
/opt/mysql/mysql5.7.36/mysql/bin/mysqladmin -u root -p -P 3307 -S /opt/mysql/mysql5.7.36/mysql.sock shutdown
?3.安裝mysql8.0 參考mysql-linux歸檔版安裝-CSDN博客
初始化數(shù)據(jù)目錄
[client]
#password = your_password
port = 3308
socket = /tmp/mysql8.sock
[mysqld]
port = 3308
socket = /tmp/mysql8.sock
datadir = /opt/mysql/mysql8/data
basedir = /opt/mysql/mysql8/mysql
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 100G
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 4K
read_buffer_size = 768K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
tmp_table_size = 32M
default_authentication_plugin = mysql_native_password
lower_case_table_names = 1
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
explicit_defaults_for_timestamp = true
#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server-id = 3
slow_query_log=1
slow-query-log-file=/opt/mysql/mysql8/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""
innodb_data_home_dir = /opt/mysql/mysql8/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /opt/mysql/mysql8/data
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 2
innodb_write_io_threads = 2
secure-file-priv = /opt/mysql/mysql8
user=mysql8
mysqlx_socket = /tmp/mysqlx8.sock
mysqlx_port = 33080
[mysqldump]
user=root
password="553057712"
quick
max_allowed_packet = 500M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
?
/opt/mysql/mysql8/mysql/bin/mysqld --defaults-file=/etc/my8.cnf --initialize
復制臨時密碼第一次登陸時用到?
4.啟動mysql8.0?
?/opt/mysql/mysql8/mysql/bin/mysqld_safe --defaults-file=/etc/my8.cnf --user=mysql8
5.重置密碼
登陸?
?/opt/mysql/mysql8/mysql/bin/mysql -u root -p -P3308 -S /tmp/mysql8.sock
修改root密碼
?ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
6.將之前創(chuàng)建的轉(zhuǎn)儲文件加載到新的 MySQL服務器中
/opt/mysql/mysql8/mysql/bin/mysql -u root -p -P 3308 -S /tmp/mysql8.sock --force < /opt/mysql/mysql5.7.36/data-for-upgrade.sql
?執(zhí)行系統(tǒng)表出現(xiàn)一些錯誤
?7.執(zhí)行剩余的升級操作
關閉mysql?
?/opt/mysql/mysql8/mysql/bin/mysqladmin -u root -p -P 3308 -S /tmp/mysql8.sock shutdown
??使用 --upgrade=FORCE 選項重新啟動它 執(zhí)行其余升級任務
/opt/mysql/mysql8/mysql/bin/mysqld_safe --defaults-file=/etc/my8.cnf --upgrade=FORCE --user=mysql8?文章來源:http://www.zghlxwxcb.cn/news/detail-743666.html
?
到了這里,關于mysql基于軟件包升級的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!