13.4 mysql用户管理
场景,为了安全,新建的站点,创建新的用户,或者给予使用已有账户,给予权限
MySQL创建用户以及授权
grant all on *.* to 'user1' identified by 'passwd';
grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';
grant 授权
all (查看,创建,删除等等)
'user1'@'127.0.0.1' 指定用户@指定来源IP (指定用户可以写%,表示所有的IP)如果指定了来源IP,那么只能通过来源IP登录
. 所有库,所有表
命令输错,直接输入“ ; ”分号退出
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';
grant all on db1.* to 'user3'@'%' identified by 'passwd';
查看所有的授权
show grants; //默认用root
show grants for user2@192.168.133.1;
13.5 常用sql语句
查看表的行数
select count(*) from mysql.user; //库和标有个 .分割
查看所有的内容
select * from mysql.db;
查看db库的所有内容
select db from mysql.db;
查看表,用户
select db,user from mysql.db;
模糊查询
select * from mysql.db where host like '192.168.%';
插入1, 'abc'到db1.t1表
insert into db1.t1 values (1, 'abc');
更改db1.t1 的字符串为name 的数据 和 字符串为id 的数据
update db1.t1 set name='aaa' where id=1;
清空表数据
truncate table db1.t1;
drop 会把表的框架也丢掉
drop table db1.t1;
丢掉表
drop database db1;
myisam引擎的库的好处是,能自动去统计行数
尽量少用 * 这样操作,如果是大表会很耗时
13.6 mysql数据库备份恢复
备份库
mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
恢复库 //恢复是,必须保证目录一致
mysql -uroot -p123456 mysql < /tmp/mysql.sql
备份表
mysqldump -uroot -p123456 mysql user > /tmp/user.sql
恢复表
mysql -uroot -p123456 mysql < /tmp/user.sql
备份所有库
mysqldump -uroot -p -A >/tmp/123.sql
只备份表结构
mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
myisam 常用于比较小的库进行备份,大数据的备份时间会很长
答疑:xtrabackup备份innodb 引擎的数据库
xtrabackup 只能用于备份 innodb 引擎的数据库 ,但也想备份myisam引擎的 需要通过脚本perl
假设: 数据库已经运行
ls/ data/mysql/ 查看MySQL下有多少个数据
使用
xtrabackup 会把磁盘的数据块备份一份
这个工具用perl写的
安装一个yum源
rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
安装" percona-xtrabackup" 包
使用命令备份
innobackupex
备份前需要创建一个用户,在mysql里面创建,并授权备份权限
grant RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bakuser'@localhost identified by 'aming-linux';
创建完需有一个刷权限的操作
flush privileges;
创建备份的目录
mkdir /data/backup
开始备份
innobackupex --defaults-file=/etc/my.cnf --user=bakuser --password='aming-linux' -S /tmp/mysql.sock /data/backup
指定默认的配置文件 指定用户 指定密码 指定sock 指定备份的目录
每次备份都会生成一个目录,目录大小和库文件大小差不多
恢复数据
==首先停掉mysql服务==
清空mysql 目录下原有数据
初始化
innobackuupex --user-memory=512M --apply-log [备份的时间目录]
指定恢复数据的内存 指定恢复日志
指定恢复数据的内存,有助于对库的备份减少时间,但前提需要考虑内存情况
例:
innobackupex --use-memory=512M --apply-log 2017-08-22_20-44-37
恢复
nnobackupex --defaults-file=/etc/my.cnf --copy-back .[备份的时间目录].
指定默认的配置文件 指定恢复
例:
innobackupex --defaults-file=/etc/my.cnf --copy-back ./2017-08-22_20-44-37/
恢复日志就是backup下的备份的时间的目录
mysql 真正存储的数据 是ibdatal
备份数据的时候,会锁表