mysqldump 带条件导出数据
– 导出20220101年之前的数据 机构贷库(jigoudai)下的合同表(ods_contract_detail_v) 带表结构
mysqldump -uroot -p --socket=/home/app/mysql/3307/mysql.sock --single-transaction --master-data --where='period_id < 20220101' jigoudai ods_contract_detail_v > contract.sql
– 导出20220101年之前的数据 机构贷库(jigoudai)下的合同表(ods_contract_detail_v) 不带带表结构
mysqldump -uroot -p --socket=/home/app/mysql/3307/mysql.sock -t --single-transaction --master-data --where='period_id < 20220101' jigoudai ods_contract_detail_v > contract.sql
·
·
·
·
Mysql升级(主从)
Mysql升级之前所有使用主备数据库的业务、日终任务、应用等将全部停止(Azkaban、nacos、微服务应用)
(Slave)从服务器
一、升级之前需做好备份(所有操作使用appuser用户)
1.1创建备份的文件夹
mkdir -p /home/app/mysql/v29_bak20230228
v29的数据库rpm包备份
cp 0.29mysql_rpm /home/app/mysql/v29_bak20230228
登录数据库
mysql --socket=/home/app/mysql/3307/mysql.sock -uroot -p
d6ywN<wLp:fV(密码)
1.2查看数据库
show databases;
1.3导出所有业务库表信息,(表创建、数据导入)
mysqldump -uroot -p --socket=/home/app/mysql/3307/mysql.sock --databases jigoudai jigoudai_test jigoudaidev ltest nacos azkaban209 > /home/app/mysql/3307/bus_data.sql
root123456(密码)
1.4导出用户及权限信息(数据导入)
mysqldump -uroot -p --socket=/home/app/mysql/3307/mysql.sock mysql user db tables_priv columns_priv > /home/app/mysql/3307/user_data.sql
1.5导出所有业务表的存储过程
mysqldump -uroot -p --socket=/home/app/mysql/3307/mysql.sock -ntd -R --databases jigoudai jigoudai_test jigoudaidev ltest nacos azkaban209 > /home/app/mysql/3307/fun_data.sql
1.6停止主从数据自动备份
stop slave
1.7数据库停用
ps -aux |grep mysql
kill -9
备份原数据文件
cp /home/app/mysql/3307/mysql3307.cnf /home/app/mysql/v29_bak20230228/
mv /home/app/mysql/3307 /home/app/mysql/3307_bak_20230228
二、升级包准备
创建安装包存放目录,并将安装包上传至"v30_rpm"文件夹下
mkdir -p /home/app/mysql/v30_rpm
创建mysql数据文件、配置文件等信息的目录
mkdir -p /home/app/mysql/3307
cp /home/app/mysql/v29_bak20230228/mysql3307.cnf /home/app/mysql/3307
#创建服务运行所需文件夹
mkdir -p /home/app/mysql/3307/log
mkdir -p /home/app/mysql/3307/mysqld
mkdir -p /home/app/mysql/3307/share
mkdir -p /home/app/mysql/3307/tmp
mkdir -p /home/app/mysql/3307/blog
mkdir -p /home/app/mysql/3307/plugin
mkdir -p /home/app/mysql/3307/data
三、安装过程
1.使用appuser解压Mysql_v8.0.30的安装包
tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
#检查安装的mysql版本 跟要装的是否一样或者是否安装
rpm -qa | grep -i mysql
rpm -qa | grep mariadb
卸载非30版本的mysql包
sudo rpm -ev mysql-community-client-plugins-8.0.29-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-client-8.0.29-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-common-8.0.29-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-libs-8.0.29-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-icu-data-files-8.0.29-1.el7.x86_64 --nodeps
whereis mysql
sudo rm -rf /usr/bin/mysql
sudo rm -rf /usr/lib64/mysql
sudo rm -rf /usr/local/bin/mysql
sudo rm -rf /usr/include/mysql
sudo rm -rf /mysql/app/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysql
sudo rm -rf /usr/share/man/man1/mysql.1.gz
按顺序安装安装包 如遇到其他问题可以尝试进行强制安装 --nodeps --force
sudo rpm -ivh mysql-community-common-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-devel-8.0.30-1.el7.x86_64.rpm --nodeps --force
sudo rpm -ivh mysql-community-client-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-icu-data-files-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-debuginfo-8.0.30-1.el7.x86_64.rpm
查看mysql版本,如果安装过程使用sudo 则需要使用"sudo mysql --version"
mysql --version
要移除掉默认生成的 my.cnf ,否则自己的配置不生效
mv /etc/my.cnf /etc/my.cnf_bak
之后的所有操作必须使用普通用户
#使用原先conf文件进行初始划数据库
mysqld --defaults-file=/home/app/mysql/3307/mysql3307.cnf --initialize --user=appuser --datadir=/home/app/mysql/3307/data
启动Mysql
nohup mysqld --defaults-file=/home/app/mysql/3307/mysql3307.cnf --user=appuser >/dev/null &
查看mysql密码(取:后面的密码(两个:则密码带:号))
tail -n200 log/mysqld.log
rduo;tl=%7vI
登录
mysql --socket=/home/app/mysql/3307/mysql.sock -uroot -p
d6ywN<wLp:fV
恢复数据
USE mysql
source /home/app/mysql/3307/user_data.sql
source /home/app/mysql/3307/bus_data.sql
source /home/app/mysql/3307/fun_data.sql
(Master)主服务器
1.1创建备份的文件夹
mkdir -p /home/app/mysql/v29_bak20230228
v29的数据库rpm包备份
cp 0.29mysql_rpm /home/app/mysql/v29_bak20230228
登录数据库
mysql --socket=/home/app/mysql/3307/mysql.sock -uroot -p
d6ywN<wLp:fV(密码)
1.2查看数据库
show databases;
1.3导出所有业务库表信息,(表创建、数据导入)
mysqldump -uroot -p --socket=/home/app/mysql/3307/mysql.sock --databases jigoudai jigoudai_test jigoudaidev ltest nacos azkaban209 > /home/app/mysql/3307/bus_data.sql
root123456(密码)
1.4导出用户及权限信息(数据导入)
mysqldump -uroot -p --socket=/home/app/mysql/3307/mysql.sock mysql user db tables_priv columns_priv > /home/app/mysql/3307/user_data.sql
1.5导出所有业务表的存储过程
mysqldump -uroot -p --socket=/home/app/mysql/3307/mysql.sock -ntd -R --databases jigoudai jigoudai_test jigoudaidev ltest nacos azkaban209 > /home/app/mysql/3307/fun_data.sql
1.6停止主从数据自动备份
stop slave
1.7数据库停用
ps -aux |grep mysql
kill -9
备份原数据文件
cp /home/app/mysql/3307/mysql3307.cnf /home/app/mysql/v29_bak20230228/
mv /home/app/mysql/3307 /home/app/mysql/3307_bak_20230228
二、升级包准备
创建安装包存放目录,并将安装包上传至"v30_rpm"文件夹下
mkdir -p /home/app/mysql/v30_rpm
创建mysql数据文件、配置文件等信息的目录
mkdir -p /home/app/mysql/3307
cp /home/app/mysql/v29_bak20230228/mysql3307.cnf /home/app/mysql/3307
#创建服务运行所需文件夹
mkdir -p /home/app/mysql/3307/log
mkdir -p /home/app/mysql/3307/mysqld
mkdir -p /home/app/mysql/3307/share
mkdir -p /home/app/mysql/3307/tmp
mkdir -p /home/app/mysql/3307/blog
mkdir -p /home/app/mysql/3307/plugin
mkdir -p /home/app/mysql/3307/data
三、安装过程
1.使用appuser解压Mysql_v8.0.30的安装包
tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
#检查安装的mysql版本 跟要装的是否一样或者是否安装
rpm -qa | grep -i mysql
rpm -qa | grep mariadb
卸载非30版本的mysql包
sudo rpm -ev mysql-community-client-plugins-8.0.29-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-client-8.0.29-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-common-8.0.29-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-libs-8.0.29-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-icu-data-files-8.0.29-1.el7.x86_64 --nodeps
whereis mysql
sudo rm -rf /usr/bin/mysql
sudo rm -rf /usr/lib64/mysql
sudo rm -rf /usr/local/bin/mysql
sudo rm -rf /usr/include/mysql
sudo rm -rf /mysql/app/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysql
sudo rm -rf /usr/share/man/man1/mysql.1.gz
按顺序安装安装包 如遇到其他问题可以尝试进行强制安装 --nodeps --force
sudo rpm -ivh mysql-community-common-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-devel-8.0.30-1.el7.x86_64.rpm --nodeps --force
sudo rpm -ivh mysql-community-client-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-icu-data-files-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-8.0.30-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-debuginfo-8.0.30-1.el7.x86_64.rpm
查看mysql版本,如果安装过程使用sudo 则需要使用"sudo mysql --version"
mysql --version
要移除掉默认生成的 my.cnf ,否则自己的配置不生效
mv /etc/my.cnf /etc/my.cnf_bak
之后的所有操作必须使用普通用户
#使用原先conf文件进行初始划数据库
mysqld --defaults-file=/home/app/mysql/3307/mysql3307.cnf --initialize --user=appuser --datadir=/home/app/mysql/3307/data
启动Mysql
nohup mysqld --defaults-file=/home/app/mysql/3307/mysql3307.cnf --user=appuser >/dev/null &
查看mysql密码(取:后面的密码(两个:则密码带:号))
tail -n200 log/mysqld.log
rduo;tl=%7vI
登录
mysql --socket=/home/app/mysql/3307/mysql.sock -uroot -p
d6ywN<wLp:fV
恢复数据
USE mysql
source /home/app/mysql/3307/user_data.sql
source /home/app/mysql/3307/bus_data.sql
source /home/app/mysql/3307/fun_data.sql
主从关系建立
#登录master
mysql --socket=/home/app/mysql/3306/mysql.sock --port=3306 -uroot -p
#创建同步用户并授予允许同步的权限
CREATE USER ‘master’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘oCh2xixf ‘;
GRANT REPLICATION SLAVE ON . TO ‘master’@’%’;
FLUSH PRIVILEGES;
#查看master的状态
show master status
#记录file和position
#登录 slave
mysql --socket=/home/app/mysql/3306/mysql.sock --port=3306 -uroot -p
#同步master的状态
change master to master_host=‘MYSQL01’, master_port=3306, master_user=‘master’, master_password='oCh2xixf ', master_log_file=‘mysql-bin.000002’, master_log_pos=1790;
#开启同步
start slave;’
#查看从服务状态
show slave status\G;
若出现Slave_IO_Running:No则
stop slave
#登录master
flush logs;
show master status;
#登录slave
change master to master_host=‘172.16.11.58’, master_port=3306, master_user=‘master’, master_password='oCh2xixf ', master_log_file=‘mysql-bin.000002’, master_log_pos= 1790;
验证主从
#验证主从同步(主节点导入预警管理数据库)
create database jigoudai;
use jigoudai
source /home/app/mysql/sql/jigoudai20221207_03.sql
#验证从节点是否导入预警管理数据库
use jigoudai;
show tables;
select * from rws_auth_user;
失败回滚
Mysql30 版本失败后恢复至 29版本,操作如下
#停止Mysql,删除无效的文件
ps -aux |grep mysql
kill -9
rm –rf /home/app/mysql/3306
#检查安装的mysql版本 跟要装的是否一样或者是否安装
rpm -qa | grep -i mysql
rpm -qa | grep mariadb
卸载检测到的mysql包
sudo rpm -ev mysql-community-client-plugins-8.0.30-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-client-8.0. 30-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-common-8.0.30-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-libs-8.0.30-1.el7.x86_64 --nodeps
sudo rpm -ev mysql-community-icu-data-files-8.0.30-1.el7.x86_64 --nodeps
whereis mysql
sudo rm -rf /usr/bin/mysql
sudo rm -rf /usr/lib64/mysql
sudo rm -rf /usr/local/bin/mysql
sudo rm -rf /usr/include/mysql
sudo rm -rf /mysql/app/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysql
sudo rm -rf /usr/share/man/man1/mysql.1.gz
按顺序安装安装包 如遇到其他问题可以尝试进行强制安装 --nodeps --force
rpm -ivh mysql-community-common-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.29-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-8.0.29-1.el7.x86_64.rpm 若报错:则yum remove mysql-libs
rpm -ivh mysql-community-client-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.29-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-8.0.29-1.el7.x86_64.rpm
查看mysql版本,如果安装过程使用sudo 则需要使用"sudo mysql --version"
mysql --version
要移除掉默认生成的 my.cnf ,否则自己的配置不生效
mv /etc/my.cnf /etc/my.cnf_bak
之后的所有操作必须使用普通用户
#使用原先conf文件进行初始划数据库
mysqld --defaults-file=/home/app/mysql/3307/mysql3307.cnf --initialize --user=appuser --datadir=/home/app/mysql/3307/data
启动Mysql
nohup mysqld --defaults-file=/home/app/mysql/3307/mysql3307.cnf --user=appuser >/dev/null &
查看mysql密码(取:后面的密码(两个:则密码带:号))
tail -n200 log/mysqld.log
rduo;tl=%7vI
验证数据库初始无误后停止数据库
ps -aux |grep mysql
kill -9
删除mysql数据文件
rm –rf /home/app/mysql/3307/data
将已备份的29数据文件迁移至原始位置
mv /home/app/mysql/3307_bak_20230228/3307 /home/app/mysql/
启动Mysql
nohup mysqld --defaults-file=/home/app/mysql/3307/mysql3307.cnf --user=appuser >/dev/null &
查看mysql密码(取:后面的密码(两个:则密码带:号))
tail -n200 log/mysqld.log
rduo;tl=%7vI