yum install vsftpd* -y![]() |
rpm -ql vsftpd|more systemctl restart vsftpd.service ps -ef |grep vsftpd ![]() |
anonymous_enable=YES 开启匿名用户访问; local_enable=YES 启用当地系统用户访问; write_enable=YES 当地系统用户写入权限; local_umask=022 当地用户创建文件及目录默认权限掩码; dirmessage_enable=YES 打印目录表现信息,通常用于用户第一次访问目录时,信息提示; xferlog_enable=YES 启用上传/下载日志记录; connect_from_port_20=YES FTP利用20端口进行数据传输; xferlog_std_format=YES 日志文件将根据xferlog的标准格式写入; listen=NO Vsftpd不以独立的服务启动,通过Xinetd服务管理,建议改成YES; listen_ipv6=YES 启用IPV6监听; pam_service_name=vsftpd 登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证; userlist_enable=YES vsftpd.user_list和ftpusers配置文件里用户克制访问FTP; tcp_wrappers=YES 设置vsftpd与tcp wrapper团结进行主机的访问控制,Vsftpd服务器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定哀求连接的主机,是否允许访问该FTP服务器。 |
ftp://192.168.111.131/![]() |
pasv_enable=YES pasv_min_port=60000 pasv_max_port=60100 |
anon_upload_enable=YES 允许匿名用户上传文件; anon_mkdir_write_enable=YES 允许匿名用户创建目录; anon_other_write_enable=YES 允许匿名用户其他写入权限。 |
anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES |
chown -R ftp pub/ chmod o+w pub/ |
useradd jfedu1 useradd jfedu2 echo 123456|passwd --stdin jfedu1 echo 123456|passwd --stdin jfedu2 |
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES |
yum install pam* libdb-utils libdb* --skip-broken -y |
jfedu001 123456 jfedu002 123456 |
db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db chmod 700 /etc/vsftpd/vsftpd_login.db |
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login account required pam_userdb.so db=/etc/vsftpd/vsftpd_login |
useradd -s /sbin/nologin ftpuser |
#global config Vsftpd 2017 anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES userlist_enable=YES tcp_wrappers=YES #config virtual user FTP pam_service_name=vsftpd guest_enable=YES guest_username=ftpuser user_config_dir=/etc/vsftpd/vsftpd_user_conf virtual_use_local_privs=YES |
#config virtual user FTP pam_service_name=vsftpd 捏造用户启用pam认证; guest_enable=YES 启用捏造用户; guest_username=ftpuser 映射捏造用户至系统用户ftpuser; user_config_dir=/etc/vsftpd/vsftpd_user_conf 设置捏造用户配置文件所在的目录; virtual_use_local_privs=YES 捏造用户利用与当地用户类似的权限。 |
mkdir -p /etc/vsftpd/vsftpd_user_conf/ |
local_root=/home/ftpuser/jfedu001 write_enable=YES anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES |
local_root=/home/ftpuser/jfedu002 write_enable=YES anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES |
local_root=/home/ftpuser/jfedu002 jfedu002捏造用户配置文件路径; write_enable=YES 允许登陆用户有写权限; anon_world_readable_only=YES 允许匿名用户下载,然后读取文件; anon_upload_enable=YES 允许匿名用户上传文件权限,只有在write_enable=YES时该参数才生效; anon_mkdir_write_enable=YES 允许匿名用户创建目录,只有在write_enable=YES时该参数才生效; anon_other_write_enable=YES 允许匿名用户其他权限,比方删除、重命名等。 |
mkdir -p /home/ftpuser/{jfedu001,jfedu002} ;chown -R ftpuser:ftpuser /home/ftpuser |
http://mirrors.hust.edu.cn/apache/httpd/httpd-2.2.32.tar.bz2 |
tar -xjvf httpd-2.2.32.tar.bz2 tar工具解压httpd包; cd httpd-2.2.32/ 进入解压后目录; yum install apr apr-devel apr-util apr-util-devel -y 安装APR相关优化模块; ./configure --prefix=/usr/local/apache2/ --enable-rewrite --enable-so 预编译Apache,启用rewrite规则、启用动态加载库; make 编译 make install 安装 |
/usr/local/apache2/bin/apachectl start setenforce 0 systemctl stop firewalld.service |
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin support@jfedu.net DocumentRoot "/usr/local/apache2/htdocs/jf1" ServerName www.jf1.com ErrorLog "logs/www.jf1.com_error_log" CustomLog "logs/www.jf1.com_access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin support@jfedu.net DocumentRoot "/usr/local/apache2/htdocs/jf2" ServerName www.jf2.com ErrorLog "logs/www.jf2.com_error_log" CustomLog "logs/www.jf2.com_access_log" common </VirtualHost> |
NameVirtualHost *:80 开启捏造主机,并且监听当地所有网卡接口的80端口; <VirtualHost *:80> 捏造主机配置起始; ServerAdmin support@jfedu.net 管理员邮箱; DocumentRoot "/usr/local/apache2/htdocs/jf1" 该捏造主机发布目录; ServerName www.jf1.com 捏造主机完整域名; ErrorLog "logs/www.jf1.com_error_log" 错误日志路径及文件名; CustomLog "logs/www.jf1.com_access_log" common 访问日志路径及文件名; </VirtualHost> 捏造主机配置结束。 |
mkdir -p /usr/local/apache2/htdocs/{jf1,jf2}/ /usr/local/apache2/bin/apachectl restart echo "<h1> www.jf1.com Pages</h1>" >/usr/local/apache2/htdocs/jf1/index.html echo "<h1> www.jf2.com Pages</h1>" >/usr/local/apache2/htdocs/jf2/index.html |
192.168.111.131 www.jf1.com 192.168.111.131 www.jf2.com ![]() |
/usr/lib64/httpd/modules/ Apache模块存放路径; /var/www/html/ YUM安装Apache网站发布目录; /var/www/error/ 服务器设置错误信息,欣赏器表现; var/www/icons/ Apache小图标文件存放目录; var/www/cgi-bin/ 可实验的CGI步伐存放目录。 /var/log/httpd/ Apache日志目录; /usr/sbin/apachectl Apache启动脚本; /usr/sbin/httpd Apache二进制实验文件; /usr/bin/htpasswd 设置Apache目录暗码访问; /usr/local/apache2/bin Apache下令目录; /usr/local/apache2/build Apache构建编译目录; /usr/local/apache2/htdocs/ 源码安装Apache网站发布目录; /usr/local/apache2/cgi-bin 可实验的CGI步伐存放目录; /usr/local/apache2/include Apache引用配置文件目录; /usr/local/apache2/logs Apache日志目录; /usr/local/apache2/man Apache帮助文档目录; /usr/local/apache2/manual Apache手册; /usr/local/apache2/modules Apache模块路径。 |
ServerTokens OS 表现服务器的版本和操作系统内核版本; ServerRoot "/usr/local/apache2/" Apache主配置目录; PidFile run/httpd.pid PidFile进程文件; Timeout 60 不论接收或发送,当连续连接等待凌驾60秒则该次连接就中断; KeepAlive Off 关闭连续性的连接; MaxKeepAliveRequests 100 当KeepAlive设置为On的时候,该数值可以决定此次连接能够传输的最大传输数量; KeepAliveTimeout 65 当KeepAlive设置为On的时候,该连接在末了一次传输后等待延迟的秒数; <IfModule prefork.c> Prefork MPM引擎配置段; StartServers 8 默认启动Apache工作进程数; MinSpareServers 5 最小空闲进程数; MaxSpareServers 20 最大空闲进程数; ServerLimit 4096 Apache服务器最多进程数; MaxClients 4096 每秒支持的最大客户端并发; MaxRequestsPerChild 4000 每个进程能处理的最大哀求数; </IfModule> <IfModule worker.c> Worker MPM引擎配置段; StartServers 8 默认启动Apache工作进程数; MaxClients 4000 每秒支持的最大客户端并发; MinSpareThreads 25 最小空闲线程数; MaxSpareThreads 75 最小空闲线程数; ThreadsPerChild 75 每个进程启动的线程数; MaxRequestsPerChild 0 每个进程能处理的最大哀求数,0表现无穷定; </IfModule> LoadModule mod_version.so 静态加载apache相关模块; ServerAdmin support@jfedu.net 管理员邮箱,网站异常,错误信息会发生至该邮箱; DocumentRoot "/usr/local/apache2/htdocs/" Apache网站默认发布目录; <Directory "/data/webapps/www1"> 设置/data/webapps/www1目录权限; AllowOverride All Options -Indexes FollowSymLinks Order allow,deny Allow from all </Directory> AllowOverride 设置为None时,目录中.htaccess 文件将被完全忽略,当指令设置为All时,.htaccess文件生效; Options -Indexes FollowSymLinks 克制欣赏目录,去掉”-“,表现欣赏目录,常用于下载站点; Order allow,deny 默认环境下克制所有客户机访问; Order deny,allow 默认环境下允许所有客户机访问; Allow from all 允许所有客户机访问。 |
RewriteEngine on |
R[=code](force redirect) 强制外部重定向; G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码; P(force proxy) 强制利用代理转发; L(last rule) 匹配当前规则为末了一条匹配规则,停止匹配后续规则; N(next round) 重新从第一条规则开始匹配; C(chained with next rule) 与下一条规则关联; T=MIME-type(force MIME type) 强制MIME范例; NC(no case) 不区分大小写。 |
. 匹配任何单字符; [word] 匹配字符串:word; [^word] 不匹配字符串:word; jfedu|jfteach 可选择的字符串:jfedu|jfteach; ? 匹配0到1个字符; * 匹配0到多个字符; + 匹配1到多个字符; ^ 字符串开始标志; $ 字符串结束标志; \n 转义符标志。 |
HTTP headers:HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_HOST, HTTP_ACCEPT; connection & request: REMOTE_ADDR, QUERY_STRING; server internals: DOCUMENT_ROOT, SERVER_PORT, SERVER_PROTOCOL; system stuff: TIME_YEAR, TIME_MON, TIME_DAY。 详解如下: HTTP_USER_AGENT 用户利用的代理,比方欣赏器; HTTP_REFERER 告知服务器,从哪个页面来访问的; HTTP_COOKIE 客户端缓存,紧张用于存储用户名和暗码等信息; HTTP_HOST 匹配服务器ServerName域名; HTTP_ACCEPT 客户端的欣赏器支持的MIME范例; REMOTE_ADDR 客户端的IP地址 QUERY_STRING URL中访问的字符串; DOCUMENT_ROOT 服务器发布目录; SERVER_PORT 服务器端口; SERVER_PROTOCOL 服务器端协议; TIME_YEAR 年; TIME_MON 月; TIME_DAY 日; |
RewriteEngine on 启用rewrite引擎; RewriteCond %{HTTP_HOST} ^jfedu.net [NC] 匹配以jfedu.net开头的域名,NC忽略大小写; RewriteRule ^/(.*)$ http://www.jfedu.net/$1 [L] (.*)表现任意字符串,$1表现引用(.*)的中任意内容。 |
RewriteEngine on RewriteCond %{HTTP_HOST} www.jf1.com [NC,OR] RewriteCond %{HTTP_HOST} www.jf2.com [NC,OR] RewriteCond %{HTTP_HOST} ^jfedu.net [NC] RewriteRule ^/(.*)$ http://www.jfedu.net/$1 [L] |
RewriteEngine on RewriteRule ^/$ http://www.jfedu.net/newindex/ [L,R=301] |
RewriteEngine on RewriteCond %{QUERY_STRING} ^tid=(.+)$ [NC] RewriteRule ^/forum\.php$ /jfedu/thread-new-%1.html? [R=301,L] |
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.jfedu.net [NC] RewriteRule ^/$ /newindex/ [L] |
RewriteEngine on RewriteCond %{QUERY_STRING} ^tid=(.+)$ [NC] RewriteRule ^/forum\.php$ /jfedu/thread-new-%1.html? [R=301,L] |
RewriteEngine on rewriteRule ^/(.+)/(\d+)$ /$1?id=$2 [L,R=301] |
RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ^iPhone [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Android [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^WAP [NC] RewriteRule ^/$ http://m.jfedu.net/index.html [L,R=301] RewriteRule ^/(.*)/$ http://m.jfedu.net/$1 [L,R=301] |
RewriteEngine on RewriteRule ^/([0-9]+)/jfedu/(.+)$ /index.php?tid/$1/items=$2 [L,R=301] |
引擎特性 | Myisam | BDB | Memory | InnoDB | Archive |
批量插入的速度 | 高 | 高 | 高 | 中 | 非常高 |
集群索引 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 |
数据缓存 | 不支持 | 不支持 | 支持 | 支持 | 不支持 |
索引缓存 | 支持 | 不支持 | 支持 | 支持 | 不支持 |
数据可压缩 | 支持 | 不支持 | 不支持 | 不支持 | 支持 |
硬盘空间利用 | 低 | 低 | NULL | 高 | 非常低 |
内存利用 | 低 | 低 | 中等 | 高 | 低 |
外键支持 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 |
存储限定 | 没有 | 没有 | 有 | 64TB | 没有 |
事务安全 | 不支持 | 支持 | 不支持 | 支持 | 不支持 |
锁机制 | 表锁 | 页锁 | 表锁 | 行锁 | 行锁 |
B树索引 | 支持 | 支持 | 支持 | 支持 | 不支持 |
哈希索引 | 不支持 | 不支持 | 支持 | 支持 | 不支持 |
全文索引 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
yum install mysql-server mysql-devel mysql-libs -y CentOS6.x YUM安装 yum install mariadb-server mariadb mariadb-libs -y CentOS7.x YUM安装 |
wget http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz yum install cmake ncurses-devel ncurses -y cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/ \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DMYSQL_DATADIR=/data/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 \ -DWITH_XTRADB_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EXTRA_CHARSETS=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DEXTRA_CHARSETS=all \ -DWITH_BIG_TABLES=1 \ -DWITH_DEBUG=0 make make install |
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55 Cmake预编译;-DMYSQL_UNIX_ADDR=/tmp/mysql.sock MYSQL Socket通信文件位置; -DMYSQL_DATADIR=/data/mysql MYSQL数据存放路径; -DSYSCONFDIR=/etc 配置文件路径; -DMYSQL_USER=mysql MYSQL运行用户; -DMYSQL_TCP_PORT=3306 MYSQL监听端口; -DWITH_XTRADB_STORAGE_ENGINE=1 开启xtradb引擎支持; -DWITH_INNOBASE_STORAGE_ENGINE=1 开启innodb引擎支持; -DWITH_PARTITION_STORAGE_ENGINE=1 开启partition引擎支持; -DWITH_BLACKHOLE_STORAGE_ENGINE=1 开启blackhole引擎支持; -DWITH_MYISAM_STORAGE_ENGINE=1 开启MyISAM引擎支持; -DWITH_READLINE=1 启用快捷键功能; -DENABLED_LOCAL_INFILE=1 允许从当地导入数据; -DWITH_EXTRA_CHARSETS=1 支持额外的字符集; -DDEFAULT_CHARSET=utf8 默认字符集UTF-8; -DDEFAULT_COLLATION=utf8_general_ci 检验字符; -DEXTRA_CHARSETS=all 安装所有扩展字符集; -DWITH_BIG_TABLES=1 将临时表存储在磁盘上; -DWITH_DEBUG=0 克制调试模式支持; make 编译; make install 安装。 |
cd /usr/local/mysql55/ \cp support-files/my-large.cnf /etc/my.cnf \cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 35 mysqld on mkdir -p /data/mysql useradd mysql /usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/ ln -s /usr/local/mysql55/bin/* /usr/bin/ service mysqld restart ![]() |
cd /usr/local/mysql55 mkdir –p /data/mysql useradd mysql /usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/ ln -s /usr/local/mysql55/bin/* /usr/bin/ /usr/local/mysql55/bin/mysqld_safe --user=mysql & |
show databases; 查看所有的数据库; create database jfedu; 创建名为jfedu数据库; use jfedu; 进入jfedu数据库; show tables; 查看数据库里有多少张表; create table t1 (id varchar(20),name varchar(20)); 创建名为t1表,并创建两个字段,id、name,varchar表现设置数据长度,用字符来界说长度单位,此中1汉字=2字符=2Bytes; insert into t1 values ("1","jfedu"); 向表中插入数据; select * from t1; 查看t1表数据内容; Select * from t1 where id=1 and age =’jfedu’; id、age多个条件查询; desc t1; 查看t1表字段内容; alter table t1 modify column name varchar(20); 修改name字段的长度; update t1 set name='jfedu.net' where id=1; 修改name字段的内容; flush privileges; 刷新权限; delete from t1 ; 清空表内容; drop table t1 ; 删除表; drop database jfedu; 删除jfedu数据库; show variables like '%char%'; 查看数据库字符集; show engines; 查看MySQL存储引擎; show variables like '%storage_engine%'; 查看MySQL默认的存储引擎; alter table t1 engine=innodb; 修改MySQL t1表存储引擎; ![]() |
[client]字段里参加: default-character-set=utf8 [mysqld]字段里参加: character-set-server=utf8 [mysql]字段里参加 : default-character-set=utf8 |
show variables like '%char%'; SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8; ![]() |
grant all on jfedu.* to test@localhost identified by 'pas'; grant select,insert,update,delete on *.* to test@”%” identified by ‘pas’; grant all on jfedu.* to test@’192.168.111.118’ identified by 'pas'; |
授权localhost主机通过test用户和pas暗码访问当地的jfedu库的所有权限; 授权所有主机通过test用户和pas暗码访问当地的jfedu库的查询、插入、更新、删除权限; 授权192.168.111.118主机通过test用户和pas暗码访问当地的jfedu库的所有权限; |
/etc/init.d/mysqld stop /usr/bin/mysqld_safe --user=mysql --skip-grant-tables & |
use mysql update user set password=password(‘123456’) where user=’root’; ![]() |
[mysqld] //服务器端配置 datadir=/data/mysql //数据目录 socket=/var/lib/mysql/mysql.sock //socket通信设置 user=mysql //利用mysql用户启动; symbolic-links=0 //是否支持快捷方式; log-bin=mysql-bin //开启bin-log日志; server-id = 1 //mysql服务的ID; auto_increment_offset=1 //自增长字段从固定数开始; auto_increment_increment=2 //自增长字段每次递增的量; socket = /tmp/mysql.sock //为MySQL客户步伐与服务器之间的当地通信套接字文件; port = 3306 //指定MsSQL监听的端口; key_buffer = 384M //key_buffer是用于索引块的缓冲区大小; table_cache = 512 //为所有线程打开表的数量; sort_buffer_size = 2M //每个需要进行排序的线程分配该大小的一个缓冲区; read_buffer_size = 2M //读查询操作所能利用的缓冲区大小。 query_cache_size = 32M //指定MySQL查询效果缓冲区的大小 read_rnd_buffer_size = 8M //改参数在利用行指针排序之后,随机读; myisam_sort_buffer_size = 64M //MyISAM表发生变化时重新排序所需的缓冲; thread_concurrency = 8 //最大并发线程数,取值为服务器逻辑CPU数量×2; thread_cache = 8 //缓存可重用的线程数; skip-locking //制止MySQL的外部锁定,淘汰堕落几率加强稳定性。 default-storage-engine=INNODB //设置mysql默认引擎为Innodb; #mysqld_safe config [mysqld_safe] //mysql服务安全启动配置; log-error=/var/log/mysqld.log //mysql错误日志路径; pid-file=/var/run/mysqld/mysqld.pid //mysql PID进程文件; key_buffer_size = 2048MB //MyISAM表索引缓冲区的大小; max_connections = 3000 //mysql最大连接数; innodb_buffer_pool_size = 2048MB //InnoDB内存缓冲数据和索引大小; basedir = /usr/local/mysql55/ //数据库安装路径; [mysqldump] //数据库导出段配置; max_allowed_packet =16M //服务器和客户端发送的最大数据包; |
普通索引: normal,利用最广泛; 唯一索引: unique,不允许重复的索引,允许有空值; 全文索引: full text,只能用于MyISAM表,FULLTEXT紧张用于大量的内容检索; 主键索引: primary key又称为特殊的唯一索引,不允许有空值; 组合索引: 为提高mysql效率可建立组合索引; |
主键索引 ALTER TABLE t1 ADD PRIMARY KEY ( `column` ); 唯一索引 ALTER TABLE t1 ADD UNIQUE (`column`); 普通索引 ALTER TABLE t1 ADD INDEX index_name ( `column' ); 全文索引 ALTER TABLE t1 ADD FULLTEXT ( `column` ); 组合索引 ALTER TABLE t1 ADD INDEX index_name ( `column1`, `column2`, `column3` ); |
DROP INDEX index_name ON t1; ALTER TABLE t1 DROP INDEX index_name; ALTER TABLE t1 DROP PRIMARY KEY; |
show index from t1; show keys from t1; |
show variables like "%slow%"; show variables like "%long_query%"; ![]() |
log_slow_queries 关闭慢查询日志功能; long_query_time 慢查询超时时间,默认为10s,MYSQL5.5以上可以设置微秒; slow_query_log 关闭慢查询日志; slow_query_log_file 慢查询日志文件; slow_launch_time Thread create时间,单位秒,如果thread create的时间凌驾了这个值,该变量slow_launch_time的值会加1; log-queries-not-using-indexes 记录未添加索引的SQL语句。 |
set global slow_query_log=on; show variables like "%slow%"; |
log-slow-queries = /data/mysql/localhost.log long_query_time = 0.01 log-queries-not-using-indexes |
实验下令mysqldumpslow -h可以查看下令帮助信息: 紧张参数包括:-s和-t -s 这个是排序参数,可选的有: l: 查询锁的总时间; r: 返回记录数; t: 查询总时间排序; al: 均匀锁定时间; ar: 均匀返回记录数; at: 均匀查询时间; c: 计数; -t n 表现头n条记录。 |
mysqldumpslow -s r -t 2 localhost.log![]() |
mysqldumpslow -s t -t 5 -g "select" localhost.log![]() |
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] user = mysql server_id = 10 port = 3306 socket = /tmp/mysql.sock datadir = /data/mysql/ old_passwords = 1 lower_case_table_names = 1 character-set-server = utf8 default-storage-engine = MYISAM log-bin = bin.log log-error = error.log pid-file = mysql.pid long_query_time = 2 slow_query_log slow_query_log_file = slow.log binlog_cache_size = 4M binlog_format = mixed max_binlog_cache_size = 16M max_binlog_size = 1G expire_logs_days = 30 ft_min_word_len = 4 back_log = 512 max_allowed_packet = 64M max_connections = 4096 max_connect_errors = 100 join_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 2M sort_buffer_size = 2M query_cache_size = 64M table_open_cache = 10000 thread_cache_size = 256 max_heap_table_size = 64M tmp_table_size = 64M thread_stack = 192K thread_concurrency = 24 local-infile = 0 skip-show-database skip-name-resolve skip-external-locking connect_timeout = 600 interactive_timeout = 600 wait_timeout = 600 #*** MyISAM key_buffer_size = 512M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 64M myisam_max_sort_file_size = 1G myisam_repair_threads = 1 concurrent_insert = 2 myisam_recover #*** INNODB innodb_buffer_pool_size = 64G innodb_additional_mem_pool_size = 32M innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend innodb_read_io_threads = 8 innodb_write_io_threads = 8 innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 2 innodb_lock_wait_timeout = 120 innodb_log_buffer_size = 8M innodb_log_file_size = 256M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 90 innodb_thread_concurrency = 16 innodb_open_files = 10000 #innodb_force_recovery = 4 #*** Replication Slave read-only #skip-slave-start relay-log = relay.log log-slave-updates |
server-id = 1 log-bin = mysql-bin |
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 8 log-bin=mysql-bin binlog_format=mixed server-id = 1 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 128M sort_buffer_size = 128M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout |
grant replication slave on *.* to 'tongbu'@'%' identified by '123456'; show master status; ![]() |
server-id = 2 |
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 8 server-id = 2 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 128M sort_buffer_size = 128M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout |
change master to master_host='192.168.238.132',master_user='tongbu',master_password='123456',master_log_file=' mysql-bin.000006',master_log_pos=257; |
slave start; show slave status\G |
Slave_IO_Running: Yes Slave_SQL_Running: Yes |
Slave_IO_State I/O线程连接Master状态; Master_User 用于连接Master的用户; Master_Port Master端监听端口; Connect_Retry 主从连接失败,重试时间隔断; Master_Log_File I/O线程读取的Master二进制日志文件的名称。 Read_Master_Log_Pos I/O线程已读取的Master二进制日志文件的位置; Relay_Log_File SQL线程读取和实验的中继日志文件的名称。 Relay_Log_Pos SQL线程已读取和实验的中继日志文件的位置; Relay_Master_Log_File SQL线程实验的Master二进制日志文件的名称; Slave_IO_Running I/O线程是否被启动并成功地连接到主服务器上; Slave_SQL_Running SQL线程是否被启动; Replicate_Do_DB 指定的同步的数据库列表; Skip_Counter SQL_SLAVE_SKIP_COUNTER设置的值; Seconds_Behind_Master Slave端SQL线程和I/O线程之间的时间差距,单位为秒,常被用于主从延迟检查方法之一。 |
create database mysql_ab_test charset=utf8; show databases; use mysql_ab_test; create table t0 (id varchar(20),name varchar(20)); show tables; ![]() |
insert into t0 values (“001”,”wugk1”); insert into t0 values (“002”,”wugk2”); select * from t0; ![]() |
flush tables with read lock; |
stop slave; set global sql_slave_skip_counter =1; start slave; |
flush tables with read lock; |
unlock tables; |
yum install httpd httpd-devel mysql mysql-server mysql-devel php php-devel php-mysql -y service httpd restart service mysqld restart |
yum install apr-devel apr-util-devel -y; cd /usr/src ; wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.31.tar.gz tar xzf httpd-2.2.31.tar.gz cd httpd-2.2.31 ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite make make install |
yum install cmake ncurses-devel ncurses -y cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DMYSQL_DATADIR=/data/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 \ -DWITH_XTRADB_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EXTRA_CHARSETS=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DEXTRA_CHARSETS=all \ -DWITH_BIG_TABLES=1 \ -DWITH_DEBUG=0 make make install |
cd /usr/local/mysql55/ \cp support-files/my-large.cnf /etc/my.cnf \cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 35 mysqld on mkdir -p /data/mysql useradd mysql /usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/ ln -s /usr/local/mysql55/bin/* /usr/bin/ service mysqld restart |
cd /usr/src wget http://mirrors.sohu.com/php/php-5.3.28.tar.bz2 tar jxf php-5.3.28.tar.bz2 cd php-5.3.28 ; ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql55/ ![]() |
LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php DirectoryIndex index.php index.html index.htm |
cat >/usr/local/apache/htdocs/index.php<<EOF <?php phpinfo(); ?> EOF |
cd /usr/src ; wget http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip unzip Discuz_X3.1_SC_UTF8.zip -d /usr/local/apache/htdocs/ cd /usr/local/apache/htdocs/ ;\mv upload/* . chmod 757 -R data/ uc_server/ config/ uc_client/ |
create database discuz charset=utf8; grant all on discuz.* to root@'localhost' identified by "123456"; |
yum install httpd httpd-devel php-devel php php-mysql -y |
yum install mysql-server mysql mysql-devel mysql-libs -y |
./configure --prefix=/usr/local/php5 \ --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \ --with-apxs2=/usr/local/apache2/bin/apxs make make install |
名称 | 数据库范例 | 数据存储选项 | 操作范例 | 备注 |
Redis | 内存存储,Nosql数据库 | 支持字符串、列表、聚集、散列表、有序聚集 | 增、删、修改、更新 | 支持分布式集群、主从同步及高可用、单线程 |
Memcached | 内存缓存数据库,键值对 | 键值之间的映射 | 增、删、修改、更新 | 支持多线程 |
MySQL | 典范关系数据库,RDBMS | 数据库由多表主成,每张表包含多行 | 增、删、修改、更新 | 支持ACID性子 |
PostgreSQL | 典范关系数据库,RDBMS | 数据库由多表主成,每张表包含多行 | 增、删、修改、更新 | 支持ACID性子 |
MongoDB | 硬盘存储,Nosql数据库 | 数据库包含多个表 | 增、删、修改、更新 | 主从复制,分片,副本集、空间索引 |
LAMP服务器: 192.168.149.128 Redis主库: 192.168.149.129 Redis从库: 192.168.149.130 |
wget http://download.redis.io/releases/redis-2.8.13.tar.gz tar zxf redis-2.8.13.tar.gz cd redis-2.8.13 make PREFIX=/usr/local/redis install cp redis.conf /usr/local/redis/ |
export PATH=/usr/local/redis/bin![]() |
nohup /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf & /usr/local/redis/bin/redis-cli -p 6379 shutdown |
wget https://github.com/phpredis/phpredis/archive/3.1.2.tar.gz tar xzf 3.1.2.tar.gz /usr/local/php5/bin/phpize cd phpredis-3.1.2/ ./configure --with-php-config=/usr/local/php5/bin/php-config --enable-redis make make install |
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20090626" extension=redis.so |
# daemonize no Linux Shell终端运行redis,改为yes即背景运行Redis服务; daemonize yes # 当运行多个 redis 服务时,需要指定不同的pid文件和端口 pidfile /var/run/redis_6379.pid # 指定redis运行的端口,默认是 6379 port 6379 # 在高并发的环境中,为制止慢客户端的连接题目,需要设置一个高速背景日志 tcp-backlog 511 # 指定redis只接收来自于该 IP 地址的哀求,如果不进行设置,那么将处理所有哀求 # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 #设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接; timeout 0 # 在Linux 上,指定值(秒)用于发送 ACKs 的时间。留意关闭连接需要双倍的时间。默认为 0 。 tcp-keepalive 0 # Redis总共支持四个日志级别: debug 、 verbose 、 notice 、 warning ,默认为 verbose # debug 记录许多信息,用于开辟和测试 # varbose 有用的信息,不像 debug 会记录那么多 # notice 普通的 verbose ,常用于生产环境 # warning 只有非常紧张大概严峻的信息会记录到日志 loglevel notice #配置 log 文件地址 #默认值为 stdout ,标准输出,若背景模式会输出到 /dev/null 。 logfile /var/log/redis/redis.log #可用数据库数 #默认值为16 ,默认数据库为0,数据库范围在 0- ( database-1 )之间 databases 16 #数据写入磁盘快照设置 #生存数据到磁盘,格式如下 : #save <seconds> <changes> #指出在多长时间内,有多少次更新操作,就将数据同步到数据文件 rdb 。 #相当于条件触发抓取快照,这个可以多个条件配合 #比如默认配置文件中的设置,就设置了三个条件 #save 900 1 900 秒内至少有 1 个 key 被改变 #save 300 10 300 秒内至少有 300 个 key 被改变 #save 60 10000 60 秒内至少有 10000 个 key 被改变 # save 900 1 # save 300 10 # save 60 10000 # 背景存储错误停止写。 stop-writes-on-bgsave-error yes # 存储至当地数据库时(持久化到 rdb 文件)是否压缩数据,默认为 yes rdbcompression yes # 当地持久化数据库文件名,默认值为 dump.rdb dbfilename dump.rdb # 工作目录 # 数据库镜像备份的文件放置的路径。 # 这里的路径跟文件名要分开配置是因为 redis 在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成, # 再把该该临时文件更换为上面所指定的文件,而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中。 # AOF 文件也会存放在这个目录下面 # 留意这里必须制定一个目录而不是文件 dir /var/lib/redis/ ################################# 复制 ################################# # 主从复制 . 设置该数据库为其他数据库的从数据库 . # 设置当本机为 slav 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步 # slaveof <masterip><masterport> # 当 master 服务设置了暗码保护时 ( 用 requirepass 制定的暗码 ) # slave 服务连接 master 的暗码 # masterauth <master-password> # 当从库同主机失去连接大概复制正在进行,从机库有两种运行方式: # 1) 如果 slave-serve-stale-data 设置为 yes( 默认设置 ) ,从库会继续相应客户端的哀求 # 2) 如果 slave-serve-stale-data 是指为 no ,出去 INFO 和 SLAVOF 下令之外的任何哀求都会返回一个 # 错误 "SYNC with master in progress" slave-serve-stale-data yes # 配置 slave 实例是否接受写。写 slave 对存储短暂数据(在同 master 数据同步后可以很轻易地被删除)是有用的,但未配置的环境下,客户端写大概会发送题目。 # 从 Redis2.6 后,默认 slave 为 read-only slaveread-only yes # 从库会按照一个时间隔断向主库发送 PINGs. 可以通过 repl-ping-slave-period 设置这个时间隔断,默认是 10 秒 # repl-ping-slave-period 10 # repl-timeout 设置主库批量数据传输时间大概 ping 复兴时间隔断,默认值是 60 秒 # 一定要确保 repl-timeout 大于 repl-ping-slave-period # repl-timeout 60 # 在 slave socket 的 SYNC 后禁用 TCP_NODELAY # 如果选择“ yes ” ,Redis 将利用一个较小的数字 TCP 数据包和更少的带宽将数据发送到 slave , 但是这大概导致数据发送到 slave 端会有延迟 , 如果是 Linux kernel 的默认配置,会到达 40 毫秒 . # 如果选择 "no" ,则发送数据到 slave 端的延迟会降低,但将利用更多的带宽用于复制 . repl-disable-tcp-nodelay no # 设置复制的背景日志大小。 # 复制的背景日志越大, slave 断开连接及后来大概实验部分复制花的时间就越长。 # 背景日志在至少有一个 slave 连接时,仅仅分配一次。 # repl-backlog-size 1mb # 在 master 不再连接 slave 后,背景日志将被释放。下面的配置界说从末了一个 slave 断开连接后需要释放的时间(秒)。 # 0 意味着从不释放背景日志 # repl-backlog-ttl 3600 # 如果 master 不能再正常工作,那么会在多个 slave 中,选择优先值最小的一个 slave 提拔为 master ,优先值为 0 表现不能提拔为 master 。 slave-priority 100 # 如果少于 N 个 slave 连接,且延迟时间 <=M 秒,则 master 可配置停止接受写操作。 # 比方需要至少 3 个 slave 连接,且延迟 <=10 秒的配置: # min-slaves-to-write 3 # min-slaves-max-lag 10 # 设置 0 为禁用 # 默认 min-slaves-to-write 为 0 (禁用), min-slaves-max-lag 为 10 ################################## 安全 ################################### # 设置客户端连接后进行任何其他指定前需要利用的暗码。 # 警告:因为 redis 速度相当快,所以在一台比力好的服务器下,一个外部的用户可以在一秒钟进行 150K 次的暗码尝试,这意味着你需要指定非常非常强大的暗码来防止暴力破解 # requirepass jfedu # 下令重命名 . # 在一个共享环境下可以重命名相对危险的下令。比如把 CONFIG 重名为一个不轻易推测的字符。 # 举例 : # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 # 如果想删除一个下令,直接把它重命名为一个空字符 "" 即可,如下: # rename-command CONFIG "" ###################################束缚################################### #设置同一时间最大客户端连接数,默认无穷定, #Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数, #如果设置 maxclients 0 ,表现不作限定。 #当客户端连接数到达限定时, Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息 # maxclients 10000 # 指定 Redis 最大内存限定, Redis 在启动时会把数据加载到内存中,到达最大内存后, Redis 会按照清除策略尝试清除已到期的 Key # 如果 Redis 依照策略清除后无法提供足够空间,大概策略设置为 ”noeviction” ,则利用更多空间的下令将会报错,比方 SET, LPUSH 等。但仍然可以进行读取操作 # 留意: Redis 新的 vm 机制,会把 Key 存放内存, Value 会存放在 swap 区 # 该选项对 LRU 策略很有用。 # maxmemory 的设置比力适合于把 redis 当作于类似 memcached 的缓存来利用,而不适合当做一个真实的 DB 。 # 当把 Redis 当做一个真实的数据库利用的时候,内存利用将是一个很大的开销 # maxmemory <bytes> # 当内存到达最大值的时候 Redis 会选择删除哪些数据?有五种方式可供选择 # volatile-lru -> 利用 LRU 算法移除设置过过期时间的 key (LRU: 最近利用 Least RecentlyUsed ) # allkeys-lru -> 利用 LRU 算法移除任何 key # volatile-random -> 移除设置过过期时间的随机 key # allkeys->random -> remove a randomkey, any key # volatile-ttl -> 移除即将过期的 key(minor TTL) # noeviction -> 不移除任何可以,只是返回一个写错误 # 留意:对于上面的策略,如果没有合适的 key 可以移除,当写的时候 Redis 会返回一个错误 # 默认是 : volatile-lru # maxmemory-policy volatile-lru # LRU 和 minimal TTL 算法都不是精准的算法,但是相对准确的算法 ( 为了节省内存 ) ,随意你可以选择样本大小进行检测。 # Redis 默认的灰选择 3 个样本进行检测,你可以通过 maxmemory-samples 进行设置 # maxmemory-samples 3 ############################## AOF############################### # 默认环境下, redis 会在背景异步的把数据库镜像备份到磁盘,但是该备份黑白常耗时的,而且备份也不能很频繁,如果发生诸如拉闸限电、拔插头等状况,那么将造成比力大范围的数据丢失。 # 所以 redis 提供了另外一种更加高效的数据库备份及灾难恢复方式。 # 开启 append only 模式之后, redis 会把所接收到的每一次写操作哀求都追加到 appendonly.aof 文件中,当 redis 重新启动时,会从该文件恢复出之前的状态。 # 但是这样会造成 appendonly.aof 文件过大,所以 redis 还支持了 BGREWRITEAOF 指令,对 appendonly.aof 进行重新整理。 # 你可以同时开启 asynchronous dumps 和 AOF appendonly no # AOF 文件名称 ( 默认 : "appendonly.aof") # appendfilename appendonly.aof # Redis 支持三种同步 AOF 文件的策略 : # no: 不进行同步,系统去操作 . Faster. # always: always 表现每次有写操作都进行同步 . Slow, Safest. # everysec: 表现对写操作进行累积,每秒同步一次 . Compromise. # 默认是 "everysec" ,按照速度和安全折中这是最好的。 # 如果想让 Redis 能更高效的运行,你也可以设置为 "no" ,让操作系统决定什么时候去实验 # 大概相反想让数据更安全你也可以设置为 "always" # 如果不确定就用 "everysec". # appendfsync always appendfsync everysec # appendfsync no # AOF 策略设置为 always 大概 everysec 时,背景处理进程 ( 背景生存大概 AOF 日志重写 ) 会实验大量的 I/O 操作 # 在某些 Linux 配置中会制止过长的 fsync() 哀求。留意现在没有任何修复,即使 fsync 在另外一个线程进行处理 # 为了减缓这个题目,可以设置下面这个参数 no-appendfsync-on-rewrite no-appendfsync-on-rewrite no # AOF 自动重写 # 当 AOF 文件增长到一定大小的时候 Redis 能够调用 BGREWRITEAOF 对日志文件进行重写 # 它是这样工作的: Redis 会记着前次进行些日志后文件的大小 ( 如果从开机以来还没进行过重写,那日子大小在开机的时候确定 ) # 基础大小会同现在的大小进行比力。如果现在的大小比基础大小大制定的百分比,重写功能将启动 # 同时需要指定一个最小大小用于 AOF 重写,这个用于制止即使文件很小但是增长幅度很大也去重写 AOF 文件的环境 # 设置 percentage 为 0 就关闭这个特性 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb ######## # LUA SCRIPTING ######### # 一个 Lua 脚本最长的实验时间为 5000 毫秒( 5 秒),如果为 0 或负数表现无穷实验时间。 lua-time-limit 5000 ################################LOW LOG################################ # Redis Slow Log 记录凌驾特定实验时间的下令。实验时间不包括 I/O 计算比如连接客户端,返回效果等,只是下令实验时间 # 可以通过两个参数设置 slow log :一个是告诉 Redis 实验凌驾多少时间被记录的参数 slowlog-log-slower-than( 微妙 ) , # 另一个是 slow log 的长度。当一个新下令被记录的时候最早的下令将被从队列中移除 # 下面的时间以微妙为单位,因此 1000000 代表一秒。 # 留意指定一个负数将关闭慢日志,而设置为 0 将强制每个下令都会记录 slowlog-log-slower-than 10000 # 对日志长度没有限定,只是要留意它会斲丧内存 # 可以通过 SLOWLOG RESET 回收被慢日志斲丧的内存 # 保举利用默认值 128 ,当慢日志凌驾 128 时,最先辈入队列的记录会被踢出 slowlog-max-len 128 |
Redis CONFIG 下令格式如下: redis 127.0.0.1:6379> CONFIG GET|SET CONFIG_SETTING_NAME CONFIG GET * 获取Redis服务器所有配置信息; CONFIG SET loglevel "notice" 设置Redis服务器日志级别; CONFIG SET requirepass "jfedu" AUTH jfedu redis-cli -h host -p port -a password 远程连接redis数据库; CLIENT GETNAME 获取连接的名称; CLIENT SETNAME 设置当前连接的名称; CLUSTER SLOTS 获取集群节点的映射数组; COMMAND 获取Redis下令详情数组; COMMAND COUNT 获取 Redis 下令总数; COMMAND GETKEYS 获取给定下令的所有键; TIME 返回当前服务器时间; CONFIG GET parameter 获取指定配置参数的值; CONFIG SET parameter value 修改redis 配置参数,无需重启; CONFIG RESETSTAT 重置 INFO 下令中的某些统计数据; DBSIZE 返回当前数据库的 key 的数量; DEBUG OBJECT key 获取 key 的调试信息; DEBUG SEGFAULT 让Redis服务崩溃; FLUSHALL 删除所有数据库的所有key; FLUSHDB 删除当前数据库的所有key; ROLE 返回主从实例所属的角色; SAVE 异步生存数据到硬盘; SHUTDOWN 异步生存数据到硬盘,并关闭服务器; SLOWLOG 管理 redis 的慢日志; SET keys values 设置key为jfedu,值为123; DEL jfedu 删除key及值; INFO CPU 查看服务器CPU占用信息; KEYS jfedu 查看是存在jfedu的key; KEYS * 查看Redis所有的KEY; CONFIG REWRITE 启动 Redis时所指定的redis.conf 配置文件进行改写; INFO [section] 获取Redis服务器的各种信息和统计数值; SYNC 用于复制功能(replication)的内部下令; SLAVEOF host port 指定服务器的从属服务器(slave server); MONITOR 及时打印出Redis服务器接收到的下令,调试用; LASTSAVE 返回最近一次Redis成功将数据生存到磁盘上的时间;; CLIENT PAUSE timeout 指定时间内终止运行来自客户端的下令; BGREWRITEAOF 异步实验一个 AOF(AppendOnly File) 文件重写操作; BGSAVE 背景异步生存当前数据库的数据到磁盘。 |
daemonize no pidfile /var/run/redis.pid port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 0 loglevel notice logfile "" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename redis.rdb dir /data/redis/ slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes |
daemonize no pidfile /var/run/redis.pid port 6379 slaveof 192.168.149.129 6379 tcp-backlog 511 timeout 0 tcp-keepalive 0 loglevel notice logfile "" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename redis.rdb dir /data/redis/ slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes |
save 900 1 #900秒内有至少1个键被更改则进行快照; save 300 10 #300秒内有至少10个键被更改则进行快照; save 60 10000 #60秒内有至少10000个键被更改则进行快照。 |
appendonly yes appendfilename appendonly.aof auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb appendfsync always #appendfsync everysec #appendfsync no |
appendonly yes #开启AOF持久化功能; appendfilename appendonly.aof #AOF持久化生存文件名; appendfsync always #每次实验写入都会实验同步,最安全也最慢; #appendfsync everysec #每秒实验一次同步操作; #appendfsync no #不自动进行同步操作,而是完全交由操作系统来做,每30秒一次,最快也最不安全; auto-aof-rewrite-percentage 100 #当AOF文件大小凌驾上一次重写时的AOF文件大小的百分之多少时会再次进行重写,如果之前没有重写过,则以启动时的AOF文件大小为依据; auto-aof-rewrite-min-size 64mb #允许重写的最小AOF文件大小配置写入AOF文件后,要求系统刷新硬盘缓存的机制。 |
wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz useradd -r mysql-proxy tar zxvf mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz -C /usr/local mv /usr/local/mysql-proxy-0.8.4-linux-el6-x86-64bit /usr/local/mysql-proxy |
export PATH=$PATH:/usr/local/mysql-proxy/bin/ |
mysql-proxy --daemon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins="proxy" --proxy-backend-addresses="192.168.238.134:3306" --proxy-read-only-backend-addresses="192.168.238.133:3306" --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin --admin-username="admin" --admin-password="admin" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua" |
--help-all :获取全部帮助信息; --proxy-address=host:port :代理服务监听的地址和端口,默认为4040; --admin-address=host:port :管理模块监听的地址和端口,默认为4041; --proxy-backend-addresses=host:port :后端mysql服务器的地址和端口; --proxy-read-only-backend-addresses=host:port :后端只读mysql服务器的地址和端口; --proxy-lua-script=file_name :完成mysql代理功能的Lua脚本; --daemon :以守护进程模式启动mysql-proxy; --keepalive :在mysql-proxy崩溃时尝试重启之; --log-file=/path/to/log_file_name :日志文件名称; --log-level=level :日志级别; --log-use-syslog :基于syslog记录日志; --plugins=plugin :在mysql-proxy启动时加载的插件; --user=user_name :运行mysql-proxy进程的用户; --defaults-file=/path/to/conf_file_name :默认利用的配置文件路径,其配置段利用[mysql-proxy]标识; --proxy-skip-profiling :禁用profile; --pid-file=/path/to/pid_file_name :进程文件名; |
mysql -h192.168.1.16 -uadmin -p -P 4041 |
select * from backends;![]() |
mysql -h192.168.1.16 -uroot -p123456 -P4040 -e "select * from jfedu_test.t1;" |
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |