第三章章節(jié) 下部:基礎(chǔ)管理、體系結(jié)構(gòu)、升級(jí)降級(jí)
1. 基礎(chǔ)管理
1.1 用戶管理
1.2 權(quán)限管理
1.3 連接管理
1.4 初始化配置文件
1.4.1 作用
<1. 影響到數(shù)據(jù)庫(kù)的啟動(dòng)、日常工作。
<2. 影響到客戶端連接(本地服務(wù)器上發(fā)起的)。
1.4.2 文件格式
[root@db01 ~]# cat /etc/my.cnf
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
[標(biāo)簽項(xiàng)] : 用來(lái)表示不同的程序
服務(wù)端: [mysqld] [mysqld_safe] [server]
客戶端:? [mysql]? [mysqldump]? [client]
配置=xxx : 設(shè)置的參數(shù)鍵值對(duì)
user=mysql? ? ? ? ? ? ? ? # 數(shù)據(jù)庫(kù)管理用戶
basedir=/data/app/mysql? ? # 程序路徑
datadir=/data/3306/data? ? # 數(shù)據(jù)路徑
socket=/tmp/mysql.sock? ? # socket文件位置
1.4.3 配置文件讀取順序
# 默認(rèn)配置文件讀取順序
[root@db01 ~]# mysqld --help --verbose |grep my.cnf
/etc/my.cnf ---》 /etc/mysql/my.cnf ---》 /usr/local/mysql/etc/my.cnf ----》 ~/.my.cnf
建議: 每個(gè)數(shù)據(jù)庫(kù)保留一個(gè)配置文件。
彩蛋:
如果有多個(gè)配置文件,例如
/etc/my.cnf? ---> port=3306
~/.my.cnf? ? ---> port=3308
數(shù)據(jù)庫(kù)啟動(dòng)時(shí),port是多少?
# 手工定義配置文件讀取路徑
mysqld? --defaults-file=/opt/my1.cnf? &
mysqld_safe --defaults-file=/opt/my2.cnf? &
1.4.4 root本地管理員的密碼忘記?
<1. 停數(shù)據(jù)庫(kù)
[root@db01 tmp]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
[root@db01 tmp]#
<2. 啟動(dòng)數(shù)據(jù)庫(kù)到“安全”模式
mysqld_safe --skip-grant-tables --skip-networking &
參數(shù)作用:
--skip-grant-tables : 跳過(guò)授權(quán)表,不開(kāi)啟驗(yàn)證功能。
--skip-networking? :? 阻止所有TCP/IP網(wǎng)絡(luò)連接。
<3. 改密碼
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '123456';
<4. 重啟至正常模式
[root@db01 tmp]# /etc/init.d/mysqld restart
1.5 MySQL的啟動(dòng)關(guān)閉

