WordPress.org

Support

Support » Multisite » [Resolved] Migrating WPMS from apache to IIS7 causes Database Error

[Resolved] Migrating WPMS from apache to IIS7 causes Database Error

  • I have a large multisite installation hosted on XAMPP on an XP 2003 server and am trying to move it to a new Windows 2008 server with IIS7.

    I can successfully get fresh installs of WP up and running and can get multisite working perfectly. But, when I import my old WPMS MySQL database and change the DB_NAME in my wp-config.php file to have the old WPMS database instead of the new WPMS database, I’m hit with “Error establishing database connection”

    Here are my wp-config.php settings:

    // ** MySQL settings - You can get this info from your web host ** //
    /** The name of the database for WordPress */
    define('DB_NAME', 'migrated_WPMS_database');
    
    /** MySQL database username */
    define('DB_USER', 'wpms_user');
    
    /** MySQL database password */
    define('DB_PASSWORD', 'wpms_password');
    
    /** MySQL hostname */
    define('DB_HOST', 'localhost');
    
    /** Database Charset to use in creating database tables. */
    define('DB_CHARSET', 'utf8');
    
    /** The Database Collate type. Don't change this if in doubt. */
    define('DB_COLLATE', '');

    I’ve double checked the username & password and even changed them several times to make sure they matched up. I’ve tried localhost, 127.0.0.1, and the IP address of my server itself for the DB_NAME. Nothing.

    Does anyone have any ideas or had this issue before?

