参考
下载并安装ubuntu 12.04的32位box 初始化vagrant box
wget http://files.vagrantup.com/precise32.box
vagrant box add base Downloads/precise32.box
vagrant init
设置最大内存512
vim ~/VagrantFile
config.vm.provider :virtualbox do |vb|
# Don't boot with headless mode
vb.gui = false
# Use VBoxManage to customize the VM. For example to change memory:
vb.customize ["modifyvm", :id, "--memory", "512"]
end
配置虚拟IP
config.vm.network :private_network, ip: "10.0.1.100"
启动虚拟机修改为163源
启动虚拟机,并通过ssh登录到客户机
vagrant up
vagrant ssh
采用163.com的源
sudo vim /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
更新源
sudo aptitude update
添加mariadb源,并安装集群版
大部分linux的二进制发行包都可以在这里找到:https://downloads.mariadb.org/mariadb/repositories/
apt-get install python-software-properties
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/5.5/ubuntu precise main'
sudo aptitude update
sudo aptitude install mariadb-galera-server mariadb-client
打包虚拟机,以便再次安装 退出客户机,回到主机界面
vargrant package --output galera-db.box
vargant box add db galera-db.box
配置虚拟机
vim ~/Vagrantfile
Vagrant.configure("2") do |config|
config.vm.provision "shell", inline: "echo Hello"
config.vm.define "db1" do |db1|
db1.vm.box = "db"
db1.vm.network :private_network, ip: "10.0.1.100"
end
config.vm.define "db2" do |db2|
db2.vm.box = "db"
db2.vm.network :private_network, ip: "10.0.1.101"
end
end
重新加载虚拟机配置
vagrant reload
配置第一台db节点
vagrant ssh db1
sudo service mysql start
sudo mysql_secure_installation mysql -uroot -p
mysql> GRANT USAGE ON *.* to sst@'%' IDENTIFIED BY 'sstpass123';
mysql> GRANT ALL PRIVILEGES on *.* to sst@'%';
mysql> FLUSH PRIVILEGES;
mysql> quit
sudo cp /usr/share/mysql/wsrep.cnf /etc/mysql/conf.d/ sudo vim /etc/mysql/conf.d/wsrep.cnf
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://"
wsrep_sst_auth=sst:sstpass123
wsrep_sst_method=rsync
wsrep_node_name=db1
wsrep_node_address=10.0.1.100
sudo service mysql restart
安装第二个节点
vagrant ssh db2
除了wsrep.cnf有少许不同外,其他同第一节点
wsrep_cluster_address="gcomm://10.0.1.100"
wsrep_node_name=db2
wsrep_node_address=10.0.1.101
sudo service mysql restart
测试节点同步
mysql -usst -psstpass123 -h10.0.1.100 show status like 'wsrep%'; 可以看到wsrep_connected都为ON
create database testdb;
use testdb;
create table t(id int primary key auto_increment);
insert into t values(null);
insert into t values(null);
select * from t;
exit;
mysql -usst -psstpass123 -h10.0.1.101
use testdb;
select * from t;
insert into t values(null);
insert into t values(null);
select * from t;
参考: