XF 1.1 IPB 3.1 Import - can't continue import

lasertits

Active member
Putting the quick question here in case someone can answer this without reading the wall of text below: is there anywhere I can possibly find how the IPB Importer (which is mid-way through an import) is currently configured in terms of what database it pulls data from? Because I need to ensure the user/database name/user pass, match what I have configured on mysql. I explain it better below.

Hello,

A month ago I imported the User Groups and Forums to my XF install to setup permissions and the like. Tonight I'm ready to actually launch and move the database from IPB over, but I can't continue the import.

I go to import Custom User Fields and I get:
mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file
  1. Zend_Db_Adapter_Mysqli->_connect() in Zend/Db/Adapter/Abstract.php at line 858
  2. Zend_Db_Adapter_Abstract->quote() in XenForo/Importer/IPBoard.php at line 500
  3. XenForo_Importer_IPBoard->stepUserFields() in XenForo/Importer/Abstract.php at line 77
  4. XenForo_Importer_Abstract->runStep() in XenForo/ControllerAdmin/Import.php at line 180
  5. XenForo_ControllerAdmin_Import->_runStep() in XenForo/ControllerAdmin/Import.php at line 232
  6. XenForo_ControllerAdmin_Import->_startStep() in XenForo/ControllerAdmin/Import.php at line 175
  7. XenForo_ControllerAdmin_Import->actionStartStep() in XenForo/FrontController.php at line 310
  8. XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 132
  9. XenForo_FrontController->run() in /var/www/htdocs/admin.php at line 13

But I don't think this is the issue. I think the issue is the IPB Importer is just configured improperly... the database and/or user it initially used is now different.

When I did import the user groups and forums, what I did was I exported the IPB database off the old host, imported it into a NEW database / new user on mysql on the new current webserver which XenForo is on (this was just for faster importing and less chance of any timeouts or faults).

Now, between doing that, and wanting to import the rest of IPB tonight, I did an OS reinstall on the server XenForo is on, and I didn't bother saving the IPB database I made because I knew in a few weeks time, I'd be exporting the database from IPB again, and re-making it on the new server for the final import, where I can import the rest of the IPB data.

So the problem with this is, the IPB importer on Xenforo is currently mid-way, but it's possibly configured with a database connection setup that doesn't match the current database setup on the actual mysql server.

Thus the importer on XenForo might think the database its trying to pull from is called 'ipb' but I now have it called 'ipb_import' on the mysql server because I can't remember exactly what names I used a month ago.

I would hopefully presume if I could get the database/user setup to match what the importer was originally configured to, it would possibly work.

But short of that, I did try to dig into the error XF printed. I've tried with old-passwords on, and off, didn't make a difference. Also did the following:
SET old_passwords = 0;
UPDATE mysql.user SET Password = PASSWORD('testpass') WHERE User = 'testuser' limit 1;
SELECT LENGTH(Password) FROM mysql.user WHERE User = 'testuser';
FLUSH PRIVILEGES;

Still no dice. I should also note I've verified the password for the user is length 41, not 16, so it's the new type.

I'm pretty stumped at this point, but is there anywhere I can possibly find how the IPB Importer is currently configured in terms of what database it pulls data from?

Alternatively if you have any suggestions for the actual error I'd appreciate it greatly.

Hopefully someone can help, I really hope to get this going really soon, already getting late and I was supposed to launch today. Thanks in advance.
 
During an import session the credentials for the source database are stored in the xf_data_registry table (data_key = importSession). You can run this query to view the information:

Code:
SELECT CONVERT(data_value USING utf8)
FROM xf_data_registry
WHERE data_key = 'importSession';

The data is serialized but readable. If the credentials for the source database have changed mid import then that definitely needs to be reconciled before proceeding with the import.

This document explains the password thing:
http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html

It looks like the MySQL user has an old password hash but your client doesn't support that. A fix is to update the password in MySQL to use the long hash (which you already did O_o).
 
I was looking at that myself but wasn't sure if that was it. I've updated that with the new current db/user info, and I still get the error when trying to move forward.

Also tried updating the conf_global.php inside IPB to use the new DB / user values and still no dice. And yeah, the user's hash was definitely updated:

mysql> SELECT LENGTH(Password) FROM mysql.user WHERE User = 'ipb_import';
+------------------+
| LENGTH(Password) |
+------------------+
| 41 |
| 41 |
+------------------+
2 rows in set (0.00 sec)


Since I'm pretty stumped at this point, I'm going to go back and make sure it wasn't my own dumb fault somewhere.
 
I was looking at that myself but wasn't sure if that was it. I've updated that with the new current db/user info, and I still get the error when trying to move forward.

If you mean you edited the serialized information in the import session... be very careful when doing that. You must be mindful of the lengths when editing serialized data.
 
Well I've gone over it all and I can't find any problem area... I've tried variations of what I'm entering as well, I figured the ipboard_path could be wrong or picky with slashes...

ipb
/ipb
ipb/
/var/www/htdocs/ipb
/var/www/htdocs/ipb/

Still getting the error. I know the user / pass / database / table prefix are all correct though, so I'm not sure what's going on still.

If you mean you edited the serialized information in the import session... be very careful when doing that. You must be mindful of the lengths when editing serialized data.

Serialized data is definitely something I'm not familiar with. Not sure how this would play into my edits...

are all the s:#'s, such as s:10, in reference to the character length of whatever follows? so s:10:"pass" would mean there was a pass there, but it was 10 chars in length, nor 4 like 'pass' is?
 
Top Bottom