mysql5.7.17版本升级源码方式及恢复主主复制

版本升级--自测

从库
------------
停止主从复制
stop slave

全库备份
mysqldump -u root -p -S mysql.sock --all-databases>/data/mysql/standby/dump.sql
加-R参数可备份函数

备份数据库global variables参数
mysql -uroot -p -Bse "show global variables" > /data/mysql/standby/before_var.cnf

备份my.cnf配置文件
cp standby.cnf standby.cnf.bak

备份basedir目录
mkdir -p /mysqlbackup/basedir_bak

cd /usr/local
tar -cvf mysql.tar mysql
mv *.tar /mysqlbackup/basedir_bak

mkdir -p /mysqlbackup/
mv mysql/ /mysqlbackup/

进入到bin目录关闭mysql服务
cd /mysqlbackup/mysql/bin

设置慢关闭
./mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown=0;" --socket=/data/mysql/standby/mysql.sock

查看是否设置为0
./mysql -uroot -p --socket=/data/mysql/standby/mysql.sock -e "show global variables like '%fast_shutdown%';"

扫描二维码关注公众号,回复: 5965761 查看本文章

关闭mysql数据库
./mysqladmin -uroot -p -S /data/mysql/standby/mysql.sock shutdown

记录binlog位置和pos信息
tail -300f /data/mysql/standby/elog/mysql.err
read up to log 'mysql-bin.000001', position 6451


解压软件包
cd /data/mysql
tar -xvf mysql-boost-5.7.21.tar.gz

编译5.7.21版本
cd mysql-5.7.21
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=/data/mysql/mysql-5.7.21/boost

修改版本
[root@rac02 mysql-5.7.21]# cat VERSION
MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=7
MYSQL_VERSION_PATCH=99
MYSQL_VERSION_EXTRA=

编译
make && make install

查看是否升级成功
mysql -V
mysql  Ver 14.14 Distrib 5.7.99, for Linux (x86_64) using  EditLine wrapper

从库起库
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/standby.cnf --ledir=/usr/local/mysql/bin &

执行升级脚本
/usr/local/mysql/bin/mysql_upgrade -uroot -p -S /data/mysql/standby/mysql.sock

Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.engine_cost                                  OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.gtid_executed                                OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.jzw                                          OK
mysql.jzw2                                         OK
mysql.jzw3                                         OK
mysql.jzw4                                         OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.server_cost                                  OK
mysql.servers                                      OK
mysql.slave_master_info                            OK
mysql.slave_relay_log_info                         OK
mysql.slave_worker_info                            OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
The sys schema is already up to date (version 1.5.1).
Checking databases.
sys.sys_config                                     OK
Upgrade process completed successfully.
Checking if update is needed.

mysql> \s
--------------
mysql  Ver 14.14 Distrib 5.7.99, for Linux (x86_64) using  EditLine wrapper

Connection id:          5
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.99-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            mysql.sock
Uptime:                 5 min 56 sec

Threads: 3  Questions: 2729  Slow queries: 0  Opens: 274  Flush tables: 1  Open tables: 39  Queries per second avg: 7.665
--------------

-------------------------------------------------------------------------------------------------------------------------------------------------------

主库
------------
停止主从复制
stop slave

全库备份
mysqldump -u root -p -S mysql.sock --all-databases>/data/mysql/primary/dump.sql

备份数据库global variables参数
mysql -uroot -p -Bse "show global variables" > /data/mysql/primary/before_var.cnf

备份my.cnf配置文件
cp primary.cnf primary.cnf.bak

备份basedir目录
mkdir -p /mysqlbackup/basedir_bak

cd /usr/local
tar -cvf mysql.tar mysql
mv *.tar /mysqlbackup/basedir_bak

mkdir -p /mysqlbackup/
mv mysql/ /mysqlbackup/

进入到bin目录关闭mysql服务
cd /mysqlbackup/mysql/bin

设置慢关闭
./mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown=0;" --socket=/data/mysql/primary/mysql.sock

查看是否设置为0
./mysql -uroot -p --socket=/data/mysql/primary/mysql.sock -e "show global variables like '%fast_shutdown%';"

关闭mysql数据库
./mysqladmin -uroot -p -S /data/mysql/primary/mysql.sock shutdown

记录binlog位置和pos信息
tail -300f /data/mysql/primary/elog/mysql.err
read up to log 'mysql-bin.000001', position 6451


解压软件包
cd /data/mysql
tar -xvf mysql-boost-5.7.21.tar.gz

编译5.7.21版本
cd mysql-5.7.21
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=/data/mysql/mysql-5.7.21/boost

修改版本
[root@rac02 mysql-5.7.21]# cat VERSION
MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=7
MYSQL_VERSION_PATCH=99
MYSQL_VERSION_EXTRA=

编译
make && make install

查看是否升级成功
mysql -V
mysql  Ver 14.14 Distrib 5.7.99, for Linux (x86_64) using  EditLine wrapper

从库起库
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/primary.cnf --ledir=/usr/local/mysql/bin &

执行升级脚本
/usr/local/mysql/bin/mysql_upgrade -uroot -p -S /data/mysql/primary/mysql.sock

Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.engine_cost                                  OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.gtid_executed                                OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.jzw                                          OK
mysql.jzw2                                         OK
mysql.jzw3                                         OK
mysql.jzw4                                         OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.server_cost                                  OK
mysql.servers                                      OK
mysql.slave_master_info                            OK
mysql.slave_relay_log_info                         OK
mysql.slave_worker_info                            OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
The sys schema is already up to date (version 1.5.1).
Checking databases.
sys.sys_config                                     OK
Upgrade process completed successfully.
Checking if update is needed.

mysql> \s
--------------
mysql  Ver 14.14 Distrib 5.7.99, for Linux (x86_64) using  EditLine wrapper

Connection id:          5
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.99-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            mysql.sock
Uptime:                 5 min 56 sec

Threads: 3  Questions: 2729  Slow queries: 0  Opens: 274  Flush tables: 1  Open tables: 39  Queries per second avg: 7.665
--------------

-------------------------------------------------------------------------------------------------------------------------------------------------------


升级完成后恢复主主复制
先做主从复制
------------------------
从库
stop slave;
start slave;
show slave status\G
如果有报错SQL,就要去修正,或者用set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;跳过

反向复制
-----------------------
主库
stop slave;
start slave;
show slave status\G
如果有报错SQL,就要去修正,或者用set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;跳过


同步错误处理
发现mysql slave服务器经常因为一些特殊字符或者符号产生的更新语句报错,整个同步也会因此而卡在那,最初的办法只是手动去出错的机器执行下面三条SQL语句,跳过错误即可。
  mysql>slave stop;
  mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
  mysql>slave start;

猜你喜欢

转载自www.cnblogs.com/kawashibara/p/10747065.html
今日推荐