mysql记录-文件路径更改,备份还原,分区,主从复制

调整mysql数据库文件路径

1.把原来的data文件复制到新的data文件

2.关闭mysql80服务

3.修改my.ini,把datadir路径改为新的路径,注意:路径模式是D:/mysql8.0\data

4.重启服务器

数据库的备份和还原

方式一:命令

备份

使用mysqldump来实现对所有数据库,指定数据库,表的备份,存储过程,视图等备份。

-- 1指定表结构和数据
mysqldump -u root -p123456 [数据库名称] [table1,table2,table3...] > [导出路径]

-- 2数据结构进行备份,不需要表数据
mysqldump -u root -p123456 --no-data [数据库名称]  [table1,table2,table3...]> [导出路径]

-- 3所有表结构和数据及其他视图、存储过程
mysqldump -u root -p123456 --routines --events [数据库名称] > [导出路径] 

-- 4只导出存储过程
mysqldump -R -ndt [数据库名称] -u root -p > [导出路径]

总结:选自文章 mysqldump关于存储过程,事件等的导出_mysqldump events procedure-CSDN博客

  • -d 结构(--no-data:不导出任何数据,只导出数据库表结构)
  • -t 数据(--no-create-info:只导出数据,而不添加CREATE TABLE 语句)
  • -n (--no-create-db:只导出数据,而不添加CREATE DATABASE 语句)
  • -R (--routines:导出存储过程以及自定义函数)
  • -E (--events:导出事件)
  • --triggers (默认导出触发器,使用--skip-triggers屏蔽导出)
  • -B (--databases:导出数据库列表,单个库时可省略)
  • --tables 表列表(单个表时可省略)

 使用搭配:

  • ①同时导出结构以及数据时可同时省略-d和-t
  • ②同时 不 导出结构和数据可使用-ntd
  • ③只导出存储过程和函数可使用-R -ntd
  • ④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
  • ⑤只导出结构&函数&事件&触发器使用 -R -E -d

还原

使用命令行来还原数据

mysql -uroot -p  -P 3306 [要导入的数据库] < [sql文件路径]

方式二:navicat

可以在备份前先把日志文件存储路径改下,更易看。

工具-->选项

使用数据传输工具

(将数据库中的数据从一个数据库系统传送到另一个数据库系统,也可用这个)

参考自:Navicat导出数据库选择只导表结构或者表记录_navicat怎么导出数据库怎么选择部分表不需要数据-CSDN博客

实战演练 | Navicat 安全可靠的数据传输功能_navicat数据传输视图-CSDN博客

点击工具-->数据传输


点击选项-->出现 1.表选项 2.记录选项
不选2只有表结构无记录 ,只选1只有表记录

存储为sql文件

备份:

还原:

右键 --> 运行sql文件

直接用备份

备份:

点击开始

还原:

定时备份

Navicat15在Win10电脑里设置Mysql数据库备份任务_navicat premium 15 自动定时备份mysql-CSDN博客

分表分区

对MySQL 8.0分区表探索总结_mysql8 分区表-CSDN博客

主从复制

 是什么:主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。

好处:企业中的业务通常数据量都比较大,而单台数据库在数据存储、安全性和高并发方面都无法满足实际的需求,所以需要配置多台主从数据服务器,以实现主从复制,增加数据可靠性,读写分离,也减少数据库压力和存储引擎带来的表锁定和行锁定问题。

原理:

  1. Master主库在事务提交时,会把数据变更记录在二进制日志文件Binlog中。
    2.从库读取主库的二进制日志文件Binlog(io线程),写入到从库的中继日志Relay Log。
    3.slave重做中继日志中的事件,将改变反映它自己的数据。(sql线程)

1.准备

(1) 在linux中下载mysql

在Ubuntu 22.04 LTS 上安装 MySQL两种方式:在线方式和离线方式_ubuntu离线安装mysql-CSDN博客

遇到问题:

  • 您好 我打上mysql-u root-p后提示这个ERROR 1698 (28000): Access denied for user 'root'@'localhost'该怎么办呢

  • 把这一步改成 ①sudo mysql ②ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';③exit; 再用新密码进行登录

(2) 关闭linux和windows的防火墙

linux:Sudo ufw disable

windows:控制面板\所有控制面板项\Windows Defender 防火墙 

2.查看二进制日志
show variables like '%log_bin%';


其中,log_bin_index文件存的是所有的二进制日志所在位置
log_bin_basename文件就是二进制日志所在位置

3.主机配置
(1)

修改my.ini文件
[mysqld]下添加
# 主从分离

server-id=1

read-only=0 //可读可写

重启服务器生效。

(2)

登录mysql,创建远程连接的账号,并授予主从复制权限
#创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务

CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';

#为'itcast'@'%'用户分配主从复制权限

GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

flush privileges;

(3)

通过指令,查看二进制日志坐标

show master status;

4.从库配置

(1) 修改配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf

重启MySQL服务器
sudo systemctl restart mysql

(2) 登录mysql,设置主库配置

CHANGE MASTER TO MASTER_HOST='192.168.211.1',MASTER_USER='itcast',MASTER_PASSWORD='Root@123456',MASTER_LOG_FILE='binlog.000014',MASTER_LOG_POS=1917;

5.开启同步操作

start slave;
查看主从同步状态
show slave status;

均为yes,代表环境配置成功。

MySQL主从环境下存储过程,函数,触发器,事件的复制情况_mysql主从复制 从库需要 禁止 触发器,事件,存储过程吗-CSDN博客

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值