mysqldump 使用 及数据库升级

这篇具有很好参考价值的文章主要介绍了mysqldump 使用 及数据库升级。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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数据库中的表结构和数据导出到一个文件中:

mysqldump -u username -p password database_name > export.sql

其中,username是您的MySQL用户名,password是您的MySQL密码,database_name是要导出的数据库名,export.sql是要生成的导出文件名。您可以根据需要修改这些参数。

如果您只想导出表结构而不包括数据,则可以使用以下命令:

mysqldump -u username -p password --no-data database_name > export.sql

这个命令在导出时会去掉表数据。

如果您只想导出特定表,您可以像这样使用命令:

mysqldump -u username -p password database_name table_name > export.sql

其中,table_name是要导出的表名。
·

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文章来源地址https://www.toymoban.com/news/detail-401147.html

登录

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

到了这里,关于mysqldump 使用 及数据库升级的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库:mysqldump用法详解

    目录 一、命令格式详解 1.1 语法格式 1.2 常用参数 1.3 完整参数

    2024年02月09日
    浏览(45)
  • mysql数据库备份(mysqldump)

    1. 备份全部数据库的数据和结构 2. 备份全部数据库的结构(加 -d 参数) 3. 备份全部数据库的数据(加 -t 参数) 4. 备份单个数据库的数据和结构(,数据库名mydb) 5. 备份单个数据库的结构 6. 备份单个数据库的数据 7. 备份多个表的数据和结构(数据,结构的单独备份方法与上同)

    2024年02月07日
    浏览(60)
  • MySQL mysqldump备份数据库(附带实例)

    数据库的主要作用就是对数据进行保存和维护,所以备份数据是数据库管理中最常用的操作。为了防止数据库意外崩溃或硬件损伤而导致的数据丢失,数据库系统提供了备份和恢复策略。 保证数据安全的最重要的一个措施就是定期的对数据库进行备份。这样即使发生了意外,

    2024年02月13日
    浏览(219)
  • Windows下手动、自动备份Mysql数据库(mysqldump)

    (本文实例环境及版本 MySql8.0.13) 1.1 命令行备份 cmd 先进入mysql所在的bin目录下,如:cd D:softwaremysqlmysql-8.0.13-winx64bin mysqldump -u root -p 数据库 [表名1 表名2…] 文件备份路径 如把testdb数据库备份到 D:ydTest.sql 输入密码后回车 mysqldump -u root -p testdb d:ydTest.sql 如果你希望备份是

    2023年04月19日
    浏览(44)
  • 编写shell脚本,利用mysqldump实现MySQL数据库分库分表备份

     查看数据和数据表 删除头部Database和数据库自带的表  编写脚本 检查脚本运行备份数据库 分表分库备份成功 还原检测 删除数据库并查看库 开始还原 使用备份的库进行还原,由于是压缩文件,使用压缩还原 查看数据库  

    2024年02月05日
    浏览(48)
  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入

    要从MySQL中的表格中选择数据,请使用\\\"SELECT\\\"语句: 示例选择\\\"customers\\\"表格中的所有记录,并显示结果: 注意 :我们使用 fetchall() 方法,该方法从上次执行的语句中获取所有行。 要仅选择表格中的某些列,请使用\\\"SELECT\\\"语句,后跟列名: 示例仅选择name和address列: 如果您只对

    2024年02月05日
    浏览(95)
  • 【Jetpack】使用 Room 中的 Migration 升级数据库异常处理 ( 多个数据库版本的迁移 | fallbackToDestructiveMigration() 函数处理升级异常 )

    Room Migration 数据库迁移工具 是 Android Jetpack Architecture Components ( 架构组件 ) 的一部分 , 它是一个方便的 数据库迁移工具 , 用于为 Android 中使用 Room 框架创建的数据库 提供 自动化迁移方案 ; Room Migration 数据库迁移工具用途如下 : 数据库修改 : 修改数据库表结构 ; 迁移代码 : 为

    2024年02月08日
    浏览(48)
  • Flutter应用-使用sqflite升级数据库

    使用fluttter开发的应用程序发布后,发现数据库有些设计不合理。如何来更新数据库呢? 使用sqflite来处理数据库,但是第一版软件发布后,发现数据库不太合理要改动,想新的应用安装启动后更新数据库。 下面以将一张表名称叫timerdata的表在新版应用启动时将这张表的名称

    2024年02月05日
    浏览(44)
  • 使用Sqoop将数据从Hadoop导出到关系型数据库

    当将数据从Hadoop导出到关系型数据库时,Apache Sqoop是一个非常有用的工具。Sqoop可以轻松地将大数据存储中的数据导出到常见的关系型数据库,如MySQL、Oracle、SQL Server等。本文将深入介绍如何使用Sqoop进行数据导出,并提供详细的示例代码,以帮助大家更全面地理解和实施这一

    2024年02月20日
    浏览(40)
  • 使用Navicat将表设计导出数据库设计文档

    我们在写数据库设计文档的时候,会需要对数据库表进行设计的编写,手动写的话会很费时间费精力。

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包