数据库DBA基础

###############################################################


/etc/my.cnf 主配置文件
/var/lib/mysql 数据库目录
/var/log/mysqld.log 错误日志文件

DDL 数据定义语言   create/alter/drop
DML 数据操作语言    insert/update/delete
DCL 数据控制语言    grant/revoke
DTL 数据事物语言     commit/rollback/savepoint

show databases;      //显示已有的库
select  user();      //显示连接用户
use 库名;                          //切换库
select database();   //显示当前所在的库
create database 库名;  //创建新库
show tables;         //显示已有的表
drop database  库名;     //删除库
desc 库名,表名;                 //查看表结构


select * from 库名.表名     //查看表记录
insert into 库名.表名   values(值列表)   //插入表记录
update      库名.表名  set  字段=值;                 //修改表记录
delete from 表名               // 删除表记录

字符类型  : char varchar
数值类型  : int float  double
时间类型  : date  year  time
枚举类型  :  enum  set

###########################################################

alter table  库名.表名  执行动作;

add  添加字段
modify  修改字段类型
change   修改字段名
drop     删除字段
rename   修改表名

键值类型
index  普通索引
unique  唯一索引
fulltext  全文索引
primary key  主键
foreign key  外键

###########################################################

show variables like "secure_file_priv"  //查看搜索路径

数据导入:
load data infile "目录名/文件名"
into table 库名.表名
fields terminated  by "分隔符"
lines  terminated  by "\n"

数据导出:
select * from 库 
into outfile  "目录名/文件名"
fields terminated  by "分隔符"
lines  terminated  by "\n"


distinct 字段名   //去重显示
between 数字 and 数字   // 在..之间

正则表达式
where 字段名  regexp '正则表达式'

聚集函数
avg(字段名) 统计字段平均值
sum(字段名) 统计字段之和
min(字段名) 统计字段最小值
max(字段名) 统计字段最大值
count(字段名) 统计字段值个数

查询排序
SQL查询 order by 字段名 [asc/desc];
asc  升序
desc 降序

查询分组
SQL查询 group by 字段名;

查询过滤
SQL查询 having 条件表达式;

限制查询结果显示行数
SQL查询 limit 数字;  // 显示查询结果前多少条记录
SQL查询    limit 数字1,数字2  //显示指定范围内的查询记录

###########################################################

grant 授权

grant 权限列表 on 库名 to 用户名@"客户端地址"
identified by "密码"
with grant option;  // 赋予授权权限

权限列表
-all     //所有权限
-usage    //无权限
-select,update,insert   //个别权限
-select,update(字段1.字段2)   //指定字段

客户端地址
-%  // 所有主机
-192.168.4.%  // 网段内所有字段
-localhost   //数据库服务器本机


select user()   //显示登录用户名及客户端地址
show grants      //用户显示自身访问权限
show grants for 用户名@"客户端地址"   //管理员查看已有授权用户权限
set password=password("密码")    //授权用户连接后修改连接密码
set password for 用户名@"客户端地址" = password("密码") //管理员重置授权用户连接密码
drop user 用户名@"客户端地址"  //删除授权用户 (必须有管理员权限)


授权库 mysql库 记录授权信息
- user表  记录已有的授权 用户 及权限
- db表   记录已有授权用户对 数据库 的访问权限
- tables_priv 表    记录已有授权用户对 表 的访问权限
- columns_priv 表   记录已有授权用户对 字段 的访问权限


撤销权限
revoke 权限列表 on 库名.表 from 用户名@"客户端地址";

恢复root密码 步骤:
主配置文件 + skip-grant-tables
重启服务
mysql  进入数据库
update mysql.user set authentication_string=password("密码")
where user="root" and host="localhost"
flush privileges;

重置root密码
]# mysqladmin -uroot -p'密码' password"新密码"


数据备份方式
物理备份 
-冷备: cp、tar

逻辑备份
-mysqldump  //备份命令
-mysql    //恢复命令


物理备份: 恢复操作
cp -r /mysql.bak/   /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql


逻辑备份
完全备份:备份所有数据
增量备份:备份上次备份后,所有新产生的数据
差异备份:备份完全备份后,所有新产生的数据

完全备份:mysqldump -uroot -p密码  库名   >  xxx.sql
  库名  -A 所有库  -B多个库
完全恢复:mysql -uroot -p密码   [库名]  <  xxx.sql


增量备份
binlog 日志
启动日志 步骤:
主配置文件 log_bin //启用binlog日志     server_id=100 //指定id值
重启服务

主机名-bin.index 索引文件

show variables like "binlog_format" //查看日志当前记录格式
show master status //查看日志信息
flush logs //刷新日志
system ls /mylog  //查看日志文件
purge master logs to "日志名" //删除日志

##############################################################

你可能感兴趣的:(mysql,Linux)