文章存档

mysql主从

以下是主库的配置
修改mysql配置

#开启二进制日志
log-bin=mysql-bin
#当前服务器id,我直接用服务器ip
server-id       = 205
#要备份的数据库,aoxiang
binlog-do-db=aoxiang
#下面是不需要备份的服务器
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema

修改防火墙开放3306端口

vim /etc/sysconfig/iptables
-I INPUT -p tcp --dport 3306 -j ACCEPT

增加备份服务器登陆进主库的用户

grant replication slave on *.* to 'back_1'@'8.8.8.8' identified by 'pwd';
grant replication slave on *.* to 'back_2'@'8.8.8.8' identified by 'pwd';

查看主库状态,记下file、position
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000009
Position: 267
Binlog_Do_DB: aoxiang
Binlog_Ignore_DB: mysql,information_schema,performance_schema
1 row in set (0.00 sec)

以下是从库的配置
将主库数据同步到从库
drop database aoxiang;create database aoxiang;use aoxiang;source aoxiang.sql;

#设置从库serviceid,同样以ip命名
service-id=8
#指定要同步的数据库
replicate-do-db=aoxiang

下面配置从库
CHANGE MASTER TO
MASTER_HOST=’120.25.120.205′,
MASTER_USER=’back_1′,
MASTER_PASSWORD=’pwd’,
MASTER_LOG_FILE=’mysql-bin.000009′,
MASTER_LOG_POS=267

mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 120.25.120.205
Master_User: back_1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000009
Read_Master_Log_Pos: 267
Relay_Log_File: iZ940r8etxeZ-relay-bin.000003
Relay_Log_Pos: 270
Relay_Master_Log_File: mysql-bin.000009
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: aoxiang
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 429
Relay_Log_Space: 450
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 205
Master_UUID:
Master_Info_File: /usr/local/mysql/var/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)

添加现在这篇文章以后,我在从库select,结果如下:
mysql> select id,post_title from wp_posts order by id desc limit 10;
+——+——————————-+
| id | post_title |
+——+——————————-+
| 1495 | mysql主从 |
| 1494 | mysql主从 |
| 1493 | 知识点 |
| 1492 | 知识点 |
| 1491 | 自动草稿 |
| 1488 | 什么都想学!!!! |
| 1487 | 什么都想学!!!! |
| 1486 | 什么都想学!!!! |
| 1484 | shell 自动备份db及文件 |
| 1483 | shell 自动备份db及文件 |
+——+——————————-+
10 rows in set (0.00 sec)

Success

知识点

绝壁!这些年来其实看过很多文章、知识点、资料,但是都记不住,特别是!!!

特么高中看C#的时候就看到过关于命名空间的概念,上次有人问我是什么,居然没答上来!!!简直不可忍!!!

so,开帖记下平时看到的一些知识点。

MongoDB

mongodb不支持事务,mongodb会以递增的方式提前申请空间,也就是说再次申请空间的的时候,会64 128  256的增加。mysql单表数据达到5G以上的时候性能瓶颈会很明显,所以mysql不适合做日志,mongodb着重于写操作,更适合与写日志这种业务。mongodb是以BOSN的方式存储,所以更适合海量数据的存储,而mysql更适合业务的实现。
PHP五种运行模式
1、CGI   Common Getway Interface 通用网关接口
将html接收到的指令传递给服务器,把服务器的指令传递给客户端
CGI方式在遇到请求时会创建一个子进程,请求结束后会结束子进程,有多少个请求,就创建多少个子进程,当达到最大进程数时,后来的请求会等待。
2、FastCGI
与CGI方式类似,唯一不同的是:系统会开启多个子进程,等待请求。请求结束后,子进程不关闭,继续等待下一个请求。
PS:每个子进程创建时,会读取php.ini、载入所有扩展、初始化所有数据、重新建立DB连接。可见CGI比FastCGI更消耗资源。
3、CLI   Command Line Interface
以命令行的方式运行
4、ISAPI  Inter Server Aplication Program Interface
微软提供的一套面向internet的API接口,一个ISAPI的dll,激活后会常驻内存,等待请求,ISAPI的DLL会与www服务器处于同一个进程,效率高于CGI,由于微软排他,所以只能在Windows下使用
5、DLL扩展模式运行
PHP作为Windows下Apache的一个模块,apache启动后,会生成多个进程常驻内存,有请求则立即使用空余的子进程处理,这样就不存在生成子进程的延迟,与FastCGI类似,处理完成后并不会结束,而是继续等待。

