hhhzua 发布的文章

有时候我们并不想要把一个项目都提交到git上,比如一个基于当前服务器的配置,当项目迁移到另一个服务器上时,这个配置相应变成了与另一个服务器相关的,如果在提交到git服务器时连同该配置一同提交,就很容易因为未及时修改而发生错误。这时候,就需要使git不提交该文件,这就是 .gitignore的作用。
只要在进行版本管理的目录中创建该文件写上相应配置就会生效,
该文件每个配置写一行,
例如:

#当前目录下的public目录中的所有文件(包括子目录)
/public
#当前目录下的.env文件
.env

我的个人博客:逐步前行STEP

laravel中的任务调度可以不将每条命令都写入crontab,便于管理维护,而且可以基于laravel框架环境运行,而不需写独立的脚本执行,非常方便,但是最小的执行间隔也是一分钟,要想达到每秒执行的效果,就要借助shll脚本了,在shell脚本里循环60次每秒执行schedule:run命令,就达到了秒级定时任务的效果,以下是我使用的shell脚本:

#!/bin/bash
step=1 #间隔的秒数

for (( i = 0; i < 60; i=(i+step) )); do
    /usr/local/php/bin/php /home/www/blog/artisan schedule:run
    sleep $step
done

exit 0

我的个人博客:逐步前行STEP

1、在配置文件添加:

innodb_force_recovery = 1;

2、重启mysql服务:service mysqld restart
3、登陆mysql,导出数据库
4、删除ibdata1、ib_logfile0、ib_logfile1文件和databasename(数据库名字)目录
5、注释掉第一步的配置:innodb_force_recovery = 1
6、重启mysql服务:service mysqld restart
7、登陆mysql,重建数据库,导入备份

首先写一个备份脚本:

backup.sh

#!/bin/bash
#设置文件名中的时间格式
date=`date +%Y_%m_%d`
#mysqldump命令需使用绝对路径否则无法正确执行
/usr/local/mysql/bin/mysqldump -uusername -ppassword database | gzip > /home/mysql/backup/database_$date.sql.gz

添加可执行权限:

chmod +x backup.sh

添加定时执行脚本:

#每日0点执行备份
0 0 * * * root /bin/bash /home/mysql/backup.sh

配置Mysql主从可以做热备、读写分离,是提高网站性能、提高数据安全性的比较有效的方式,而且配置简单,所以笔者在网站因业务逻辑需要大量用到数据库操作而性能不佳时,首先想到要做主从,其实还有别的方案的,比如做缓存,但是做缓存要改代码所以等之后再应用,先把主从给配置了。以下是做Mysql主从的关键步骤:
1、准备两个服务器,并且配置并启动同版本的mysql服务,其中,一个主(master)一个从(slave);
2、在master数据库中创建数据库,并将数据库同步到slave数据库,这里我采用了在master中导出sql文件然后在slave中通过scp命令获取后导入的方式;
3、在master中配置一个slave访问账户:

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'52.80.193.101' IDENTIFIED BY 'password';

4、在master数据库配置中添加以下配置:

server-id=1
log-bin=mysql-bin --开启日志,并将二进制日志文件设置为mysql-bin
max_binlog_size=104857600--日志文件的最大尺寸
binlog_format=mixed
binlog-do-db=test --这里配置了需要同步的数据库,如果未配置则表示同步所有数据库
binlog-ignore-db=mysql--这里配置了不需要同步的数据库

5、在slave数据库中添加以下配置:

server-id=2
log-bin=mysql-bin
replicate-same-server-id 
replicate-do-db=blog=test -- 指定要同步的数据库
replicate-ignore-db=mysql -- 指定不需要同步的数据库

6、在slave数据库中执行以下命令:

change master to master_host='52.80.193.101',master_user='slave',master_password='password'

7、分别查看master、slave状态:

show master status;--查看master状态,如果之前没有开启二进制日志的话这里显示空,如果已经开启,会有File、Position、Binlog_Do_DB、Binlog_Ignore_DB等字段
-----
show slave status; --查看slave状态,会显示之前的一些配置信息和一些默认信息

8、测试:
1)现在master中创建一个数据表:

create table test_(id int(11));

2)在slave中test数据库下查看是否有test_表

show tabes like 'test_';

如果有则说明test_表同步过来了,即主从复制配置成功!