mysql
查看库列表 >show databases;
使用库 >use mysql;
查看库中的数据表信息 >show tables;
显示数据表结构 >describle mysql.user;
查看用户 >describe user;
Create
创建新库名字为auth >create database auth;
使用这个数据库 >use auth;
创建表 >create table users(user_name char(20),user_passwd char(30) default",primary key(user_name));
Drop
>drop table auth.users; 删除auth库的users表
>drop database auth; 删除auth数据库
Insert
格式:insert into 表明(字段1,字段2……)values(字段1的值,字段2的值)
示例:use auth;
desc users;
>inseret into users(user_name,user_passwd)values('zhangsan',password('123123'));
>insert into users values('lisi',password('123456'));
>select * from users;
Update
>update mysql.user set password=password('123123')where user='root';
>flush privileges;
delete
>delete from auth.users where user_name='lisi';
>select * from auth.users;
Select
>select * from auth.users;
>select user_name from auth.users;
>select * from auth.users where user_name='zhangsan'
Grant
>grant all on *.* to ‘root’@’192.168.1.1’ IDENTIFIED BY ‘666666’;
>GRANT select ON impoyee_salary.* TO ‘amber’@’localhost’ IDENTIDIED BY ‘123456’;
>flush privileges;
查看用户权限
>show grants;
>show grants for ‘amber’@’192.168.1.108’;
撤销用户权限
>revoke select on imployee_salary.* from ‘amber’@’localhost’;
备份操作
格式:mysqldump -u 用户名-p密码[数据库名][表名] >/备份路径/备份文件名
>musqldump -u root -p mysql user > mysql-user.sql
创建唯一索引
>create index <索引的名字> on <表名> 索引名字格式 _index
>show index from 表名 \G或者 show keys from 表名 \G
删除索引
>drop index 索引名 on 表名
事务性特点
原子性
一致性
隔离性
持久性
begin 开始 commit 提交 rollback 回滚
>use auth; #使用库
>begin; #事物开始
>insert into users values();
>commit; #事物结束并提交
>select * from users;
回滚(从begin开始的所有命令都被撤销)
>begin;
>update users set user_passwd=pwssword(‘’)where user_name=’lisi’;
>rollback;
>select * from users;
自动提交与非自动提交
>set autocommit = 0; #=0为禁止
>use auth;
>insert into users values(内容)
>commit; #提交前面的sql语句
>set autocommit = 1;
>use auth;
>insert into users values (内容);
>select * from users;
mysql 数据账号管理
>select user,host,password from mysql.user; 查看
>create user ’admin’@’%’ identified by ‘123123’; 创建用户
>drop user ‘admin’@’%’; 删除用户
mysql用户授权
>grant all on *.* to ‘amber’@’%’ identified by ‘123123’;
>grant select on mysql.user to ‘amber’@’192.168.1.%’ identified by ‘123123’;
>show grants; 查看授权所有用户
>show grants for ‘amber’@’%’; 查看授权单一用户
撤销权限
>revoke drop,create on *.* from ‘amber’@’%’; 撤销 drop,create权限
>revoke all on *.* from ‘amber’@’%’; 撤销所有权限
mysql日志管理
日志路径:mysql/data/mysql_error.log mysql/data/mysql_general.log
二进制日志 用来恢复数据库 慢查询日志 用来查找执行时间长的查询
在/etc/my.cnf下添加【mysqld】/nlong_query_time=5/nlog-slow-query=mysql_slow.log
mysql备份
对所有库进行备份
mysqldump -uroot -p123123 --opt --all-databases >/backup/mysql_all.$(date +%Y%m%d).sql
--opt 加快备份速度
对多个库进行备份
mysqldump -uroot -p123123 --databases mysql auth >/backup/mysql+auth.$(date +%Y%m%d).sql
对表进行备份
mysqldump -uroot -p123123 auth user >/backup/auth_user-$(date +%Y%m%d).sql
备份恢复
登录mysql数据库
>source /backup/mysql_all.2018.4.1sql;
不登录备份恢复
mysql -uroot -p123123 -e ‘drop database auth;’
mysql -uroot -p123123 < /backup/mysql_all.2018.4.1sql;
增量备份
mysqladmin -uroot -p 123123 flush-logs #日志回滚
增量恢复
mysqlbinlog --no-defaults /m ysql_bak/mysql-bin.00000x | mysql -uroot -p123123
基于时间点的恢复
先查看二进制日志
mysqlbinlog --no-defaults /mysql_bak/mysql-bin.0000006 #里面有时间相关记录
恢复
mysqlbinlog --no-defaults --start-datetime=’2016-05-03 15:15:15’ /mysql_bak/mysql-bin.0000006|mysql -uroot -p123123