A MySQL Storage Engine for AWS S3 0.06

A MySQL Storage Engine for AWS S3 is a plugin storage engine that allows MySQL to access Amazon Web Services.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
GPL (GNU General Public License) 
2.9/5 22
Mark Atwood
ROOT \ Database \ Database Engines
A MySQL Storage Engine for AWS S3 project is a plugin storage engine that allows MySQL to access Amazon Web Services Simple Storage Service (AWS S3) buckets and items.

You need a MySQL source tree, and you need to have it built.

Figure out where the source tree is.
In my case it's /home/mark/mysql/mysql-5.1-arch
Figure out where the target install tree is.
In my case it's /home/mark/mysql/builds/example
Figure out where the MySQL build puts storage engine plugins.
It's probably in lib/mysql under the install tree
Or it's /usr/lib/mysql
Or it's /usr/local/lib/mysql
For me it's /home/mark/mysql/builds/example/lib/mysql

Then run:

./configure --with-mysql=/path/to/mysql-source --libdir=/path/to/mysql-plugins
make && make install

You can optionally copy the "src" directory here into storage/ in the
MySQL server source, rebuild MySQL, and things should compile.

Next, you should probably install the S3 command line tools.
They depend on you having Python.

Get them at http://www.hanzoarchives.com/development-projects/s3-tools/

If you don't have one yet, you need an Amazon AWS account, and then
request that they enable S3. Go to http://amazonaws.com/ to do that.
You will need to get your "AWS Access Key Identifiers".

Assume they are


(I just made those up with a random number generator.)

Put this in your .bashrc file


This isnt used by the storage engine, but it makes using the s3 command
line tools easier.

Use s3mkbucket to create a bucket. Remember that buckets are in a
global namespace, and there are advantages to having them look lik a
domain name. I suggest you snap up "s3.example.com", where
"example.com" is your own domain name.

s3mkbucket s3.example.com
s3put -k solfege/Do -s "a deer, a female deer" s3.example.com
s3put -k solfege/Re -s "a drop of golden sun" s3.example.com
s3put -k solfege/Mi -s "a name I call myself" s3.example.com
s3put -k solfege/Fa -s "a long long way to run" s3.example.com
s3put -k solfege/So -s "a needle pulling thread" s3.example.com
s3put -k solfege/La -s "a note to follow So" s3.example.com
s3put -k solfege/Ti -s "a drink with jam and bread" s3.example.com

Then at the mysql> prompt

create table s3notes (s3id varchar(255) not null primary key, s3val blob)
connection='awss3 s3.example.com FV8CY5793BC7CY32YOSN W9oQxQNJizGgjxNc82giE9/ipefQW19tuO2xpC9G';
select * from s3notes where s3id='solfege/Re';
insert into s3notes (s3id, s3val) values ('color/Red', 'ff 00 00');
select * from s3notes where s3id='color/Red';
delete from s3notes where s3id='color/Red';

You can name the table anything you want, but the fields must be named s3id and s3val, and s3id must be the primary key.

What's New in This Release:

More flexible schema, CREATE SERVER, and SELECT without WHERE are supported.

Last updated on April 20th, 2007

#database storage #database engine #AWS storage #MySQL #database #storage #engine

Add your review!