陈日志 发布的文章

基于密钥的认证

一台主机为客户端(基于某个用户实现)
1. 生成一对密钥
ssh-keygen -t {rsa|dsa}

扩展 —— ssh-keygen基本用法

  • -t type : 指定加密算法
  • -f filename : 指定密钥文件保存路径
  • -N new_passphrase:指定密钥密码

- 阅读剩余部分 -

hadoop用户可以以root的权限执行useradd, usermod命令
hadoop ALL=(root) NOPASSWD: /usr/sbin/useradd, PASSWD: /usr/sbin/usermod

别名(可以简单理解为组)

定义一个用户别名,组内包括hadoop用户,hadoop组,useradmin组
User_Alias USERADMIN = hadoop, %hadoop, %useradmin

定义一个命令别名,组内包括useradd, usermod, userdel, passwd命令,但是不能执行passwd root
Cmnd_Alias USERADMINCMND = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel, /usr/bin/passwd [A-z]*, ! /usr/bin/passwd root

USERADMIN的用户可以以root命令执行USERADMINCMND的命令
USERADMIN ALL=(root) USERADMINCMND

一、MBR损坏
使用系统安装光盘引导进入紧急救援模式:boot: linux rescue
进入grub命令行模式
确认引导分区,使用find (hd0,0)/+TAB键的方式来确认

root (hd0,0)
setup (hd0)

二、grub配置文件丢失
配置文件丢失,将会引导至grub命令行模式
grub> root (hd0,0)
grub> kernel /vmlinuz-xxxx ro root=/dev/v0l0/root rhgb quiet
grub> initrd /initrd-xxxx
grub> boot

此时可以正常引导系统,重建/boot/grub/grub.conf即可

默认情况下,mysql5.1/5.5的复制功能是异步的,异步复制可以提供最佳的性能,主库把binlog日志发送给从库,这一动作就结束了,并不会验证是否接受完毕,但这同时也带来了很高的风险,这就意味着当主服务器发送故障时,有可能从机没有接受到主机发过来的binlog日志,会造成主服务器/从服务器的数据不一致,甚至在恢复时会造成数据丢失。

为了解决这个问题,mysql5.5引入了一种半同步复制模式,该模式可以确保从服务器接受完主服务器发送的binlog日志并写入自己的中继日志relay log里,然后会给主服务器一个反馈,告诉对方已经接收完毕,这时主库线程才返回当前session告知操作完成。当出现超市情况时,源主服务器会暂时切换到异步复制模式,知道至少有一台设置为半同步模式的从服务器及时收到信息为止。

mysql半同步复制

- 阅读剩余部分 -

开启binlog,且binlog-format=row

新建一个表

[sql]CREATE TABLE student (id int(10) unsigned NOT NULL AUTO_INCREMENT,name varchar(10) NOT NULL DEFAULT '', class int(10), score varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (id));[/sql]

插入测试数据:
insert into student(name,class,score) values('a',1,56),('b',1,61),('c',2,78),('d',2,45),('e',3,76),('f',3,89),('g',4,43),('h',4,90);
模拟update忘加where条件
update student set score='failure';
mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS bin-log.000039 | grep -B 15 'failure'

- 阅读剩余部分 -