什么都想学!!!!

最近真是疯了,列个计划
反正已经不知道是第几次列计划!!!
反正每年都要有一次!!!
反正这次一定要做完!!!(认真脸)
1、一周keep5次+,一周跑步3次+,一周最少5天12点之前睡觉。
2、每月工资定投1000
3、本周看完极客学院所有关于shell的视频。
4、开始写准备干的项目!!!!!争取6月份之前写完!
5、最迟7月份开始把EC移植到微信
6、钢琴、APP推后。

shell 自动备份db及文件

添加配置文件的shell

#!/bin/bash
thisdir=$(cd "$(dirname "$0")"; pwd)
read -p "Input your database login name:" dbuser
echo $dbuser
read -p "Input your database password:" dbpwd
echo $dbpwd
read -p "Input your database name:" dbname
echo $dbname
read -p "Input your mail:" email
echo $email
read -p "Input your backup web directory(Like:/home/wwwroot/default):" fullpath
echo $fullpath

if [ $fullpath == "clear" ];	then
	fullpath="null"
fi
echo $dbuser	$dbpwd	$dbname	$email	$fullpath >> $thisdir/backup.conf

下面是备份的shell

#!/bin/bash
thisdir=$(cd "$(dirname "$0")"; pwd)
backupdir=$thisdir"/backup/"
if [ ! -x $backupdir ]; then
mkdir $backupdir
fi
#echo "---------------Progran is Runing------------------" >> $thisdir/log
#load data to start backup
while read dbuser dbpwd dbname mail fullpath
do
Now=$(date +"%Y-%m-%d-%H-%M-%S")
filename=$dbname-$Now.sql
savefile=$backupdir$filename
echo "---------------Backup Start------------------" >> $thisdir/log
echo $Now >> $thisdir/log
if [ $fullpath != "NULL" ]; then
echo "directory is:"$fullpath
#check directory exists
if [ ! -x $fullpath ]; then
echo "directory:"$fullpath" does not exist"
echo "backup exit;"

else
cd $fullpath
echo "Find directory:"$fullpath;
echo "Start Backup Database:"$dbname>>$thisdir/log
echo "Create backup file:"$filename>>$thisdir/log
#Start Backup database
mysqldump -u$dbuser -p$dbpwd $dbname>$filename
echo "Start Backup Web directory:"$fullpath
echo "Create Zip File"$dbname-$Now.zip
zip -r $dbname-$Now.zip ./*
echo "Start move backup file to backup directory"
mv $dbname-$Now.zip $backupdir
echo "Moving Success"
echo "delete "$dbname"backup file in "$fullpath
rm -f $dbname-$Now.sql
fi
else
#Start Backup database
echo "Unset web directory">>$thisdir/log
echo "Start Backup Database:"$dbname>>$thisdir/log
echo "Create backup file:"$filename>>$thisdir/log
mysqldump -u$dbuser -p$dbpwd $dbname>$savefile

echo "Backup Database:"$dbname" Success">>$thisdir/log
echo "Send mail to "$mail>>$thisdir/log
php $thisdir/mail/index.php $mail $savefile $filename >> $thisdir/log
fi
echo "----------------Backup End-------------------" >> $thisdir/log
done < $thisdir/backup.conf
#删除七天前的文件
oldtime=$(date +%Y-%m-%d -d "7 days ago")
rm -f $backupdir*$oldtime*.zip > $thisdir/log