mysql Cheat Sheet

Backup:

mysqldump $DBNAME -a -u $DBUSER -p$DBPASS > $DUMP_FILE

Drop database:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

Grant syntax:

grant all privileges on <DB>.* to <USER>@localhost identified by 'password'
flush privileges


Update Syntax:

update <table> set <col>=<value> where <where clause>

Insert Syntax:

insert into table (col1, col2, ... , colx) values (val1, val2, ... , valx); 

JDBC Access:

Class: com.mysql.jdbc.Driver 
DB URL: jdbc:mysql://<host>/<DB>

Fixing Tables:

check: mysqlcheck -u <user> -p --all-databases

fix: mysqlcheck -u <user> -p --all-databases --repair

Reset Root Password:

/etc/init.d/mysql stop 

/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

/usr/local/mysql/bin/mysqladmin -u root flush-privileges password "newpassword"

PERL Snippets

sub PRTC {
  local($ALTSTR) = @_;
  if ($ALTSTR eq "") {
    printf("Press Return to Continue..."); }
  else {
    printf("%s",$ALTSTR); }
  my $J = <STDIN>; }

sub DEBUG {
  local($SUBLEVEL,$MESSAGE) = @_;
  @CALLER = (caller(1));
  # ($package, $filename, $line, $subr, $has_args, $wantarray )= caller($i);
  my $SUBR = $CALLER[3]; my $LINE = $CALLER[2];
  if (($DEBUGL >= $SUBLEVEL) || ($DEBUGO{$SUBR} >= $SUBLEVEL)) {
    printf("%s[%s]: \"%s\"\n",$SUBR,$LINE,$MESSAGE);
    if ($DEBUGO{DETAIL}) {
      printf("  DEBUG LEVEL: %s, PACKAGE: %s, FILENAME: %s, LINE: %s, SUBROUTINE: %s\n",$SUBLEVEL,$CALLER[0],$CALLER[1],$CALLER[2],$
CALLER[3]); }
    ($DEBUGO{"PRTC"}) && &PRTC(); } }

sub DBDO {
  local($SQL) = @_;
  &DEBUG(1,"Enter Sub: SQL = $SQL");
  # my $DBDODEBUG = 1;
  my $INFO = ();
  if ($DBDODEBUG >= 1) {
    printf("DBDO DEBUG: SQL = \"%s\"\n",$SQL); }
  if ($DBDODEBUG >= 2) {
    printf("DBDO DEBUG: DEBUG=2, not executing sql!\n");
    return;}
  my $DSN = "dbi:mysql:$DBNAME:localhost:3306";
  my $DBH = DBI->connect($DSN, $DBUSER, $DBPASS) || die "Can't open $DBNAME!\n";
  my $RV = $DBH->do("$SQL");
  if (($SQL =~ /insert/) || ($SQL =~ /INSERT/)) {
    $INFO{InsertID} = $DBH->{ q{mysql_insertid}};
     ($DEBUG >= 2) && printf("Getting InsertID: %s\n",$INFO{InsertID}); }
  $DBH->disconnect;
  &DEBUG(1,"Exit Sub");
  return(%INFO); }

sub RunQuery {
  local($QUERY) = @_;   #
  &DEBUG(1,"Enter Sub: SQL = $QUERY");
  ($DEBUG >=2) && printf("SearchMessages: QUERY: %s\n",$QUERY);

  my @DATA = ();
  my %INFO = ();

  my $DSN = "dbi:mysql:$DBNAME:localhost:3306";
  my $DBH = DBI->connect($DSN, $DBUSER, $DBPASS) || die "Can't open $DBNAME!\n";

  $STH = $DBH->prepare("$QUERY");
  $STH->execute();
  *NAMES = $STH->{NAME};
  $ROWS = $STH->rows; $INFO{ROWS} = $ROWS;
  $COLS = $#NAMES; $INFO{$COLS} = $COLS;

  # foreach $COLNAME (@NAMES) { printf("=> %s\n",$COLNAME); }
  $TYPES = $STH->{TYPE};
  *RESULTS = $STH->fetchall_arrayref();
  for ($ROW=0; $ROW <= $ROWS; $ROW++) {
    for ($COL=0; $COL <= $COLS; $COL++) {
      ($DEBUG >= 3) && printf("DATA[%s]{%s} = RESULTS[%s][%s] = %s\n",$ROW,$NAMES[$COL],$ROW,$COL,$RESULTS[$ROW][$COL]);
      $DATA[$ROW]{$NAMES[$COL]} = $RESULTS[$ROW][$COL]; } }
  &DEBUG(1,"Exit Sub");
  @DATA; }

Select example:

#!/usr/bin/perl

# PERL MODULES WE WILL BE USING
use DBI;
use DBD::mysql

# HTTP HEADER
print "Content-type: text/html \n\n";

# CONFIG VARIABLES
$platform = "mysql";
$database = "store";
$host = "localhost";
$port = "3306";
$tablename = "inventory";
$user = "username";
$pw = "password";

# DATA SOURCE NAME
$dsn = "dbi:mysql:$database:localhost:3306";

# PERL DBI CONNECT
$connect = DBI->connect($dsn, $user, $pw);

# PREPARE THE QUERY
$query = "SELECT * FROM inventory ORDER BY id";
$query_handle = $connect->prepare($query);

# EXECUTE THE QUERY
$query_handle->execute();

# BIND TABLE COLUMNS TO VARIABLES
$query_handle->bind_columns(undef, \$id, \$product, \$quantity);

# LOOP THROUGH RESULTS
while($query_handle->fetch()) {
print "$id, $product, $quantity <br />";}

Keywords: mysql cheatsheet

Search | Most Popular | Recent Changes | Wiki Home