oli's blog

Skript too restrictive

Taxonomy upgrade extras: 

Hello Shinguz,

Pay attention: Your script is a bit too restrictive. It will IMHO also close the port for the SST when you use the wsrep_sst_methode = mysqldump. Possibly you should restrict it to the Load Balancer IP or allow access at least from the possible donors.

DROP vs REJECT

Taxonomy upgrade extras: 

I was recently told that it would be better to use REJECT than DROP:

timestamp is not allowed any more as partition key

Taxonomy upgrade extras: 

Since MySQL 5.1.43 timestamp is not allowed as partition key any more [ 1 ]. Thus we can do it as follows:

MariaDB and MySQL PERFORMANCE_SCHEMA Hints

Unbreakable MySQL Cluster with Galera and glb

Taxonomy upgrade extras: 

We did a similar thing this week with Galera Cluster for MySQL and the Galera Load Balancer (glb).

information_schema helps you to find databases

Taxonomy upgrade extras: 

Hi Fabio,

There are several ways to do this. The most simple one but possibly not what you need is:

Virtualization gotchas

Taxonomy upgrade extras: 

VirtualBox

Network Interface does not start on Guest System:

MAC Address must be all the same in:

MySQL and MariaDB Security

Overview

MySQL Security Products

Security Vulnerabilities Fixed in MariaDB

Oracle Critical Patch Update (CPU) Advisory for MySQL

RedHat/CentOS vulnerabilities by CVE name

Red Hat vulnerabilities by CVE name for MySQL

Registration for MySQL and MariaDB training

Taxonomy upgrade extras: 

Register here for our MySQL and MariaDB trainings in Switzerland. For our MySQL and MariaDB trainings in Germany you can register directly on-line at the MySQL and MariaDB training class schedule.

MariaDB and MySQL advanced training

You are already familiar with the MySQL or MariaDB and you are challenged to operate a serious MySQL database. If this is the case this training is the right one for you.

MySQL database configurator

Taxonomy upgrade extras: 

Will come soon…

Please let us know your intention to for choosing this page!

Table Analyzer

Taxonomy upgrade extras: 

Will come soon…

Please let us know your intention to for choosing this page!

Artikel über MySQL im neuen iX

Hallo MySQL Gemeinde,

Im neuen iX (2012-10) hat es zwei nette Artikel über: MySQL HA-Lösungen (S. 116) und MySQL 5.6 (S. 66).

Re: Modified channel failover steps in recent releases

Taxonomy upgrade extras: 

Hello Frazer,

Thank you very much for your valuable feedback. Good that Oracle is doing something in this direction and make MySQL even easier to use!

Run mpm agent less often

Taxonomy upgrade extras: 

Hello Roger,

The item FromDual.MySQL.check (MPM Agent is alive) is triggering the agent. Its interval is by default set to 10 seconds. Try to set the interval to 30 seconds and let us know if it helps…

Press

Taxonomy upgrade extras: 

If you have questions related to FromDual GmbH please get in contact with us:

PHP cheat sheet

Taxonomy upgrade extras: 

PHP Java bytecode

PHP Compiler

// Call with php -f test.php

error_reporting(E_ALL);

// Class (blueprint) = package => object (instantiated class)
class ParentClass {

  // variable = property

  // encapsulation
  // visible anywhere
  public $public       = 'Public';
  // visible only within the class, and in inherited and parent classes
  protected $protected = 'Protected';
  // visible only within class
  private $private     = 'Private';

  // function = methode
  public function printItem($string) {

    // ParentClass
    print get_class($this) . ': ' . $string . PHP_EOL;
    print $this->public . PHP_EOL;
    print $this->protected . PHP_EOL;
    print $this->private . PHP_EOL;
  }

  const CONST_VALUE = 'PHP is great!';

  public function printPHP() {

    $classname = get_class($this);
    print constant($classname . '::CONST_VALUE') . PHP_EOL;
    print $classname::CONST_VALUE . PHP_EOL;
    print ParentClass::CONST_VALUE . PHP_EOL;
  }
}

class ChildClass extends ParentClass {

  public function printItem($string) {

    // ChildClass
    print get_class($this) . ': ' . $string . PHP_EOL;
    print self::__bla();
  }

  // private functions are names with __
  private function __bla() {
    print 'bla' . PHP_EOL;
  }
}

class Main {

  private static $instance;
  var $bla;

  private static function __init() {
  }
}

class Person {

  var $name;   // public!

  // access modfiers (public = default)
  public $height;
  protected $social_insurance;
  private $pin_number;

  // PHP constructor methode initialise object when instantiated
  function __construct($persons_name) {

    $this->name = $persons_name;
  }

  private function getPinNumber() {

    return $this->pin_number;
  }

  function setName($new_name) {

    $this->name = $new_name;
  }

  function getName() {

    return $this->name;
  }
}

// inherit from Person all public and protected properties and methodes
// Employee is a TYPE of Person
class Employee extends Person {

  function __construct($employee_name) {

    $this->setName($employee_name);
  }

  // Overwrite the setName methode from Person
  function setName($new_name) {
    if ( $new_name != 'Oli' ) {
      $this->name = strtoupper($new_name);
    }
    else {
      Person::setName($new_name);
      // Or alternatively:
      // parent::setName($new_name);
    }
  }
}


$main = new Main();

$parent = new ParentClass();
$child = new ChildClass();

$parent->printItem('baz');
// Output: 'ParentClass: baz'
$parent->printPHP();
// Output: 'PHP is great'

$child->printItem('baz');
// Output: 'ChildClass: baz'
$child->printPHP();
// Output: 'PHP is great'


// interface bar {
// }

// class MyDatabase implements IDatabase {
// }

// abstract class Base {
//     abstract protected function __construct ();
// }

// protected function hello_right () {

// handle/reference to new object person
$p = new Person('Oliver');
print $p->getName() . PHP_EOL;
$p->setName('Oli');
print $p->getName() . PHP_EOL;
// This is a bad behaviour!
print 'Bad hehaviour: ' . $p->name . PHP_EOL;
// This should give an error
// print $p->pin_number . PHP_EOL;


$e = new Employee('Hugo');
print "Employee " . $e->getName() . PHP_EOL;
$e = new Employee('Oli');
print "Employee " . $e->getName() . PHP_EOL;

function inverse($x) {
  if (!$x) {
    throw new Exception('Division by zero.');
  }
  else return 1/$x;
}

try {
  echo inverse(5) . "<br>n";
  echo inverse(0) . "<br>n";
}
catch (Exception $e) {
  echo 'Caught exception: ' .  $e->getMessage() . "<br>n";
}

// Continue execution
echo 'Hello World';
*/

MONyog

Taxonomy upgrade extras: 

Hello Mahesh,

Thanks for the suggestion. I have added MONyog...

Alternative query

Taxonomy upgrade extras: 
SELECT t.table_schema, t.table_name, t.engine
  FROM information_schema.tables AS t
  LEFT JOIN information_schema.key_column_usage AS i ON t.table_schema = i.table_schema AND t.table_name = i.table_name AND i.constraint_name = 'PRIMARY'
 WHERE i.constraint_name IS NULL
   AND t.table_schema NOT IN ('information_schema', 'mysql')
;

Pages

Subscribe to RSS - oli's blog