binghai03 发表于 2018-9-29 11:30:11

【mysql】mysql增改查删基本命令以及备份操作

实验环境
  虚拟化设备:Esxi6.0
  系统:Redhat7
  数据库:mariaDB #操作与mysql相同
  第18章 使用MariaDB数据库管理系统。
  学会用各种姿势备份MySQL数据库

一、初始化mariaDB服务
  

yum install mariadb mariadb-server -y #在Redhat7中,用yum安装mysql默认安装的就是mariadb  
systemctl start mariadb
  
systemctl enable mariadb
  
mysql_secure_installation #对数据库进行初始化操作,根据提示选择就好了,root密码初始设置为空,直接回车就好了。
  
firewall-cmd --permanent --add -service=mysql
  
firewall-cmd --reload
  

二、数据库的增改查删等基本操作

1、查
  

mysql -u root -p #进入数据库  

SHOW database; #查看数据库  
use mysql; #进入数据表mysql
  
SELECT * FROM mysql #查看mysql表里的信息(加WHERE 可跟限制条件)
  
SELECT name,price FROM mybook; #查看mybook表里name和price两项
  
SELECT * FROM mybook WHERE price>75;
  
DESCRIBE mysql; #描述表单
  

2、增
  

CREATE DATABASE iyunv; #创建数据库iyunv  
CREATE TABLE mybook (name char(15),proce int,pages int); #创建数据包mybook
  
INSERT INTO mybook(name,price,pages) VALUES('iyunv','60','518'); #在数据表mybook添加信息
  

3、改
  

UPDATE mybook SET price=55; #修改mybook里price为55  

  

4、删
  

DELETE FROM mybook; #删除mybook数据表所有数据  
DROP DATABASE iyunv; #删除数据库iyunv
  
DROP TABLE mybook; #删除数据表mybook
  

三、数据库的备份及恢复

1、使用CP进行备份
  ① 准备工作
  

SHOW DATABASES; #查看当前数据库,得到需要备份的数据库名  
USE employees;
  
SELECT COUNT(*) FROM employees; #查看数据库employees的行数,以便恢复时候确认是否恢复完整。
  

  ② 向数据库施加读锁
  

FLUSH TABLES WITH READ LOCK; #向所有表施加读锁  
UNLOCK TABLES; #CP备份完成后,解锁
  

  ③备份数据文件
  

mkdir /backup  
cp -a /var/lib/mysql/* /backup #保留权限的拷贝源数据文件
  
ls /backup
  

  ④模拟数据丢失并恢复
  

rm -rf /var/lib/mysql/* #删除数据库的所有文件  
systemctl restart mariadb
  

SHOW DATABASES; #重启后原数据不存在,mysql自动在/var/lib/mysql/目录下添加了默认文件,所以root可以不用密码进入,并且原来的数据丢失  
rm -rf /var/lib/mysql/* #删除默认添加的文件,不然下一步拷贝文件的时候会出现是否overwritte的询问
  
cp -a /backup/* /var/lib/mysql/ #将备份的数据库文件还原
  
systemctl restart mariadb
  

SHOW DATABASES; #数据库已恢复  
USE employees;
  
SELECT COUNT(*) FROM employees; #查看数据表行数没有变化
  

2、使用mysqldump+复制BINARY LOG备份
  通过mysqldump进行一次完全备份, 再修改表中的数据, 然后再通过binary log进行恢复 二进制日志需要在mysql配置文件中添加 log_bin=on 开启
  ①使用mysqldump备份数据库
  

mysql -u root -p -e 'SHOW MASTER STATUS' #查看当前二进制文件的状态,并记录positon的数字(即mysql-bin)  
mysqldump --all-databases --locak-all-tables > backup.sql #备份数据库到backup.sql文件中
  

#在主备份后创建一个数据库,用于二进制文件恢复实验  
CREATE DATABASE TEST1;
  
SHOW MASTER STATUS; #记下现在的position
  
cp /var/lib/mysql/mysql-bin.000003 /root #备份二进制文件
  
systemctl stop mariadb
  
rm -rf /var/lib/mysql/* #删除所有数据文件,造成数据丢失情况
  
systemctl start mariadb
  

SHOW DATABASES; #查看数据库,发现数据丢失  
SET sql_log_bin=OFF; #暂时关闭二进制日志
  
source backup.sql #恢复数据
  
SET sql_log_bin=ON; #开启二进制日志
  
SHOW DATABASESL #数据库恢复,但是缺少主备份后创建的TEST1
  

mysqlbinlog --start-position=106 --stop-position=191 mysql-bin.000003 | mysql employees #通过二进制日志增量恢复数据  
SHOW DATABASES; #TEST1出现


页: [1]
查看完整版本: 【mysql】mysql增改查删基本命令以及备份操作