月度归档:2014年06月

vagrant多虚拟机配置

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

   config.vm.provider "virtualbox" do |vb|
     vb.gui = false
     vb.customize ["modifyvm", :id, "--memory", "512"]
   end

  config.vm.provision "shell", inline: "echo Hello"

  config.vm.define "dev", primary: true do |dev|
    dev.vm.box = "centos-aliyun-6.5"
    dev.vm.network :private_network, ip: "192.168.1.100"
    dev.vm.provision "shell", inline: "echo dev"
    dev.vm.synced_folder "d:/project", "/var/www"
  end

  config.vm.define "db1", autostart: false do |db1|
    db1.vm.box = "centos-aliyun-6.5"
    db1.vm.network :private_network, ip: "192.168.1.101"
    db1.vm.provision "shell", inline: "echo db1"
  end

  config.vm.define "db2", autostart: false do |db2|
    db2.vm.box = "centos-aliyun-6.5"
    db2.vm.network :private_network, ip: "192.168.1.102"
    db2.vm.provision "shell", inline: "echo db2"
  end

  config.vm.define "db3", autostart: false do |db3|
    db3.vm.box = "centos-aliyun-6.5"
    db3.vm.network :private_network, ip: "192.168.1.103"
    db3.vm.provision "shell", inline: "echo db2"
  end

end

git常用命令

git branch 查看本地所有分支
git status 查看当前状态 
git commit 提交 
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git commit -am "init" 提交并且加注释 
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上 
git remote show origin 显示远程库origin里的资源 
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联 
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来

mysql批量导入导出

备份数据库到脚本(20分钟)

mysqldump -u username -p password --all-databases --flush-privileges | gzip  > all.sql.gz

拷贝到新机器(20分钟)

scp -P xxx -r all.sql.gz root@host:~

解压缩(2分钟)

gunzip  all.sql.gz 

解决掉视图权限问题(1分钟)

sed '/\/*!50013/d' all.sql  > all_without_50013.sql

导入(40分钟)

mysql -u username -p password < all_without_50013.sql

mysql导入视图错误ERROR 1449

MYSQL导入时,如果存在视图,可能导致导入不成功,错误提示: ERROR 1449(HY000) at line xxx: The user specified as a definer ('xxx'@'xxx') does not exist

解决办法1:

sed '/\/*!50013/d' backup.sql > backup_without_50013.sql

解决办法2:

$contents = file_get_contents('backups/backup.sql');
$contents = preg_replace('@/*!50013 DEFINER.*?*/@' , '' , $contents);
file_put_contents('backups/backup.sql' , $contents);

Import mysql dump files with view definer and sql security