Installing Status.Net to a DreamPlug

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/442

After 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#post23571

It 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

  • Aside: this also solves these same issues for Gnu-Social, if you make sure to:

    $ 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.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Google Sign In with OpenID