MYSQL数据库的实操与备份

2023-12-22 22:08:29

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

文章来源:https://blog.csdn.net/zbw0323/article/details/135161049
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。