What to do if your WordPress host IP changed

If your WordPress host IP changed accidently and and you can not login into WordPress, there are several ways to update the site URL without logging in. Then your site will be working properly. If your site does not, check your .htacess file in which you may have settled some redirect rules with the old IP, replace all the old IP with the new IP.

Change the site URL

Changing the site URL provides several ways to change the site URL and this article gives two more ways, choose one you like and then try to refresh your site a couple of times, your site will be OK.

Change URL in database through phpmyadmin

Even your WordPress site does not load, you can access the phpmyadmin tool.

In wp_options table, update two records whose option_name is siteurl or home. Make the records are listed ascendingly by option_id, you can easy find these two records.

Change URL in database through terminal

Open a terminal, connect mysql with mysql -u root -p or /path/to/your/mysql -u root -p if your mysql is not in the path. Here it suppose your mysql user is root. It will prompt you input the password. If you forget, check them in your wp-config.php file.

Input use to select the database you want to change. You can also find the database name in your wp-config.php file. Then you can update the options whose option_name is siteurl or home like below.

# Connect mysql
$ /myfolder/mysql/bin/mysql -u root -p
Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 2
Server version: 10.1.31-MariaDB mariadb.org binary distribution
...

# Choose database
MariaDB [(none)]> use my-database-name
Database changed
MariaDB [training]>

# You can check the old values for the option whose option_name in ('siteurl', 'home')
MariaDB [training]> select * from wp_options where option_name in ('siteurl', 'h
ome')
    -> ;
+-----------+-------------+----------------------+----------+
| option_id | option_name | option_value         | autoload |
+-----------+-------------+----------------------+----------+
|         2 | home        | http://xxx.xxx.x.xxx | yes      |
|         1 | siteurl     | http://xxx.xxx.x.xxx | yes      |
+-----------+-------------+----------------------+----------+
2 rows in set (0.12 sec)

# Update the values with the new IP
MariaDB [training]> update wp_options set option_value="http://192.168.1.100" wh
ere option_name in ('siteurl', 'home')
    -> ;
Query OK, 2 rows affected (0.09 sec)
Rows matched: 2  Changed: 2  Warnings: 0

MariaDB [training]> exit
Bye

Edit functions.php

Edit your functions.php of your currently used theme, add these two temporary lines to the file, immediately after the initial <?php line:

update_option( 'siteurl', 'http://192.168.1.100' );
update_option( 'home', 'http://192.168.1.100' );

Use your own IP instead of 192.168.1.100.

Load the admin page a couple of times, the site should come back up. Then remove them after the site is up and running again.

Edit wp-config.php

Add these two lines to your wp-config.php, where “example.com” is the correct location of your site.

define( 'WP_HOME', 'http://example.com' );
define( 'WP_SITEURL', 'http://example.com' );

Note it’s just hard-coding the values into the site itself. You won’t be able to edit them on the General settings page anymore when using this method.

Change old IP in your .htaccess file if any

If your site does not come back, check your .htaccess (probably the top-level .htaccess) file and replace all the old IP with the new one if any.