yum 安装报 关于Public key for .rpm is not installed 的解决方法

此时要导入rpm的签名信息即可 以root登录,执行下面命令 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 根据我的Linux版本是CentOS 7 于是我执行下面命令 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

December 2, 2017 · 1 min · ZhaoGuibin

Warning RPMDB altered outside of yum.的解决办法

错误提示: Warning: RPMDB altered outside of yum 解决办法: 删除yum的历史记录 rm -rf /var/lib/yum/history/*.sqlite

December 2, 2017 · 1 min · ZhaoGuibin

mysql实现主从复制

准备工作: 1.两个虚拟机:我这里用的是CentOS5.5,IP地址分别是192.168.1.101 和192.168.1.105; 101做主服务器,105做从服务器(都已经安装相同版本的Mysql); 2.本机环境:Nginx+PHP+MySQL 好了,现在开始吧,来看看这听起来高大上的主从复制是怎么回事。 原理:mysql要做到主从复制,其实依靠的是二进制日志,即:假设主服务器叫A,从服务器叫B;主从复制就是 B跟着A学,A做什么,B就做什么。那么B怎么同步A的动作呢?现在A有一个日志功能,把自己所做的增删改查的动作 全都记录在日志中,B只需要拿到这份日志,照着日志上面的动作施加到自己身上就可以了。这样就实现了主从复制。 扩展:MYSQL还有一种日志叫做:慢日志 可以设置一个时间,那么所有执行时间超过这个时间的SQL都会被记录下来。这样就可以通过慢日志快速的找到网站中SQL的瓶颈来进行优化。 实现步骤: 1.首先修改mysql的配置文件,使其支持二进制日志功能。 打开主服务器的mysql配置文件:my.conf vim /etc/my.cnf 加入如下三行代码: 参数解释: log-bin=mysql-bin //将mysql二进制日志取名为mysql-bin binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed server-id=101 //为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id 配置完成,:wq 保存,重启mysql 重启mysql命令:# service mysqld restart 同样的,进入从服务器,配置从服务器的my.cnf,重复步骤1即可, 唯一的区别是,server-id要改成从服务器的ip尾位,即server-id=105;其他两项是一样的,保存,并重启mySQL; 2.在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器上来共享主服务器的日志文件。 进入主服务器的mysql界面, mysql -u root -p 111111 //我这里mysql账号是root,密码是111111 在mysql操作界面下,输入下面一行命令: GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '111111'; 3.查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变). 4.设置从服务器 进入从服务器mysql mysql -u root -p111111 关闭slave(如果你以前配置过主从的话,一定要先关闭) stop slave; 开始配置: 输入下面代码即可: 参数解释: MASTER_HOST : 设置要连接的主服务器的ip地址 MASTER_USER : 设置要连接的主服务器的用户名...

December 2, 2017 · 1 min · ZhaoGuibin

用户及用户组管理

/etc/passwd 存储用户账号 /etc/group 存储组账号 /etc/shadow 存储用户账号的密码 /etc/gshadow 存储用户组账号的密码 useradd 用户名 userdel 用户名 adduser 用户名 groupadd 组名 groupdel 组名 passwd root 给root设置密码 su root su - root /etc/profile 系统环境变量 bash_profile 用户环境变量 .bashrc 用户环境变量 su user 切换用户,加载配置文件.bashrc su - user 切换用户,加载配置文件/etc/profile ,加载bash_profile 更改文件的用户及用户组 sudo chown [-R] owner[:group] {File|Directory} 例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop 要想切换此文件所属的用户及组。可以使用命令。 sudo chown root:root jdk-7u21-linux-i586.tar.gz

December 2, 2017 · 1 min · ZhaoGuibin

centos6.5编译安装LNMP

一、环境准备 1、操作系统安装:CentOS 6.5 64位最小化安装。 2、配置好IP、DNS、网关、主机名 3、配置防火墙,开启80、3306端口 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /etc/rc.d/init.d/iptables save /etc/init.d/iptables restart 这样就搞定了,查看效果 /etc/init.d/iptables status /etc/init.d/iptables restart #最后重启防火墙使配置生效 PS: Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口: #开启端口 firewall-cmd --zone=public --add-port=80/tcp --permanent #重启防火墙 firewall-cmd --reload 命令含义: –zone #作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效 4、关闭SELinux 查看selinux状态: /usr/sbin/sestatus -v SELinux status: disabled //禁用selinux getenforce Disabled //禁用selinux getenforce Enforcing //启动 关闭selinux方法: setenforce 0 #设置SELinux 成为permissive模式 setenforce 1 #设置SELinux 成为enforcing模式 第二种方法: vim /etc/selinux/config 编辑文件...

December 2, 2017 · 5 min · ZhaoGuibin

hexo相关优化

local search 安装 hexo-generator-search 在站点的根目录下执行以下命令: npm install hexo-generator-search --save 安装 hexo-generator-searchdb 在站点的根目录下执行以下命令: npm install hexo-generator-searchdb --save 启用搜索 编辑 站点配置文件,新增以下内容到任意位置: search: path: search.xml field: post format: html limit: 10000 给 Github 添加 README 默认情况下, Github 中每一个项目,我们希望有一份 README.md 的文件来作为项目的说明,但是我们在项目根目录下的 blog\source 目录下创建一份 README.md 文件,写好说明介绍,部署的时候,这个 README.md 会被 hexo 解析掉,而不会被解析到 Github 中去的。 正确的解决方法其实很简单: 把 README.md 文件的后缀名改成 MDOWN 然后扔到 blog/source 文件夹下即可,这样 hexo 不会解析, Github 也会将其作为MD文件解析。 解决每次发布后需要手动在 github page 的 setting 里重新设置自定义域名 在 /hexo/source 目录建一个 CNAME,里面写你的域名,这样每次生成的时候就会自带这个文件了,以后就不用重新修改自定义域名了

December 1, 2017 · 1 min · ZhaoGuibin

ssh免密码登录

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。 有机器A(192.168.3.7),B(192.168.3.3)。现想A通过ssh免密码登录到B。 1.在A机下生成公钥/私钥对。 ssh-keygen -t rsa -P '' -P表示密码,-P ’’ 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。 它在/home/root下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。 2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。 scp ~/.ssh/id_rsa.pub root@192.168.3.3:/home/root/id_rsa.pub root@192.168.3.3's password: id_rsa.pub 100% 223 0.2KB/s 00:00 由于还没有免密码登录的,所以要输入密码。 3.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys 命令如下: cat id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys authorized_keys的权限要是600。 4.A机登录B机。 ssh 192.168.3.3 The authenticity of host '192.168.3.3 (192.168.3.3)' can't be established. RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.3.3' (RSA) to the list of known hosts....

November 30, 2017 · 1 min · ZhaoGuibin

lsyncd实时同步工具安装

有2种方法可以安装 1.yum安装,前提是安装了epel更新源。使用命令: yum install -y lsyncd 2.github下载,地址为:https://github.com/axkibe/lsyncd 安装lua软件包以及依赖软件 yum install -y lua lua-devel cmake rsync 解压下载的压缩包 unzip lsyncd-master.zip -d /usr/src/ 进入目录 cd /usr/src/lsyncd-master/ 使用cmake编译,如果没有安装cmake,可以yum安装一下 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lsyncd make && make install 进入安装目录 cd /usr/local/lsyncd/ 创建配置文件目录和日志目录 mkdir etc var 进入配置文件目录 cd etc/ 编译配置文件 vim lsyncd.conf settings { --pid文件 logfile = "/usr/local/lsyncd/var/lsyncd.log", --状态文件 statusFile = "/usr/local/lsyncd/var/lsyncd.status", --同步模式,意思就是有更新就同步 inotifyMode = "CloseWrite or Modify", --最大8个进程 maxProcesses = 8, } sync { default.rsync, source = "/www", target = "root@192....

November 30, 2017 · 2 min · ZhaoGuibin

DDL、DML和DCL的区别与理解

DML、DDL、DCL区别 . 总体解释: DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Data Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL ...

2 min · ZhaoGuibin

php排序实现方法

直接插入排序 /* * 直接插入排序,插入排序的思想是:当前插入位置之前的元素有序, * 若插入当前位置的元素比有序元素最后一个元素大,则什么也不做, * 否则在有序序列中找到插入的位置,并插入 */ function insertSort($arr) { $len = count($arr); for($i = 1; $i < $len; $i++) { if($arr[$i-1] > $arr[i]) { for($j = $i - 1;$j >= 0; $j-- ) { $tmp = $arr[$j+1]; if($tmp < $arr[$j]) { $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; }else{ break; } } } } return $arr; } 冒泡排序 /* 冒泡排序,冒泡排序思想:进行 n-1 趟冒泡排序, 每趟两两比较调整最大值到数组(子数组)末尾 */ function bubbleSort($arr) { $len = count($arr); for($i = 1; $i < $len; $i++) { for($j = 0; $j < $len-$i; $j++) { if($arr[$j] > $arr[$j+1]) { $tmp = $arr[$j+1]; $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; } } } return $arr; } ...

3 min · ZhaoGuibin