MYSQL数据库的实操与备份

目录

MySQL数据库的实操

MySQL数据库的操作

MySQL数据库表的操作

MySQL数据库表数据的操作

数据库备份

逻辑备份

物理备份


MySQL数据库的实操

MySQL数据库的操作

 数据库授权语句
 grant all on *.* to '用户'@'%' identified by'密码'
 刷新授权表
 flush privileges
 1.查看所有数据库
 show databases;
 2.切换数据库
 use  库名;
 3.创建库并指定字符集
 create database 库名 default charset ‘utf8’;
 4.查看当前所在数据库
 select database();
 5.查看当前登录数据库的用户
 select user();
 6.查看创建的库信息
 show create database 库名;
 7.删除数据库
 drop database 库名;

MySQL数据库表的操作

 1.查看当前库的所有表
 show tables;
 2.创建表并指定字段
 create table 表名 (字段1 类型 约束条件,字段2 类型 约束条件)
 例如:创建school表并指定字段(id,name,sex,引擎为INNODB)
 create table school (`id` int primary key auto_incremend comment'主键,自增',`name varchar(20) not null,sex enum('男','女') default '男')ENGINE='INNODB'
 3.查看表结构
 desc 表名;
 4.查看表信息
 select * from 表名
 5.修改表名
 rename table 旧表名 to 新表名;
 alter table 旧表名 rename  新表名;
 6.在表中增加字段
 alter table 表名 add 字段 类型 约束条件;
 7.修改字段名及约束条件,字段类型
 alter table 表名 change 旧字段名  新字段名 类型  约束条件
 8.修改字段类型及约束条件
 alter table modify 字段名 类型 约束条件
 9.从表中删除字段
 alter table 表名 drop 字段名
 10.删除表
 drop table 表名;

MySQL数据库表数据的操作

 1.向表中插入数据
 insert into 表名 values (对应字段的取值)
 例如:insert into school (1,teacher,男)
 insert into 表名 (字段) values (对应字段的取值)
 例如:insert into school (id,name,sex) values (2,teacher2,女)
 2.删除表中数据
 delete from  表名    删除表中所有数据
 delete from  表名 where id=1
 3.更新表中数据
 update 表名 set name=teacher3 where id=2;
 4.复制表结构
 create table  新表名 (select * from 旧表名 where 1=2)
 5.复制表结构及其数据
 create table 新表名 (select * from  旧表名 where id=5)     复制id=5的那行

数据库备份

逻辑备份

 #语法
 mysqldump -u用户名 -p密码 -h主机地址 -P端口 -S套接字文件 
 #全库备份
 mysqldump -p密码 [-A|--all-databases]  >alldb.sql
 #全库备份打包
 mysqldump -p密码 -A | gzip >  ppp.tar.gz
 #库级备份
 mysqldump -p密码 [-B|--databases] dbname1 dbname2 >dbname.sql 
 #表级备份
 mysqldump -p密码 dbname tablename1 tablename2 >db_t1_t2.sql
 #备份表结构
 mysqldump -p密码 dbname tablename -d > tablename_jiegou.sql
 #导出数据
 查看安全路径:show variables like "secure%"; /var/lib/mysql-files
 mysql> select * from mysql.user into outfile '/var/lib/mysql-files/user.xlsx'
 #导入数据
 mysql> load data infile '/var/lib/mysql-files/user.xlsx' into table user;
 #恢复数据库
 第一种方法:
     mysql -p密码   < db.sql
 第二种方法:
     cat db.sql | mysql -p密码
 第三种方法:
     mysql>source /opt/backup/db.sql;
 #恢复数据表
 第一种方法:
     mysql -p密码 dbname  < table.sql
 第二种方法:
     cat db.sql | mysql -p密码 dbname
 第三种方法:
     mysql> use dbname
     mysql> source /opt/backup/table.sql;
 #更改数据库导出安全目录
 mysql> show variables like "secure%";
 +------------------+-----------------------+
 | Variable_name    | Value                 |
 +------------------+-----------------------+
 | secure_auth      | ON                    |
 | secure_file_priv | /var/lib/mysql-files/ |
 +------------------+-----------------------+
 #修改方法
 mkdir /data
 chown mysql.mysql /data
 vim /etc/my.cnf
 secure_file_priv=/data/
 #重启数据库
 systemctl restart msyqld根据二进制日志文件恢复数据
 1、开启binlog日志功能
 vim /etc/my.cnf 添加以下内容
 server-id = 1
 log-bin = /data/mysql-bin
 #重启数据库
 systemctl restart msyqld
 #查看二进制日志:
 mysqlbinlog /data/mysql-bin.00001 --base64-output=decode-rows -vv
 BEGIN
     position 123
     ……
 COMMIT
     position 789
 #恢复:
 mysqlbinlog --start-position 123 --stop-position 789 /data/mysql-bin.00001 | mysql -p密码 school
 ​

物理备份

 #安装软件
 #全量备份
 [root@mysql-server ~]#innobackupex --user --password /opt/full
 #增量备份
 [root@mysql-server ~]#innobackupex --user --password --incremental /opt/intr --incremental-basedir=/opt/full/datetime
 #恢复:
     [root@mysql-server ~]#systemctl stop mysqld
     [root@mysql-server ~]#rm -rf /var/lib/mysql/*
     
    # 重演
 [root@mysql-server ~]#innobackupex --user --password --apply-log --redo-only /opt/full/datetime
 [root@mysql-server ~]#innobackupex --user --password --apply-log --redo-only /opt/full/datetime --incremental-dir=/opt/intr/datetime
     #回滚
 [root@mysql-server ~]#innobackupex --copy-back 
 #修改权限
 [root@mysql-server ~]#chown -R mysql.mysql /var/lib/mysql

启动

systemctl start mysqld

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值