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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!