Viewing 15 replies - 1 through 15 (of 22 total)
  • // UPDATE

    I’ve successfully connected to the database finally!

    Visiting the front page of the domain (http://domain.com) gave me the Error establishing database connection message, but trying to visit the dashboard/admin area (http://domain.com/wp-admin) helped me see the problem: In my many DB/user name changes, I neglected to give full permissions to wpms_user_2012 on migrated_DB_2012. D’OH!

    New Problem

    I still get the database error when visiting the front page, but now when I visit /wp-admin, I see the following:

    One or more database tables are unavailable. The database may need to be repaired.

    When I follow the “repair” link, it walks me through the auto-repair sequence, but since this is a multisite installation, it skips over a few tables and tells me the following tables don’t exist:

    • wp_posts
    • wp_comments
    • wp_links
    • wp_options
    • wp_postmeta
    • wp_terms
    • wp_term_taxonomy
    • wp_term_relationships
    • wp_commentmeta

    Only, these tables do exist, but they exist as: wp_1_posts,
    wp_1_comments, etc.

    What should the next steps be to get my migrated DB to work properly?

    How did you import the db?

    Have you run a repair on the DB just to be sure?

    If you use a different DB (say one that was created on that server) does it work?

    Ipstenu, thanks for the reply.

    For this installation, I started from scratch with a fresh install of WP, set it up with a network and then copied the old /blogs.dir over to the new wp-content/.

    (Reasoning for fresh install: I believe my old site had been hacked and I wanted to prevent any compromised core files from being transferred over to the new server.)

    Next, I imported my old database (migrated_WPMS_database) into MySQL via phpMyAdmin, gave the appropriate privileges to the wpms_user and set up wp-config.php with the proper database/user/password information.

    I ran the WP repair and you can see my follow-up comment for the results. Basically, it was telling me that the main site’s tables weren’t there: I’ve read that the “repair” feature doesn’t work well with WPMS because it looks for wp_[tableNames] instead of wp_1_[tableNames]. Am I mistaken?

    After this, I even went through phpMyAdmin and ran it’s built in “repair”, also.

    I can still connect successfully to the fresh install’s database (test_database) if I change wp-config.php accordingly. So, it is seeing that it is a network and it is able to connect to the database server successfully, too.

    Based on the WP Repair results, it seems WP is still looking for wp_[tableNames] instead of wp_1_[tableNames], is that right? Why would it do this? There’s got to be something I’m missing inside the migrated database’s tables or something, because of the message I receive when trying to access wp-admin:

    One or more database tables are unavailable. The database may need to be repaired.

    If it helps, my OLD site was set up as WPMU back before the merge, so the OLD wp-config.php is set up slightly different, and if I use it instead of the newer 3.3 wp-config.php, my front-end becomes a blank screen and I’m able to get to the wp-login screen but it just puts me into a redirect loop back to the login page.

    If it helps, my OLD site was set up as WPMU back before the merge, so the OLD wp-config.php is set up slightly different, and if I use it instead of the newer 3.3 wp-config.php, my front-end becomes a blank screen and I’m able to get to the wp-login screen but it just puts me into a redirect loop back to the login page.

    *ugh* That makes ‘sense’.

    Okay, don’t use the WordPress repair tool. It has weird issues with the old WPMU upgraded installs. Just go in and run a repair through phpMyAdmin.

    Here are the wp-config files to compare:

      They’re both WPMS now, but I’m using MU & MS to differentiate between the two files. Still basically the same, just a few things have changed in wp-config.php.

      For example, the old file used define('VHOST', 'no'); to say to use subdirectories & not subdomains. New version uses define( 'SUBDOMAIN_INSTALL', false );.

      I guess there could be something here that’s causing the problem, but I’m not sure. So frustrating…

    Ipstenu, I have repaired the files via WordPress and phpMyAdmin already… 🙁

    I’ll try resetting IIS & clearing caches to see if that’s all that’s happening now.

    //edit

    That did not work :/

    Hmm, I’ll try reimporting the database, because I DID try to use the built in WordPress repair tool before I tried via phpMyAdmin. We’ll see if that makes a difference 🙂

    It might. Also double check what versions of MySQL you were running on the old and new machines.

    Is there any possibility of using the WordPress importer?

    I didn’t think about the MySQL versions. I’ll check into that. If they are different, what can I do to get my old DB to play nice with the new version of MySQL?

    I have roughly 150 sites, so the Importer isn’t totally out of the question, but it is definitely a last resort :/

    Yowch.

    The difference should only matter if it’s a major release (like 5.2 to 5.3).

    Well, looks like the old one was 5.1.41 & the new one is 5.1.57, so that’s out. And, I tried reimporting and repairing via phpMyAmin only this time to no avail.

    Even though this is from an upgraded WPMU install, shouldn’t I be able to import the DB from WPMU into a newer WPMS site? At least, in theory I’d think so.

    Yes, you should be able to just pick the DB up, and the files, and drop it on the new box… The only thing that’s left is the fact that you’re going from Apache to IIS…

    Even though this is from an upgraded WPMU install, shouldn’t I be able to import the DB from WPMU into a newer WPMS site? At least, in theory I’d think so.

    Yes… except for the main site. You HAVE TO rename the tables from wp_1_whatever to just wp_whatever.

    Andrea_r, thanks for the response! That let me get to the login screen.

    Was that a recent change? Or something implemented during the merge? Or just something you have to do when moving between Apache & Windows?

    I’m getting a redirect loop on the login screen for the main site; however, I’m able to login to my sub-sites with the admin login info and get to all my subsites’ dashboards. It looks like all the posts are there; the Media links are broken.

    All my sites are giving me a blank screen when I visit the front-end and I can’t get to the network dashboard or log into the main site’s dashboard for the life of me.

    Off to research these new problems 🙂

    I imagine if you just picked up everything and dropped it in the new place, files and DB and all, it would have been okay…

    :/ Agreed.

    Buuut, my SysAdmin told me he was getting some weird outgoing traffic coming from our WPMU site; then we received an email from our ISP: they were getting DDOS attacks coming from our WPMS site. I did everything I could think of to track down the culprit(s), but nothing’s worked and whatever is doing this has just been scanning through our ports to find an open one for it to use to do whatever it’s going to do 🙁

    We’ve been needing to switch our blogs to this new server anyway, so I figured this would be as good a time as any. I knew it’d be a tough transition – move from XAMPP on XP ’03 to Win08 IIS7 – but I had no idea I’d have this much trouble.

    I may end up having to do a back up of everything I have done so far and try what you suggested: just pick it all up, drop it on the new server, pray there’s no malicious code hitch-hikers and see what happens.

    Still, I’d love to figure this out for future reference (for myself and others).

Viewing 15 replies - 1 through 15 (of 22 total)
  • The topic ‘[Resolved] Migrating WPMS from apache to IIS7 causes Database Error’ is closed to new replies.