1.6 多實(shí)例應(yīng)用
1.6.1 創(chuàng)建相關(guān)目錄
[root@db01 ~]# mkdir -p /data/330{7..9}/data? /data/330{7..9}/logs
1.6.2 準(zhǔn)備配置文件
cat >/data/3307/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3307/data
server_id=7
port=3307
log_bin=/data/3307/logs/mysql-bin
socket=/tmp/mysql3307.sock
EOF
cat >/data/3308/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3308/data
server_id=8
port=3308
log_bin=/data/3308/logs/mysql-bin
socket=/tmp/mysql3308.sock
EOF
cat >/data/3309/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3309/data
server_id=9
port=3309
log_bin=/data/3309/logs/mysql-bin
socket=/tmp/mysql3309.sock
EOF
1.6.3 授權(quán)
[root@db01 ~]# chown -R mysql. /data/*
1.6.4 初始化數(shù)據(jù)
mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3309/data
mv /etc/my.cnf.bak? /etc/my.cnf
1.6.5 啟動(dòng)多實(shí)例
[root@db01 ~]# mysqld_safe --defaults-file=/data/3307/my.cnf &
[root@db01 ~]# mysqld_safe --defaults-file=/data/3308/my.cnf &
[root@db01 ~]# mysqld_safe --defaults-file=/data/3309/my.cnf &
1.6.7 使用navicat連接多實(shí)例
mysql -S /tmp/mysql3307.sock
grant all on *.* to root@'10.0.0.%' identified by '123';
mysql -S /tmp/mysql3308.sock -e "grant all on *.* to root@'10.0.0.%' identified by '123';"
mysql -S /tmp/mysql3309.sock -e "grant all on *.* to root@'10.0.0.%' identified by '123';"
1.6.8 配置多實(shí)例systemd
cat > /etc/systemd/system/mysqld3307.service? <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF
cat > /etc/systemd/system/mysqld3308.service? <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF
cat > /etc/systemd/system/mysqld3309.service? <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF
[root@db01 ~]# pkill mysqld
[root@db01 ~]# systemctl start mysqld3307
[root@db01 ~]# systemctl start mysqld3308
[root@db01 ~]# systemctl start mysqld3309
1.7 彩蛋:多版本多實(shí)例應(yīng)用
真實(shí)學(xué)生案例: 第一周工作
1.7.1 上傳軟件、解壓、軟連接
tar xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
ln -s mysql-8.0.18-linux-glibc2.12-x86_64 mysql80
ln -s mysql-5.6.46-linux-glibc2.12-x86_64 mysql56
1.7.2 創(chuàng)建相關(guān)目錄
mkdir -p /data/331{7..8}/data? /data/331{7..8}/logs
1.7.3 準(zhǔn)備配置文件
cat >/data/3317/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql56
datadir=/data/3317/data
server_id=17
port=3317
log_bin=/data/3317/logs/mysql-bin
socket=/tmp/mysql3317.sock
EOF
cat >/data/3318/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql80
datadir=/data/3318/data
server_id=18
port=3318
log_bin=/data/3318/logs/mysql-bin
socket=/tmp/mysql3318.sock
EOF
1.7.3 授權(quán)
[root@db01 ~]# chown -R mysql. /data/*
1.7.4 初始化數(shù)據(jù)
mv /etc/my.cnf /etc/my.cnf.bak
vim /etc/profile
#注釋環(huán)境變量:
# export PATH=/data/app/mysql/bin:$PATH
# 最好重連一個(gè)Xshell窗口
[root@db01 ~]# mysql -V
-bash: mysql: command not found
[root@db01 ~]#
# 5.6初始化
/data/app/mysql56/scripts/mysql_install_db? --user=mysql --basedir=/data/app/mysql56 --datadir=/data/3317/data
# 8.0初始化
/data/app/mysql80/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql80 --datadir=/data/3318/data
1.7.5 配置systemd管理
cat > /etc/systemd/system/mysqld3317.service? <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql56/bin/mysqld --defaults-file=/data/3317/my.cnf
LimitNOFILE = 5000
EOF
cat > /etc/systemd/system/mysqld3318.service? <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql80/bin/mysqld --defaults-file=/data/3318/my.cnf
LimitNOFILE = 5000
EOF
1.7.6 連接測(cè)試
[root@db01 app]# /data/app/mysql56/bin/mysql -S /tmp/mysql3317.sock
[root@db01 app]# /data/app/mysql80/bin/mysql -S /tmp/mysql3318.sock
2. 彩蛋: MySQL 的升級(jí)、降級(jí)
2.1 升級(jí)
2.1.1 INPLACE就地
在一臺(tái)服務(wù)器上,原版本升級(jí)到新版本。
風(fēng)險(xiǎn)較大。
**** 建議 : 不管哪種方式升級(jí),都應(yīng)該先做備份。方便失敗回退。****
2.1.2 Mergeing(logical)遷移? ----> 建議
備份遷移
主從遷移
2.1.3? 升級(jí)注意事項(xiàng)
Upgrade is only supported between General Availability (GA) releases.
Upgrade from MySQL 5.6 to 5.7 is supported. Upgrading to the latest release is recommended before upgrading to the next version. For example, upgrade to the latest MySQL 5.6 release before upgrading to MySQL 5.7.
Upgrade that skips versions is not supported. For example, upgrading directly from MySQL 5.5 to 5.7 is not supported.
Upgrade within a release series is supported. For example, upgrading from MySQL 5.7.x to 5.7.y is supported. Skipping a release is also supported. For example, upgrading from MySQL 5.7.x to 5.7.z is supported.
a. 支持GA版本之間升級(jí)
b. 5.6--> 5.7? ,先將5.6升級(jí)至最新版,再升級(jí)到5.7
c. 5.5 ---> 5.7 ,先將5.5 升級(jí)至最新,再5.5---> 5.6最新,再5.6--->5.7 最新
d. 回退方案要提前考慮好,最好升級(jí)前要備份(特別是往8.0版本升級(jí))。
e. 降低停機(jī)時(shí)間(停業(yè)務(wù)的時(shí)間),在業(yè)務(wù)不繁忙期間升級(jí),做好足夠的預(yù)演。
2.1.4 INPLACE 升級(jí)過(guò)程原理 (生產(chǎn)思路)
0. 備份原數(shù)據(jù)庫(kù)數(shù)據(jù)
a. 安裝新版本軟件
b. 關(guān)閉原數(shù)據(jù)庫(kù)業(yè)務(wù)(掛維護(hù)頁(yè))
c. 使用新版本軟件 “掛” 舊版本數(shù)據(jù)啟動(dòng)(--skip-grant-tables ,--skip-networking)
d. 升級(jí) : 只是升級(jí)系統(tǒng)表。升級(jí)時(shí)間和數(shù)據(jù)量無(wú)關(guān)的。
e. 正常重啟數(shù)據(jù)庫(kù)。
f. 驗(yàn)證各項(xiàng)功能是否正常。
g. 業(yè)務(wù)恢復(fù)。
2.1.5? 5.6.46 ----> 5.7.28 Inplace 升級(jí)演練
a. 安裝 新版本軟件
略。
b. 停原庫(kù) (5.6.46)
# 1. 快速關(guān)庫(kù)功能關(guān)閉(優(yōu)雅關(guān)閉、干凈的關(guān)閉)?
vim /data/3317/my.cnf
## 添加以下配置
innodb_fast_shutdown=0
[root@db01 data]# systemctl stop mysqld3317
c. 使用高版本軟件掛低版本數(shù)據(jù)啟動(dòng)
[root@db01 data]# vim /data/3317/my.cnf
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3317/data
socket=/tmp/mysql3317.sock
port=3317
server_id=17
innodb_fast_shutdown=0
[root@db01 data]# /data/app/mysql/bin/mysqld_safe --defaults-file=/data/3317/my.cnf --skip-grant-tables --skip-networking &
d. 升級(jí) (升級(jí)到8.0可以省略)
[root@db01 data]# /data/app/mysql/bin/mysql_upgrade -S /tmp/mysql3317.sock --force
e. 重啟數(shù)據(jù)庫(kù)到正常狀態(tài)?
[root@db01 data]# /data/app/mysql/bin/mysqladmin -S /tmp/mysql3317.sock shutdown
[root@db01 data]# vim /etc/systemd/system/mysqld3317.service
# 修改以下內(nèi)容
ExecStart=/data/app/mysql/bin/mysqld --defaults-file=/data/3317/my.cnf
# 啟動(dòng)數(shù)據(jù)庫(kù)
[root@db01 data]# systemctl start mysqld3317
# 連接查看
[root@db01 data]# /data/app/mysql/bin/mysql -S /tmp/mysql3317.sock
2.1.6 彩蛋:? 將5.7 升級(jí)至 8.0
# 新特性:
1、 mysql-shell工具,8.0以后,可以調(diào)用這個(gè)命令,升級(jí)之前的預(yù)檢查。
例子:
[root@db01 ~]# mysqlsh root:123@10.0.0.51:3306 -e "util.checkForServerUpgrade()"
2、升級(jí)時(shí)不再需要手工 mysql_upgrade
3、限制:升級(jí)前必須要備份。否則無(wú)法回退。
# 5.7.28 升級(jí)至 8.0.18 版本演練
a. 下載 8.0.18 版本的 mysql-shell,并安裝 。
https://downloads.mysql.com/archives/
[root@db01 app]# yum install -y mysql-shell-8.0.18-1.el7.x86_64.rpm
b. 創(chuàng)建連接用戶
[root@db01 data]# /data/app/mysql/bin/mysql -S /tmp/mysql3317.sock
mysql> grant all on *.* to root@'10.0.0.%' identified by '123';
mysql> drop user root@'127.0.0.1';
mysql> drop user root@'db01';
mysql> drop user ''@'db01';
mysql> drop user ''@'localhost';
mysql> drop user root@'::1';
mysql> select user,host from mysql.user;
+---------------+-----------+
| user? ? ? ? ? | host? ? ? |
+---------------+-----------+
| root? ? ? ? ? | 10.0.0.%? |
| mysql.session | localhost |
| mysql.sys? ? | localhost |
| root? ? ? ? ? | localhost |
+---------------+-----------+
c. 預(yù) 檢查
[root@db01 data]# mysqlsh root:123@10.0.0.51:3317 -e "util.checkForServerUpgrade()" >/tmp/up.log
d. 停原庫(kù)(5.7.28)
vim /data/3317/my.cnf
## 添加以下配置
innodb_fast_shutdown=0
[root@db01 data]# systemctl stop mysqld3317
e. 使用高版本軟件掛低版本數(shù)據(jù)啟動(dòng)
[root@db01 data]# vim /data/3317/my.cnf
[mysqld]
user=mysql
basedir=/data/app/mysql80
datadir=/data/3317/data
socket=/tmp/mysql3317.sock
port=3317
server_id=17
innodb_fast_shutdown=0
[root@db01 data]# /data/app/mysql80/bin/mysqld_safe --defaults-file=/data/3317/my.cnf --skip-grant-tables --skip-networking &
f. 重啟數(shù)據(jù)庫(kù)到正常狀態(tài)?
[root@db01 data]# /data/app/mysql80/bin/mysqladmin -S /tmp/mysql3317.sock shutdown
[root@db01 data]# vim /etc/systemd/system/mysqld3317.service
# 修改以下內(nèi)容
ExecStart=/data/app/mysql80/bin/mysqld --defaults-file=/data/3317/my.cnf
# 啟動(dòng)數(shù)據(jù)庫(kù)
[root@db01 data]# systemctl start mysqld3317
# 連接查看
[root@db01 data]# /data/app/mysql80/bin/mysql -S /tmp/mysql3317.sock
3. 降級(jí):
3.1 限制
官方解釋:
https://dev.mysql.com/doc/refman/5.7/en/downgrade-paths.html
Downgrade from MySQL 5.7 to 5.6 is supported using the logical downgrade method.
https://dev.mysql.com/doc/refman/5.7/en/downgrade-binary-package.html#downgrade-procedure-inplace
In-place downgrade is supported for downgrades between GA releases within the same release series(5.7.y? ---> 5.7.x).
3.2 5.7.28 ---》 5.7.10 inplace downgrade演練
原版本:
軟件: 5.7.28? /data/app/mysql? + 數(shù)據(jù):/data/3306/data?
目標(biāo)版本: 5.7.10? /data/app/mysql5710
3.2.1. 安裝 5.7.10 (低) 二進(jìn)制版本
[root@db01 app]# ln -s mysql-5.7.10-linux-glibc2.5-x86_64 mysql5710
3.2.2. 針對(duì)5728版本(高)進(jìn)行處理工作
https://dev.mysql.com/doc/refman/5.7/en/downgrading-to-previous-series.html
[root@db01 app]# cp /etc/my.cnf.bak /etc/my.cnf
[root@db01 app]# /etc/init.d/mysqld restart
[root@db01 app]# /data/app/mysql/bin/mysql -uroot -p123456 -S /tmp/mysql.sock
set sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;
set global sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;
select @@sql_mode;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
ALTER TABLE mysql.proc MODIFY definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE mysql.event MODIFY definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE mysql.tables_priv MODIFY Grantor char(77) COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE mysql.procs_priv MODIFY Grantor char(77) COLLATE utf8_bin NOT NULL DEFAULT '';
3.2.3. 優(yōu)雅的關(guān)閉5.7.28(高)。
[root@db01 app]# /data/app/mysql/bin/mysql -uroot -p123456 -S /tmp/mysql.sock
set global innodb_fast_shutdown=0 ;
[root@db01 app]# /data/app/mysql/bin/mysqladmin? -uroot -p123456 shutdown
3.2.4. 刪除ib_logfile*
[root@db01 mysql5710]# rm -rf /data/3306/data/ib_logfile*
3.2.5. 替換配置文件(替換成低版本)
[root@db01 mysql5710]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/data/app/mysql5710
#basedir=/data/app/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
3.2.6. 低版本啟動(dòng)高版本數(shù)據(jù)庫(kù)?
/data/app/mysql5710/bin/mysqld? --skip-grant-tables --skip-networking &
3.2.7. 執(zhí)行upgrade
[root@db01 ~]# /data/app/mysql5710/bin/mysql_upgrade -uroot -p123456 --force
3.2.8 啟動(dòng)到正常模式
[root@db01 ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
/data/app/mysql5710/bin/mysql -uroot -p123456 -S /tmp/mysql.sock
3.3? 5.7.28 ---》 5.6.46? ? ? logical downgrade演練
3.3.0 恢復(fù)5.7.28 環(huán)境
[root@db01 data]# pkill mysqld
[root@db01 data]# rm -rf /data/3306/data/*
# 恢復(fù)配置文件
[root@db01 data]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
# 恢復(fù)環(huán)境變量
vim /etc/profile
export PATH=/data/app/mysql/bin:$PATH
[root@db01 data]# source /etc/profile
[root@db01 data]# mysql -V
mysql? Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using? EditLine wrapper
# 初始化數(shù)據(jù)
mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3306/data
# 啟動(dòng)數(shù)據(jù)庫(kù)
[root@db01 data]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/3306/data/db01.err'.
SUCCESS!
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.28? ? |
+-----------+
1 row in set (0.00 sec)
3.3.1 安裝5.6.46二進(jìn)制版本軟件
略。
3.3.2 處理5.7.28高版本數(shù)據(jù)?
set sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;
set global sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;
select @@sql_mode;?
ALTER TABLE mysql.proc MODIFY definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE mysql.event MODIFY definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE mysql.tables_priv MODIFY Grantor char(77) COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE mysql.procs_priv MODIFY Grantor char(77) COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE mysql.tables_priv MODIFY User char(16) NOT NULL default '';
ALTER TABLE mysql.columns_priv MODIFY User char(16) NOT NULL default '';
ALTER TABLE mysql.user MODIFY User char(16) NOT NULL default '';
ALTER TABLE mysql.db MODIFY User char(16) NOT NULL default '';
ALTER TABLE mysql.procs_priv MODIFY User char(16) binary DEFAULT '' NOT NULL;
ALTER TABLE mysql.user ADD Password char(41) character set latin1
collate latin1_bin NOT NULL default '' AFTER user;
UPDATE mysql.user SET password = authentication_string WHERE
LENGTH(authentication_string) = 41 AND plugin = 'mysql_native_password';
UPDATE mysql.user SET authentication_string = '' WHERE
LENGTH(authentication_string) = 41 AND plugin = 'mysql_native_password';
ALTER TABLE mysql.help_category ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.help_keyword ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.help_relation ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.help_topic ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.time_zone ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.time_zone_leap_second ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.time_zone_name ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.time_zone_transition? ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.time_zone_transition_type ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.plugin ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.servers ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
ALTER TABLE mysql.user MODIFY plugin CHAR(64) COLLATE utf8_bin
DEFAULT 'mysql_native_password';
DROP DATABASE sys;
3.3.3. 邏輯全備5.7.28數(shù)據(jù)
[root@db01 ~]# mysqldump -A >/tmp/full.sql
3.3.4. 初始化一套5.6.46的空環(huán)境
[root@db01 ~]# vim /etc/profile
export PATH=/data/app/mysql56/bin:$PATH
[root@db01 ~]# source /etc/profile
[root@db01 ~]# mysql -V
mysql? Ver 14.14 Distrib 5.6.46, for linux-glibc2.12 (x86_64) using? EditLine wrapper
[root@db01 ~]# mv /etc/my.cnf /etc/my.cnf.bak
mv: overwrite ‘/etc/my.cnf.bak’? y
[root@db01 data]# rm -rf /data/3317/data/*
[root@db01 data]# /data/app/mysql56/scripts/mysql_install_db? --user=mysql --basedir=/data/app/mysql56 --datadir=/data/3317/data
[root@db01 data]# vim /etc/systemd/system/mysqld3317.service
ExecStart=/data/app/mysql56/bin/mysqld --defaults-file=/data/3317/my.cnf
[root@db01 data]# systemctl daemon-reload
[root@db01 data]# systemctl start mysqld3317
3.3.5. 恢復(fù)備份數(shù)據(jù)到5.6.46中
[root@db01 data]# mysql -S /tmp/mysql3317.sock
mysql> source /tmp/full.sql