Mysql已经提供了Docker image,可以很方便开启一个mysql服务器。
1. Pull Mysql Image
$ docker pull mysql |
前提是已经安装Docker,这个可以参考docker官网,步骤很详细。
2. 创建外部数据挂载点
$ sudo mkdir -p /var/docker/mysql/data_0 $ sudo mkdir -p /var/docker/mysql/data_1 $ sudo mkdir -p /var/docker/mysql/data_2 $ sudo chmod 775 -R /var/docker/mysql/ |
除了这种方式,也可选择使用Docker数据卷。
3. 启动Mysql容器
$ docker run --privileged=true -p 3307:3306 --name mysql-test0 -v /var/docker/mysql/data_0/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=dev -e MYSQL_PASSWORD=dev -d mysql $ docker run --privileged=true -p 3308:3306 --name mysql-test1 -v /var/docker/mysql/data_1/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=dev -e MYSQL_PASSWORD=dev -d mysql $ docker run --privileged=true -p 3309:3306 --name mysql-test2 -v /var/docker/mysql/data_2/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=dev -e MYSQL_PASSWORD=dev -d mysql $ docker ps |
4. 在宿主机安装并配置MyCat
wget http://219.238.7.66/files/718600000960CC62/dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz |
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz /usr/local/ |
<dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost2" database="db1" /> <dataNode name="dn3" dataHost="localhost3" database="db1" /> <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" /> <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" /> <dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" /> <dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.189.181:3306" user="root" password="root"></writeHost> </dataHost> <dataHost name="localhost2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.189.181:3307" user="root" password="root"></writeHost> </dataHost> <dataHost name="localhost3" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.189.181:3308" user="root" password="root"></writeHost> </dataHost> |
5.创建db,创建表
create table travelrecord (id bigint not null primary key,user_id varchar(100),traveldate DATE, fee decimal,days int); |
执行插入操作,
insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10); insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,'Job',20160102,100,10); insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,'Slow',20160103,100,10); select * from travelrecord; |