Oracle 5.0 Reference Manual page 2593

Table of Contents

Advertisement

Mysqlnd replication and load balancing plugin (mysqlnd_ms)
In the plugins configuration file set the SQL to update the global transaction ID table using
from the
global_transaction_id_injection
statement is fully qualified. In the example,
UPDATE
schema (database) test. Use the table that was created in the previous step. It is important to set the
fully qualified table name because the connection on which the injection is done may use a different
default database. Make sure the user that opens the connection is allowed to execute the UPDATE.
Enable reporting of errors that may occur when mysqlnd_ms does global transaction ID injection.
Example 20.239. Plugin config: SQL for client-side GTID injection
{
"myapp": {
"master": {
"master_0": {
"host": "localhost",
"socket": "\/tmp\/mysql.sock"
}
},
"slave": {
"slave_0": {
"host": "127.0.0.1",
"port": "3306"
}
},
"global_transaction_id_injection":{
"on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
"report_error":true
}
}
}
Example 20.240. Transparent global transaction ID injection
<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
/* Of course, your error handling is nicer... */
die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
/* auto commit mode, read on slave, no increment */
if (!($res = $mysqli->query("SELECT id FROM test")))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
var_dump($res->fetch_assoc());
?>
The above example will output:
array(1) {
["id"]=>
section. Make sure the table name used for the
is used to refer to table
test.trx
2573
on_commit
in the
trx

Advertisement

Table of Contents
loading

This manual is also suitable for:

Mysql 5.0

Table of Contents