Posts Tagged ‘programming’

php system script for maintaining mysql databases and tables

Thursday, June 12th, 2008

This is one of the php system scripts I wrote and would like to share. It can be extended but it already does its basic stuff - mysql maintenance with email notification.

Use it in cron and have a peace with tables, indexes and keys :)

< ?php
// which databases to maintain
$databases  = "provider wp subversion mysql";
 
$returnval = maintain_mysql($databases);
@mail("root","mysql database maintainer", $returnval);
 
/**
* mysql table maintainer - optimizes and rebuilds indexes on mysql tables
*
* @author benjamin.povirk@***** 3.1.07
* @return string
* @param databases to maintain
*/
function maintain_mysql ($databases) {
 
$database = explode(" ", $databases);
foreach ($database as $db) {
$returnval .= "maintenance on all tables in ".$db." started\r\n";
// Connecting, selecting database
$link = mysql_connect('localhost', 'YOUR_USER_HERE', 'YOUR_PASSWORD_HERE') or die('Could not connect: ' . mysql_error());
 
mysql_select_db($db) or die('Could not select database '.$db);
 
//repair and optimize all tables in current database
$query = "SHOW TABLES";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
  foreach ($line as $col_value) {
    $lock = mysql_query("LOCK TABLE ".$col_value." WRITE") or die('Query failed: ' . mysql_error());
    $optimize = mysql_query("OPTIMIZE TABLE ".$col_value) or die('Query failed: ' . mysql_error());
    $repair = mysql_query("REPAIR TABLE ".$col_value." QUICK") or die('Query failed: ' . mysql_error());
    $unlock = mysql_query("UNLOCK TABLES") or die('Query failed: ' . mysql_error());
  }
}
mysql_free_result($result);
mysql_free_result($repair);
mysql_free_result($optimize);
 
// Closing connection
mysql_close($link);
$returnval .= "maintenance on all tables in ".$db." finished successfuly\r\n\r\n";
}
 
return $returnval;
}
 
?>

saturday - from excel to mysql

Saturday, March 8th, 2008

Ha…

I was spending some hour today for transfering data from Excel file to MySQL. I decided to write VBA macro that will write a sqldump file for me since I had three worksheets of about 20K rows and some 5-10 columns each. And I had to fill that data in 4 different MySQL tabels. So LOAD DATA INFILE was really not an option.

Well the thing is that the task was really simple, but the stupid windows registry on my updated XP was driving me crazy. In VBA macro, I was receiving runtime errors when I was trying to use Scripting.FileSystemObject which I needed for making a file…

On anybody’s behalf, there is a command regsrv32.exe %windir%\system32\scrrun.dll which will register the Scripting.FileSystemObject in your registry and from there on, you can browse it your VBA macro editor from options->references to enable it in your procedure. Worked for me :)

Then Jan and me went for a lunch. That passed today’s hacking and the database is populated.

Now Samo is comming. My father got a son yesterday - and I got a step brother named Juš so we have to grab some beer :)

Bucket of 100 roses

And yes, HAPPY WOMEN’S DAY TO ALL WOMEN.
Especially to my Tanja. Roses are for you :*


Oh yes, I use and recomend Firefox 2

AJAXed with AWP