###############################################################
/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 "日志名" //删除日志
##############################################################