--with-apxs=/usr/local/apache/bin/apxs # 制作apache的动态模块DSO rpm包 httpd-devel #编译模块 apxs -i -a -c mod_foo.c --enable-so # 让Apache可以支持DSO模式 --enable-mods-shared=most # 告诉编译器将所有标准模块都动态编译为DSO模块 --enable-rewrite # 支持地址重写功能 --enable-module=most # 用most可以将一些不常用的,不在缺省常用模块中的模块编译进来 --enable-mods-shared=all # 意思是动态加载所有模块,如果去掉-shared话,是静态加载所有模块 --enable-expires # 可以添加文件过期的限制,有效减轻服务器压力,缓存在用户端,有效期内不会再次访问服务器,除非按f5刷新,但也导致文件更新不及时 --enable-deflate # 压缩功能,网页可以达到40%的压缩,节省带宽成本,但会对cpu压力有一点提高 --enable-headers # 文件头信息改写,压缩功能需要 --disable-MODULE # 禁用MODULE模块(仅用于基本模块) --enable-MODULE=shared # 将MODULE编译为DSO(可用于所有模块) --enable-mods-shared=MODULE-LIST # 将MODULE-LIST中的所有模块都编译成DSO(可用于所有模块) --enable-modules=MODULE-LIST # 将MODULE-LIST静态连接进核心(可用于所有模块) # 上述 MODULE-LIST 可以是: 1、用引号界定并且用空格分隔的模块名列表 --enable-mods-shared='headers rewrite dav'
} 转发{
2、\大多数模块) --enable-mods-shared=most 3、\所有模块)
#针对非80端口的请求处理 RewriteCond %{SERVER_PORT} !^80$ RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R] RewriteCond %{HTTP_HOST} ^ss.aa.com [NC] RewriteRule ^(.*) http://www.aa.com/so/$1/0/p0? [L,R=301] #RewriteRule 只对?前处理,所以会把?后的都保留下来 #在转发后地址后加?即可取消RewriteRule保留的字符 #R的含义是redirect,即重定向,该请求不会再被apache交给后端处理,而是直接返回给浏览器进行重定向跳转。301是返回的http状态码,具体可以参考http rfc文档,跳转都是3XX。
#L是last,即最后一个rewrite规则,如果请求被此规则命中,将不会继续再向下匹配其他规则。 } } mysql源码安装{ groupadd mysql useradd mysql -g mysql -M -s /bin/false tar zxvf mysql-5.0.22.tar.gz cd mysql-5.0.22 ./configure --prefix=/usr/local/mysql \\ --with-client-ldflags=-all-static \\ --with-mysqld-ldflags=-all-static \\ --with-mysqld-user=mysql \\ --with-extra-charsets=all \\ --with-unix-socket-path=/var/tmp/mysql.sock make && make install # 生成mysql用户数据库和表文件,在安装包中输入 scripts/mysql_install_db --user=mysql vi ~/.bashrc
export PATH=\
# 配置文件,有large,medium,small三个,根据机器性能选择 cp support-files/my-medium.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld chmod 700 /etc/init.d/mysqld cd /usr/local
chmod 750 mysql -R chgrp mysql mysql -R
chown mysql mysql/var -R
cp /usr/local/mysql/libexec/mysqld mysqld.old ln -s /usr/local/mysql/bin/mysql /sbin/mysql
ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc3.d/S15mysql5 ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc0.d/K15mysql5
}
mysql常用命令{ ./mysql/bin/mysqld_safe --user=mysql & # 启动mysql服务
./mysql/bin/mysqladmin -uroot -p -S ./mysql/data/mysql.sock shutdown # 停止
mysql服务 mysqlcheck -uroot -p -S mysql.sock --optimize --databases account # 检查、修复、优化MyISAM表 mysqlbinlog slave-relay-bin.000001 # 查看二进制日志(报错加绝对路径) mysqladmin -h myhost -u root -p create dbname # 创建数据库 flush privileges; # 刷新 show databases; # 显示所有数据库 use dbname; # 打开数据库 show tables; # 显示选中数据库中所有的表 desc tables; # 查看表结构 drop database name; # 删除数据库 drop table name; # 删除表 create database name; # 创建数据库 select 列名称 from 表名称; # 查询 show grants for repl; # 查看用户权限 show processlist; # 查看mysql进程 select user(); # 查看所有用户 show slave status\\G; # 查看主从状态 show variables; # 查看所有参数变量 show table status # 查看表的引擎状态 drop table if exists user # 表存在就删除 create table if not exists user # 表不存在就创建 select host,user,password from user; # 查询用户权限 先use mysql create table ka(ka_id varchar(6),qianshu int); # 创建表 SHOW VARIABLES LIKE 'character_set_%'; # 查看系统的字符集和排序方式的设定 show variables like '%timeout%'; # 查看超时(wait_timeout) delete from user where user=''; # 删除空用户 delete from user where user='sss' and host='localhost' ; # 删除用户 ALTER TABLE mytable ENGINE = MyISAM ; # 改变现有的表使用的存储引擎 SHOW TABLE STATUS from 库名 where Name='表名'; # 查询表引擎 CREATE TABLE innodb (id int, title char(20)) ENGINE = INNODB # 创建表指定存储引擎的类型(MyISAM或INNODB) grant replication slave on *.* to '用户'@'%' identified by '密码'; # 创建主从复制用户 ALTER TABLE player ADD INDEX weekcredit_faction_index (weekcredit, faction); # 添加索引 alter table name add column accountid(列名) int(11) NOT NULL(字段不为空); # 插入字段 update host set monitor_state='Y',hostname='xuesong' where ip='192.168.1.1'; # 更新数据
自增表{ create table oldBoy (id INTEGER PRIMARY KEY AUTO_INCREMENT, name
CHAR(30) NOT NULL, age integer , sex CHAR(15) ); # 创建自增表
insert into oldBoy(name,age,sex) values(%s,%s,%s) # 自增插入数据 }
登录mysql的命令{ # 格式: mysql -h 主机地址 -u 用户名 -p 用户密码 mysql -h110.110.110.110 -P3306 -uroot -p mysql -uroot -p -S /data1/mysql5/data/mysql.sock --default-character-set=GBK } shell执行mysql命令{
-A
mysql -u root -p'123' xuesong < file.sql # 针对指定库执行sql文件中的语句,好处不需要转义特殊符号,一条语句可以换行.不指定库执行时语句中需要先use mysql -u$username -p$passwd -h$dbhost -P$dbport -A -e \ use $dbname; delete from data where date=('$date1');
\ # 执行多条mysql命令
mysql -uroot -p -S mysql.sock -e \db;alter table gift add column accountid
int(11) NOT NULL;flush privileges;\ # 不登陆mysql插入字段 } 备份数据库{ mysqldump -h host -u root -p --default-character-set=utf8 dbname >dbname_backup.sql # 不包括库名,还原需先创建库,在use mysqldump -h host -u root -p --database --default-character-set=utf8 dbname >dbname_backup.sql # 包括库名,还原不需要创建库 /bin/mysqlhotcopy -u root -p # mysqlhotcopy只能备份MyISAM引擎 mysqldump -u root -p -S mysql.sock --default-character-set=utf8 dbname table1 table2 > /data/db.sql # 备份表 mysqldump -uroot -p123 -d database > database.sql # 备份数据库结构 innobackupex --user=root --password=\--defaults-file=/data/mysql5/data/my_3306.cnf --socket=/data/mysql5/data/mysql.sock
--slave-info --stream=tar --tmpdir=/data/dbbackup/temp /data/dbbackup/
2>/data/dbbackup/dbbackup.log | gzip 1>/data/dbbackup/db50.tar.gz # xtrabackup备份需单独安装软件 优点: 速度快,压力小,可直接恢复主从复制 } 还原数据库{ mysql -h host -u root -p dbname < dbname_backup.sql
}
source 路径.sql # 登陆mysql后还原sql文件
赋权限{ # 指定IP: $IP 本机: localhost 所有IP地址: % # 通常指定多条 grant all on zabbix.* to user@\ # 对现有账号赋予权限 grant select on database.* to user@\ # 赋予查询权限(没有用户,直接创建) grant all privileges on database.* to user@\identified by 'passwd'; # 赋予指定IP指定用户所有权限(不允许对当前库给其他用户赋权限) grant all privileges on database.* to user@\grant option; # 赋予本机指定用户所有权限(允许对当前库给其他用户赋权限) grant select, insert, update, delete on database.* to user@'ip'identified by \ # 开放管理操作指令 revoke all on *.* from user@localhost; # 回收权限 } 更改密码{ update user set password=password('passwd') where user='root' mysqladmin -u root password 'xuesong' } mysql忘记密码后重置{ cd /data/mysql5 /data/mysql5/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking & update user set password=password('123123') where user='root'; }