This isn't a request for help, but a guide for other folks who try to install status.net to a DreamPlug. The DreamPlug currently (October 2011) comes preinstalled with a custom distribution of Debian Lenny, which has a few quirks we need to work around. I installed it today and this is what I had to do to get it working.
1. While installing statusnet, you're getting this error:
Initializing...
Starting installation...
Checking database...
Database error: communication failure
You're using the wrong MySQL user account/password. Test the account and password you want to use with:
mysql -u (user) -p (password)
If it won't let you in, and you don't know the root user's password, follow this tutorial to reset the password:
http://www.debian-administration.org/articles/442After you do, enter the user you created and its password (or "root" and that password) in the database user and password fields. I used the root account just to make sure it worked.
----
2. While installing statusnet, you're getting this error:
Initializing...
Starting installation...
Checking database...
Creating database tables...
Database error: DB Error: unknown error
MySQL can't write to the /tmp directory. Fix it with this post:
http://nixcraft.com/databases-servers/14260-error-1-hy000-cant-create-write-file-tmp-sql_9f3_0-myi-errcode-13-a.html#post23571It took a day of digging to figure that one out. The stacktrace follows (it goes as far back as I could trace it, using the fantastic debugging technique of "echo 'hi';" to see if a line executed). For future reference, printing a full stacktrace if an unknown error occurs during install would be awesome. Hint hint.
----
#0 Schema->fetchQueryData(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='statusnet' AND TABLE_NAME='schema_version' ORDER BY ORDINAL_POSITION) called at [lib/mysqlschema.php:231]
#1 MysqlSchema->fetchMetaInfo(schema_version, COLUMNS, ORDINAL_POSITION) called at [lib/mysqlschema.php:87]
#2 MysqlSchema->getTableDef(schema_version) called at [lib/schema.php:550]
#3 Schema->buildEnsureTable(schema_version, Array ([description] => To avoid checking database structure all the time, we store a checksum of the expected schema info for each table here. If it has not changed since the last time we checked the table, we can leave it as is.,[fields] => Array ([table_name] => Array ([type] => varchar,[length] => 64,[not null] => 1,[description] => Table name),[checksum] => Array ([type] => varchar,[length] => 64,[not null] => 1,[description] => Checksum of schema array; a mismatch indicates we should check the table more thoroughly.),[modified] => Array ([type] => timestamp,[not null] => 1,[description] => date this record was modified)),[primary key] => Array ([0] => table_name))) called at [lib/schema.php:502]
#4 Schema->ensureTable(schema_version, Array ([description] => To avoid checking database structure all the time, we store a checksum of the expected schema info for each table here. If it has not changed since the last time we checked the table, we can leave it as is.,[fields] => Array ([table_name] => Array ([type] => varchar,[length] => 64,[not null] => 1,[description] => Table name),[checksum] => Array ([type] => varchar,[length] => 64,[not null] => 1,[description] => Checksum of schema array; a mismatch indicates we should check the table more thoroughly.),[modified] => Array ([type] => timestamp,[not null] => 1,[description] => date this record was modified)),[primary key] => Array ([0] => table_name))) called at [lib/installer.php:364]
#5 Installer->createCoreTables(DB_mysqli Object ([phptype] => mysqli,[dbsyntax] => mysqli,[features] => Array ([limit] => alter,[new_link] => ,[numrows] => 1,[pconnect] => ,[prepare] => ,[ssl] => 1,[transactions] => 1),[errorcode_map] => Array ([1004] => -15,[1005] => -15,[1006] => -15,[1007] => -5,[1008] => -17,[1022] => -5,[1044] => -26,[1046] => -14,[1048] => -3,[1049] => -27,[1050] => -5,[1051] => -18,[1054] => -19,[1061] => -5,[1062] => -5,[1064] => -2,[1091] => -4,[1100] => -21,[1136] => -22,[1142] => -26,[1146] => -18,[1216] => -3,[1217] => -3,[1356] => -13,[1451] => -3,[1452] => -3),[connection] => mysqli Object ([affected_rows] => ,[client_info] => ,[client_version] => ,[connect_errno] => ,[connect_error] => ,[errno] => ,[error] => ,[field_count] => ,[host_info] => ,[info] => ,[insert_id] => ,[server_info] => ,[server_version] => ,[sqlstate] => ,[protocol_version] => ,[thread_id] => ,[warning_count] => ),[dsn] => Array ([phptype] => mysqli,[dbsyntax] => mysqli,[username] => (aUserName),[password] => (aPassword){qF,[protocol] => tcp,[hostspec] => localhost,[port] => ,[socket] => ,[database] => statusnet),[autocommit] => 1,[transaction_opcount] => 0,[_db] => statusnet,[mysqli_flags] => Array ([1] => not_null,[2] => primary_key,[4] => unique_key,[8] => multiple_key,[16] => blob,[32] => unsigned,[64] => zerofill,[512] => auto_increment,[1024] => timestamp,[2048] => set,[32768] => group_by),[mysqli_types] => Array ([0] => decimal,[1] => tinyint,[2] => int,[3] => int,[4] => float,[5] => double,[7] => timestamp,[8] => bigint,[9] => mediumint,[10] => date,[11] => time,[12] => datetime,[13] => year,[14] => date,[247] => enum,[248] => set,[249] => tinyblob,[250] => mediumblob,[251] => longblob,[252] => blob,[253] => varchar,[254] => char,[255] => geometry,[16] => bit,[246] => decimal),[fetchmode] => 1,[fetchmode_object_class] => stdClass,[was_connected] => ,[last_query] => ,[options] => Array ([result_buffering] => 500,[persistent] => ,[ssl] => ,[debug] => 0,[seqname_format] => %s_seq,[autofree] => ,[portability] => 0,[optimize] => performance),[last_parameters] => Array (),[prepare_tokens] => Array (),[prepare_types] => Array (),[prepared_queries] => Array (),[_last_query_manip] => ,[_next_query_manip] => ,[_debug] => ,[_default_error_mode] => ,[_default_error_options] => ,[_default_error_handler] => ,[_error_class] => DB_Error,[_expected_errors] => Array ())) called at [lib/installer.php:313]
#6 Installer->setupDatabase() called at [lib/installer.php:576]
#7 Installer->doInstall() called at [install.php:287]
#8 WebInstaller->handlePost() called at [install.php:125]
#9 WebInstaller->main() called at [install.php:389]
Comments
$ mysqladmin -u "username" --password="password" create gnusocial
And then, from in mysql itself:
GRANT ALL on gnusocial.*
TO 'SocialAdminUser'@'localhost'
IDENTIFIED BY 'SocialPassword';
This assumes that you use "gnusocial" as your database name.