samzyy / db-based-replicated-filesystem Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v2.0
License: GNU General Public License v2.0
mysqlfs - MySQL FileSystem $Id: README 55 2009-07-12 22:23:33Z chickenandporn $ MySQLfs is a FUSE filesystem driver which stores files in a MySQL database. * Requirements - mysql-client libraries 5.0 or later - mysql-server 5.0 or later - fuse 2.5 or later - autotools * Build If compiling from version-control, use "autoreconf -vfi" first. For both version-control and tarball version run: $ ./configure $ make * Usage 1. Create database and account mysql> CREATE DATABASE mysqlfs; mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON mysqlfs.* TO mysqlfs@"%" IDENTIFIED BY 'password'; mysql> FLUSH PRIVILEGES; (note FAQ: Errors #1 "Access Denied For User" below) 2. Create tables $ mysql -uroot -p mysqlfs < schema.sql (note FAQ: Errors #2 "Can't Create/Write to File" below) 3. Mount database as a filesystem $ mkdir fs $ ./mysqlfs -ohost=localhost -ouser=user -opassword=pass -odatabase=mysqlfs fs 4. Instead of setting connection options on the command line you may create a [mysqlfs] section in your ~/.my.cnf file and set the parameters there. * Options -ohost=<hostname> MySQL server host -ouser=<username> MySQL username -opassword=<password> MySQL password -odatabase=<db> MySQL database name * FAQ: ERRORS 1. Access Denied For User 'mysql'@'localhost' ie: (using the example GRANT above) $ ./mysqlfs -ohost=localhost -ouser=mysqlfs -opassword=password -odatabase=mysqlfs fs 2009-06-14 00:59:29 89956 ERROR: mysql_real_connect(): Access denied for user 'mysqlfs'@'localhost' (using password: YES) 2009-06-14 00:59:29 89956 ERROR: mysql_real_connect(): Access denied for user 'mysqlfs'@'localhost' (using password: YES) 2009-06-14 00:59:29 89956 Failed to connect MySQL server. 2009-06-14 00:59:29 89956 Error: pool_init() failed MySQL is sticky sometimes with access; on MacOSX, I had to specifically allow localhost: mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON mysqlfs.* TO mysqlfs@"localhost" IDENTIFIED BY 'password'; $ sudo /usr/local/mysql/bin/mysqladmin reload Remember, also, that 'localhost' and '127.0.0.1' may appear differently. Check also your /etc/hosts entry, some systems define 127.0.0.1 as their uname() which causes problems doing PTRs against it, expecting 'localhost' but getting 'myhostname' 2. Can't Create/Write to File (while building database) ie: (using the "Create tables" step #2 above) $ sudo /usr/local/mysql/bin/mysql mysqlfs < schema.sql ERROR 1 (HY000) at line 23: Can't create/write to file '/usr/local/mysql/data/mysqlfs/data_blocks.MYI' (Errcode: 13) On MacOSX with http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.35-osx10.5-x86.dmg , rather than "CREATE DATABASE mysqlfs", I had to use: $ sudo /usr/local/mysql/bin/mysqladmin create mysqlfs && sudo chown _mysql /usr/local/mysql/data/mysqlfs The grant/flush commands worked fine after that. In my usage, I'm "sudo" which can affect the output, so the error might have been mine alone. I'm commenting here in case someone else sees it. Copyright (C) 2006 Tsukasa Hamano <[email protected]> Copyright (C) 2006 Michal Ludvig <[email protected]>
Is this project still active?
Haven't seen any activity in a while.
I'm looking into it and would like to work on it if it's active.
Would you like to add more error handling for return values from functions like the following?
Would you like to add the configuration script “AX_PTHREAD” to your build specification?
Creating a file called `FOO' and a file called 'foo' end up being the same file.
Hi,
Wonderfull project, this kind of projects with curousity the primairy focus are in my opinion the most worthfull research projects out there.
Having said that, i have some questions/considerations:
If you get great results, im sure the Ceph team is interested and they have much more manpower to make something of the project.
Some disclaimer here: Im no way an expert, so i can easilly be proven wrong, so comments welcome!
Currently I can do
mkdir foo
touch foo/bah
mkdir xxx
rename("xxx", "foo")
The result is that the rename succeeds and bah becomes an orphan in the inodes and tree tables,
What should happen is an EEXIST or ENOTEMPTY error return from rename().
Should be 2 plus the number of subdirectories (.. is a lnk)
It sounds like this would be a trivial feature to implement. Just leaving a note in case someone wants to try it.
Orpahned files/directories should be cleaned up somehow --- added to /lost+found perhaps --- on fsck.
An orphan is a tree entry where the parent is not in the tree.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.