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=13.更新表中数据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-filesmysql> 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 dbnamemysql> source /opt/backup/table.sql;#更改数据库导出安全目录mysql> show variables like "secure%";+------------------+-----------------------+| Variable_name | Value |+------------------+-----------------------+| secure_auth | ON || secure_file_priv | /var/lib/mysql-files/ |+------------------+-----------------------+#修改方法mkdir /datachown mysql.mysql /datavim /etc/my.cnfsecure_file_priv=/data/#重启数据库systemctl restart msyqld根据二进制日志文件恢复数据1、开启binlog日志功能vim /etc/my.cnf 添加以下内容server-id = 1log-bin = /data/mysql-bin#重启数据库systemctl restart msyqld#查看二进制日志:mysqlbinlog /data/mysql-bin.00001 --base64-output=decode-rows -vvBEGINposition 123……COMMITposition 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