那些年的记忆

习惯改变行为,行为决定命运。

使用Logrotate分割Nginx日志

Logrotate简介

logrotate 是Linux系统日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。

使用变量做表名创建存储过程

使用变量做表名创建存储过程

设置分隔符

DELIMITER $$

创建存储过程

CREATE DEFINER=`root`@`%` PROCEDURE `create_table`(IN `$cell_ident` int)
BEGIN
SET @cell_sqlcmd=CONCAT('CREATE TABLE IF NOT EXISTS CellBase.tab_',$cell_ident,' LIKE CellBase.meta;');
SET @serial_sqlcmd=CONCAT('CREATE TABLE IF NOT EXISTS SerialBase.tab_',$cell_ident,' LIKE SerialBase.meta;');
SET @album_sqlcmd=CONCAT('CREATE TABLE IF NOT EXISTS AlbumBase.tab_',$cell_ident,' LIKE AlbumBase.meta;');
PREPARE create_cell FROM @cell_sqlcmd;
PREPARE create_serial FROM @serial_sqlcmd;
PREPARE create_album FROM @album_sqlcmd;
EXECUTE create_cell;
EXECUTE create_serial;
EXECUTE create_album;
DEALLOCATE PREPARE create_cell;
DEALLOCATE PREPARE create_serial;
DEALLOCATE PREPARE create_album;
END$$


MySQL 用户及权限

1. 与用户相关的授权表:

user

    每一行主是一个用户账号(用户名、主机名和加密后的密码)以及用户的全部权限

db

    每一行包含了某个用户在数据库级权限

host

    每一行包含了用户从指定主机登录过来时它在一个数据库里的所有权限

tables_priv

    每一行包含了指定用户和表的表级别上的权限,也包括了视图的权限在内

columns_priv

    每一行包含了指定用户和列的列级别上的权限

procs_priv(5.0以上版本引入)

    每一行包含了指定用户和存储程序(存储过程和函数)的权限

定义Nginx日志格式

与nginx日志相关的有两条命令:log_format和access_log;前者用来设置日志格式,后者用来指定日志文件的存放路径、格式和缓存大小。

1. log_format 格式

log_format name(格式名字不能重复) 格式样式

例如:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_s ent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';

MySQL5.5 REPLICATION主从同步(Debian 7)

1. 主服务器配置

master

vi /etc/mysql/my.cnf            //修改my.cnf配置文件

server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log//BinLog路径
expire_logs_days        = 10
max_binlog_size         = 100M
binlog_do_db            = StyleBase                //记入log的库(需要同步的库)
binlog_do_db            = UserBase
binlog_ignore_db        = mysql                    //不记入log的库