Я не знаком с Облаком Ubuntu, поэтому возьмите это с огромной мелкой частицей соли. GlusterFS может быть настроен для обеспечения, устройство хранения данных как Вы хотят. Может быть производительность, вовлекает для того, чтобы сделать это также.
При попытке израсходовать каждый последний небольшой гигабайт, Вы уехали, время, вероятно, для нового HD (или три). Если Вы просто ищете кластерную файловую систему, таким образом, VMs может быть возвращен вокруг к различным хостам легко, Gluster, вероятно, что Вы ищете.
Возможно, вам придется взломать его, используя таблицы схемы mysql, чтобы предоставить необходимые вам гранты:
Прежде всего, вот описание mysql.tables_priv
mysql> show create table mysql.tables_priv\G
*************************** 1. row ***************************
Table: tables_priv
Create Table: CREATE TABLE `tables_priv` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Grantor` char(77) COLLATE utf8_bin NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') CHARACTER SET utf8 NOT NULL DEFAULT '',
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Table privileges'
1 row in set (0.00 sec)
mysql>
Возможно, вам придется собрать все базы данных, которые имеют mytable и добавляют строку '.mytable'
SELECT CONCAT(table_schema,'.',table_name) my_table
FROM information_schema.tables WHERE table_name = 'mytable';
Затем возьмите этот список и создайте соответствующее разрешение для этого списка таблиц для каждого конкретного пользователя
SELECT CONCAT('GRANT ALL PRIVILEGES ON ',my_table,' TO ',userhost,';') SQLGrantCommand
FROM
(
SELECT CONCAT('''',user,'''.''',host,'''') userhost
FROM mysql.user WHERE user NOT IN ('','root')
) user_list,
(
SELECT CONCAT(table_schema,'.',table_name) my_table
FROM information_schema.tables WHERE table_name = 'mytable';
) table_list;
. Вы должны взять этот запрос и экспортировать его в текст файл с именем /root/GlobalTableGrants.sql
mysql -uroot -A --skip-column-names -e"SELECT CONCAT('GRANT ALL PRIVILEGES ON ',my_table,' TO ',userhost,';') SQLGrantCommand FROM (SELECT CONCAT('''',user,'''.''',host,'''') userhost FROM mysql.user WHERE user NOT IN ('','root')) user_list,(SELECT CONCAT(table_schema,'.',table_name) my_table FROM information_schema.tables WHERE table_name = 'mytable') table_list" > /root/GlobalTableGrants.sql
. Теперь просто войдите в систему, чтобы запустить этот сценарий mysql
mysql> source /root/GlobalTableGrants.sql
После запуска сценария сделайте следующее
SELECT * FROM mysql.tables_priv WHERE table_name = 'mytable'\G
Вы должны видеть каждое вхождение my_table с включенными привилегиями уровня таблицы. попробуйте !!!