Joshua Barreiro Posted March 7, 2021 Posted March 7, 2021 My site-after many years of just humming away-is now inoperable. It happened yesterday afternoon. The board URL just started throwing a generic 500 error: ~~~ An error occurred (500 Error) We're sorry, but a temporary technical error has occurred which means we cannot display this site right now.Access denied for user [user]@'localhost' to database 'dbname' You can try again by clicking the button below, or try again later.Try again ~~~ The error log in cpanel has a similar error: ~~~ [Sat Mar 06 20:14:25.494342 2021] [lsapi:error] [pid 3412119:tid 140091078833920] [client 107.203.104.168:48204] [host corpus-scientia.com] Backend fatal error: PHP Fatal error: Uncaught IPS\\Db\\Exception: Access denied for user [user]@'localhost' to database 'dbname' in /home/nnnnnn/public_html/forum/system/Db/Db.php:269\nStack trace:\n#0 /home/nnnnnn/public_html/forum/system/Db/Db.php(356): IPS\\_Db->_establishConnection(false)\n#1 /home/nnnnnn/public_html/forum/system/Db/Db.php(487): IPS\\_Db->checkConnection(false)\n#2 /home/nnnnnn/public_html/forum/system/Db/Db.php(979): IPS\\_Db->preparedQuery('REPLACE INTO `c...', Array)\n#3 /home/nnnnnn/public_html/forum/system/Session/Admin.php(112): IPS\\_Db->replace('core_sys_cp_ses...', Array)\n#4 [internal function]: IPS\\Session\\_Admin->write('adcf37cfe83b774...', '')\n#5 [internal function]: session_write_close()\n#6 {main}\n thrown in /home/nnnnnn/public_html/forum/system/Db/Db.php on line 269\n, referer: http://domain.com/forum/admin/ ~~~ The db passes consistency checks. There have been no changes to the site in ages. There are literally 2 users, and the spam protection from IP.Board keeps most unwanted traffic away. I'm having a hard time telling if I should inquire here or with my host. Any ideas? Thanks!
Adriano Faria Posted March 7, 2021 Posted March 7, 2021 Have you changed the DB password? Check the user and password in the conf_global.php file.
Joshua Barreiro Posted March 7, 2021 Author Posted March 7, 2021 Since nobody but me has access to the hosting account, that shouldn't have happened. As a precaution, I changed the password of the user to the value present in conf_global.php and it's still broken.
Joshua Barreiro Posted March 7, 2021 Author Posted March 7, 2021 I think my host realized my DB had gotten a little large and decided to move it, and then screwed up some settings when they moved it. Are there some purge settings I can use to shrink my DB?
opentype Posted March 7, 2021 Posted March 7, 2021 Yes, but you should rather identify which tables are actually too large (e.g. in phpMyAdmin) instead of using purging options hoping something improves.
Joshua Barreiro Posted March 7, 2021 Author Posted March 7, 2021 Yeah, I realized that when asked, and honestly I don't plan on putting that much effort into this site. TBH, I went over my hosting agreement-standard linux GoDaddy-and it doesn't have a DB size limit listed. So they can pound sand.
Linux-Is-Best Posted March 7, 2021 Posted March 7, 2021 4 minutes ago, Joshua Barreiro said: Yeah, I realized that when asked, and honestly I don't plan on putting that much effort into this site. TBH, I went over my hosting agreement-standard linux GoDaddy-and it doesn't have a DB size limit listed. So they can pound sand. Please respectfully understand there will always be a limitation when using shared web hosting, even when not correctly specified. It is the business model of most shared web hosting providers to oversell their resources under the assumption that most people will never use what was advertised. You are now experiencing the early signs of having outgrown shared hosting. It would help if you started taking measures now to secure your site's future. The last thing you will want to experience is your host surprising you with notice, informing you they believe you are overusing their allowed resources. That can often end poorly to various degrees. I would suggest you look into a VPS (virtual private server). Please understand that a "reseller" is not a VPS and is a shared hosting account with extra features. Only a VPS will provide you with the dedicated resource will require.
Joshua Barreiro Posted March 7, 2021 Author Posted March 7, 2021 So, I'm not a DBA and I don't really intend to become one. How can I whittle this DB down to size? It's fallen over again, and I'm working with the host, but for a low-traffic site, I can't justify putting more money into the hosting. VPS is just not going to happen. Would splitting DBs work for IP.Board?
Miss_B Posted March 7, 2021 Posted March 7, 2021 12 minutes ago, Joshua Barreiro said: So, I'm not a DBA and I don't really intend to become one. How can I whittle this DB down to size? It's fallen over again, and I'm working with the host, but for a low-traffic site, I can't justify putting more money into the hosting. VPS is just not going to happen. Would splitting DBs work for IP.Board? What tables have grown up in size? You can truncate the logs table to trim the database down btw. But before you do anything, make first a backup. What do you mean by splitting the database?
Linux-Is-Best Posted March 7, 2021 Posted March 7, 2021 25 minutes ago, Joshua Barreiro said: So, I'm not a DBA and I don't really intend to become one. How can I whittle this DB down to size? It's fallen over again, and I'm working with the host, but for a low-traffic site, I can't justify putting more money into the hosting. VPS is just not going to happen. Would splitting DBs work for IP.Board? I am sorry you feel that way, although I think you are fighting against the inevitable. As forums grow, so does their database and file size, and that remains proportional to their storage, ram, and CPU usage. You can prune your post, threads, attachments, and even members if you are willing to make those sacrifices; you should be fine staying with shared hosting. If not, you must learn to accept the reality of how a dynamic website changes and grows over time. Fear not, though. A simple VPS (virtual private server), when well optimized, can be very affordable. DigitalOcean, for example, can start as low as €5. That is only one example of one possible provider. My point is that VPS does not need to cost more than shared hosting when you start.
bfarber Posted March 8, 2021 Posted March 8, 2021 Go into phpmyadmin in your cpanel control panel and sort the database tables by size. There may be cached page outputs stored that are consuming a lot of space, or the log table may have grown large in size. Both of these tables are fairly safe to purge if so.
Joshua Barreiro Posted March 11, 2021 Author Posted March 11, 2021 OK, so I want to thank everyone for their time on this. I ended up upgrading to business class, and they migrated my account. My db was 1.52gb pre-migration. After migration, my db started shrinking. It went from 1.52gb down to 290mb. My db is fine. Everything is functioning. There are no errors, but I've spent a lot of time with the host trying to understand why my db shrank, and they have no answers. Is there some sort of logging or other junk that once the db reads in that it decides can be discarded? Is there a periodic job I can enable in Invision that will help me reclaim this space that is clearly not actual data on my site?
Management Charles Posted March 11, 2021 Management Posted March 11, 2021 We have cleanup tasks and the like but since it went down after your host migrated the DB I wonder if your host may have just needed to optimize the DB. MySQL sometimes does not release space until a table is optimized. I am just guessing though 🙂 Linux-Is-Best 1
Joshua Barreiro Posted March 11, 2021 Author Posted March 11, 2021 My host doesn't offer any services like that, so after the db was read in, mysql optimized it. But is there a task that can be enabled that will continuously optimize the db so that I don't have to get kicked off my shared hosting in the future? I plan on migrating back to shared hosting since this tier of hosting is literally a waste of resources and money, but I don't want to run into this issue in 2 years when the tables need to be optimized again...so how does one get optimized tables?
Linux-Is-Best Posted March 12, 2021 Posted March 12, 2021 4 hours ago, Joshua Barreiro said: My host doesn't offer any services like that, so after the db was read in, mysql optimized it. But is there a task that can be enabled that will continuously optimize the db so that I don't have to get kicked off my shared hosting in the future? I plan on migrating back to shared hosting since this tier of hosting is literally a waste of resources and money, but I don't want to run into this issue in 2 years when the tables need to be optimized again...so how does one get optimized tables? Continuously optimizing your database could be resource-intensive. The general clean-up task should naturally run itself after the preset time. I question if your shared host was somehow preventing this from happening since the limited plan may have had a cap on how much computing power you were allowed. As a result, it was not completed as necessary, and once you were moved to a container with the required resources, it was finally completed.
Joshua Barreiro Posted March 12, 2021 Author Posted March 12, 2021 28 minutes ago, Linux-Is-Best said: Continuously optimizing your database could be resource-intensive. The general clean-up task should naturally run itself after the preset time. I question if your shared host was somehow preventing this from happening since the limited plan may have had a cap on how much computing power you were allowed. As a result, it was not completed as necessary, and once you were moved to a container with the required resources, it was finally completed. Thanks. Interesting thought. Is there a job set up in the admin settings? I can't find one, if so. It would be good to know if there's a way to verify whether I have tasks that are being killed by my host.
CoffeeCake Posted March 12, 2021 Posted March 12, 2021 IPS Cloud hosting may be a good idea if you don't want to be involved in this way with the administration of your server. That said, you can learn about MySQL OPTIMIZE TABLE here: https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html This is not something that IPS does for you (nor would you want it to). Other database maintenance statements are outlined here: https://dev.mysql.com/doc/refman/8.0/en/table-maintenance-statements.html You can find scheduled tasks by searching for "Tasks" in ACP. Joshua Barreiro 1
Joshua Barreiro Posted March 12, 2021 Author Posted March 12, 2021 I set up a minute cronjob to see if it made successful runs more likely.
Recommended Posts