Commit 10920d46 authored by Aleksandr Kuzminsky's avatar Aleksandr Kuzminsky

Build configuration options are added to repository

parent 5b0ab60a
###########################
## FIXME for 5.1 ##
###########################
* put this trigger-recreation thing into the init scripts -- what?!
* Let debian-i10n-english review all template changes before the translaters start.
* Mark debconf translations as obsolete with debconf-updatepo.
###########################################################################
# Here are some information that are only of interest for the current and #
# following Debian maintainers of MySQL. #
###########################################################################
The debian/ directory is under SVN control, see debian/control for URL.
#
# Preparing a new version
#
The new orig.tar.gz (without non-free documentation) is created in /tmp/ when
running this command:
debian/rules get-orig-source
#
# mysqlreport
#
The authors e-mail address is <public@codenode.com>.
#
# Remarks to dependencies
#
libwrap0-dev (>= 7.6-8.3)
According to bug report 114582 where where build problems on
IA-64/sid with at least two prior versions.
psmisc
/usr/bin/killall in the initscript
zlib1g in libmysqlclient-dev:
"mysql_config --libs" ads "-lz"
Build-Dep:
debhelper (>=4.1.16):
See po-debconf(7).
autoconf (>= 2.13-20), automake1.7
Try to get rid of them.
doxygen, tetex-bin, tetex-extra, gs
for ndb/docs/*tex
#
# Remarks to the start scripts
#
## initscripts rely on mysqladmin from a different package
We have the problem that "/etc/init.d/mysql stop" relies on mysqladmin which
is in another package (mysql-client) and a passwordless access that's maybe
only available if the user configured his /root/.my.cnf. Can this be a problem?
* normal mode: not because the user is required to have it. Else:
* purge/remove: not, same as normal mode
* upgrade: not, same as normal mode
* first install: not, it depends on mysql-client which at least is unpacked
so mysqladmin is there (to ping). It is not yet configured
passwordles but if there's a server running then there's a
/root/.my.cnf. Anyways, we simply kill anything that's mysqld.
## Passwordless access for the maintainer scripts
Another issue is that the scripts needs passwordless access. To ensure this
a debian-sys-maint user is configured which has process and shutdown privs.
The file with the randomly (that's important!) generated password must be
present as long as the databases remain installed because else a new install
would have no access. This file should be used like:
mysqladmin --defaults-file=/etc/mysql/debian.cnf restart
to avoid providing the password in plaintext on a commandline where it would
be visible to any user via the "ps" command.
## When to start the daemon?
We aim to give the admin full control on when MySQL is running.
Issues to be faced here:
OLD:
1. Debconf asks whether MySQL should be started on boot so update-rc.d is
only run if the answer has been yes. The admin is likely to forget
this decision but update-rc.d checks for an existing line in
/etc/runlevel.conf and leaves it intact.
2. On initial install, if the answer is yes, the daemon has to be started.
3. On upgrades it should only be started if it was already running, everything
else is confusing. Especiall relying on an debconf decision made month ago
is considered suboptimal. See bug #274264
Implementation so far:
prerm (called on upgrade before stopping the server):
check for a running server and set flag if necessary
preinst (called on initial install and before unpacking when upgrading):
check for the debconf variable and set flag if necessary
postinst (called on initial install and after each upgrade after unpacking):
call update-rc.d if debconf says yes
call invoce-rc.d if the flag has been set
Problems remaining:
dpkg-reconfigure and setting mysql start on boot to yes did not start mysql
(ok "start on boot" literally does not mean "start now" so that might have been ok)
NEW:
1. --- no debconf anymore for the sake of simplicity. We have runlevel.conf,
the admin should use it
2. On initial install the server is started.
3. On upgrades the server is started exactly if it was running before so the
runlevel configuration is irrelevant. It will be preserved by the mean of
update-rc.d's builtin check.
Implementation:
prerm (called on upgrade before stopping the server):
check for a running server and set flag if necessary
preinst (called on initial install and before unpacking when upgrading):
check for $1 beeing (initial) "install" and set flag
postinst (called on initial install and after each upgrade after unpacking):
call update-rc.d
call invoce-rc.d if the flag has been set
all:
distclean:
-rm -f Makefile
.PHONY: all distclean clean install check
all:
distclean:
-rm -f Makefile
.PHONY: all distclean clean install check
#!/bin/bash
#
# This script is executed by "/etc/init.d/mysql" on every (re)start.
#
# Changes to this file will be preserved when updating the Debian package.
#
source /usr/share/mysql/debian-start.inc.sh
MYSQL="/usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf"
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
MYUPGRADE="/usr/bin/mysql_upgrade --defaults-extra-file=/etc/mysql/debian.cnf"
MYCHECK="/usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf"
MYCHECK_SUBJECT="WARNING: mysqlcheck has found corrupt tables"
MYCHECK_PARAMS="--all-databases --fast --silent"
MYCHECK_RCPT="root"
# The following commands should be run when the server is up but in background
# where they do not block the server start and in one shell instance so that
# they run sequentially. They are supposed not to echo anything to stdout.
# If you want to disable the check for crashed tables comment
# "check_for_crashed_tables" out.
# (There may be no output to stdout inside the background process!)
echo "Checking for corrupt, not cleanly closed and upgrade needing tables."
(
upgrade_system_tables_if_necessary;
check_root_accounts;
check_for_crashed_tables;
) >&2 &
exit 0
#!/bin/bash
#
# This file is included by /etc/mysql/debian-start
#
## Check all unclosed tables.
# - Requires the server to be up.
# - Is supposed to run silently in background.
function check_for_crashed_tables() {
set -e
set -u
# But do it in the background to not stall the boot process.
logger -p daemon.info -i -t$0 "Triggering myisam-recover for all MyISAM tables"
# Checking for $? is unreliable so the size of the output is checked.
# Some table handlers like HEAP do not support CHECK TABLE.
tempfile=`tempfile`
# We have to use xargs in this case, because a for loop barfs on the
# spaces in the thing to be looped over.
LC_ALL=C $MYSQL --skip-column-names --batch -e '
select concat("select count(*) into @discard from `",
TABLE_SCHEMA, "`.`", TABLE_NAME, "`")
from information_schema.TABLES where ENGINE="MyISAM"' | \
xargs -i $MYSQL --skip-column-names --silent --batch \
--force -e "{}" >$tempfile
if [ -s $tempfile ]; then
(
/bin/echo -e "\n" \
"Improperly closed tables are also reported if clients are accessing\n" \
"the tables *now*. A list of current connections is below.\n";
$MYADMIN processlist status
) >> $tempfile
# Check for presence as a dependency on mailx would require an MTA.
if [ -x /usr/bin/mailx ]; then
mailx -e -s"$MYCHECK_SUBJECT" $MYCHECK_RCPT < $tempfile
fi
(echo "$MYCHECK_SUBJECT"; cat $tempfile) | logger -p daemon.warn -i -t$0
fi
rm $tempfile
}
## Check for tables needing an upgrade.
# - Requires the server to be up.
# - Is supposed to run silently in background.
function upgrade_system_tables_if_necessary() {
set -e
set -u
logger -p daemon.info -i -t$0 "Upgrading MySQL tables if necessary."
# Filter all "duplicate column", "duplicate key" and "unknown column"
# errors as the script is designed to be idempotent.
LC_ALL=C $MYUPGRADE \
2>&1 \
| egrep -v '^(1|@had|ERROR (1054|1060|1061))' \
| logger -p daemon.warn -i -t$0
}
## Check for the presence of both, root accounts with and without password.
# This might have been caused by a bug related to mysql_install_db (#418672).
function check_root_accounts() {
set -e
set -u
logger -p daemon.info -i -t$0 "Checking for insecure root accounts."
ret=$( echo "SELECT count(*) FROM mysql.user WHERE user='root' and password='';" | $MYSQL --skip-column-names )
if [ "$ret" -ne "0" ]; then
logger -p daemon.warn -i -t$0 "WARNING: mysql.user contains $ret root accounts without password!"
fi
}
#!/bin/bash
echo "$*" 1>&2
use strict;
use warnings FATAL => 'all';
package InnoDBParser;
# This program is copyright (c) 2006 Baron Schwartz, baron at xaprb dot com.
# Feedback and improvements are gratefully received.
#
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
our $VERSION = '1.6.0';
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
use English qw(-no_match_vars);
use List::Util qw(max);
# Some common patterns
my $d = qr/(\d+)/; # Digit
my $f = qr/(\d+\.\d+)/; # Float
my $t = qr/(\d+ \d+)/; # Transaction ID
my $i = qr/((?:\d{1,3}\.){3}\d+)/; # IP address
my $n = qr/([^`\s]+)/; # MySQL object name
my $w = qr/(\w+)/; # Words
my $fl = qr/([\w\.\/]+) line $d/; # Filename and line number
my $h = qr/((?:0x)?[0-9a-f]*)/; # Hex
my $s = qr/(\d{6} .\d:\d\d:\d\d)/; # InnoDB timestamp
# If you update this variable, also update the SYNOPSIS in the pod.
my %innodb_section_headers = (
"TRANSACTIONS" => "tx",
"BUFFER POOL AND MEMORY" => "bp",
"SEMAPHORES" => "sm",
"LOG" => "lg",
"ROW OPERATIONS" => "ro",
"INSERT BUFFER AND ADAPTIVE HASH INDEX" => "ib",
"FILE I/O" => "io",
"LATEST DETECTED DEADLOCK" => "dl",
"LATEST FOREIGN KEY ERROR" => "fk",
);
my %parser_for = (
tx => \&parse_tx_section,
bp => \&parse_bp_section,
sm => \&parse_sm_section,
lg => \&parse_lg_section,
ro => \&parse_ro_section,
ib => \&parse_ib_section,
io => \&parse_io_section,
dl => \&parse_dl_section,
fk => \&parse_fk_section,
);
my %fk_parser_for = (
Transaction => \&parse_fk_transaction_error,
Error => \&parse_fk_bad_constraint_error,
Cannot => \&parse_fk_cant_drop_parent_error,
);
# A thread's proc_info can be at least 98 different things I've found in the
# source. Fortunately, most of them begin with a gerunded verb. These are
# the ones that don't.
my %is_proc_info = (
'After create' => 1,
'Execution of init_command' => 1,
'FULLTEXT initialization' => 1,
'Reopen tables' => 1,
'Repair done' => 1,
'Repair with keycache' => 1,
'System lock' => 1,
'Table lock' => 1,
'Thread initialized' => 1,
'User lock' => 1,
'copy to tmp table' => 1,
'discard_or_import_tablespace' => 1,
'end' => 1,
'got handler lock' => 1,
'got old table' => 1,
'init' => 1,
'key cache' => 1,
'locks' => 1,
'malloc' => 1,
'query end' => 1,
'rename result table' => 1,
'rename' => 1,
'setup' => 1,
'statistics' => 1,
'status' => 1,
'table cache' => 1,
'update' => 1,
);
sub new {
bless {}, shift;
}
# Parse the status and return it.
# See srv_printf_innodb_monitor in innobase/srv/srv0srv.c
# Pass in the text to parse, whether to be in debugging mode, which sections
# to parse (hashref; if empty, parse all), and whether to parse full info from
# locks and such (probably shouldn't unless you need to).
sub parse_status_text {
my ( $self, $fulltext, $debug, $sections, $full ) = @_;
die "I can't parse undef" unless defined $fulltext;
$fulltext =~ s/[\r\n]+/\n/g;
$sections ||= {};
die '$sections must be a hashref' unless ref($sections) eq 'HASH';
my %innodb_data = (
got_all => 0, # Whether I was able to get the whole thing
ts => '', # Timestamp the server put on it
last_secs => 0, # Num seconds the averages are over
sections => {}, # Parsed values from each section
);
if ( $debug ) {
$innodb_data{'fulltext'} = $fulltext;
}
# Get the most basic info about the status: beginning and end, and whether
# I got the whole thing (if there has been a big deadlock and there are
# too many locks to print, the output might be truncated)
my ( $time_text ) = $fulltext =~ m/^$s INNODB MONITOR OUTPUT$/m;
$innodb_data{'ts'} = [ parse_innodb_timestamp( $time_text ) ];
$innodb_data{'timestring'} = ts_to_string($innodb_data{'ts'});
( $innodb_data{'last_secs'} ) = $fulltext
=~ m/Per second averages calculated from the last $d seconds/;
( my $got_all ) = $fulltext =~ m/END OF INNODB MONITOR OUTPUT/;
$innodb_data{'got_all'} = $got_all || 0;
# Split it into sections. Each section begins with
# -----
# LABEL
# -----
my %innodb_sections;
my @matches = $fulltext
=~ m#\n(---+)\n([A-Z /]+)\n\1\n(.*?)(?=\n(---+)\n[A-Z /]+\n\4\n|$)#gs;
while ( my ( $start, $name, $text, $end ) = splice(@matches, 0, 4) ) {
$innodb_sections{$name} = [ $text, $end ? 1 : 0 ];
}
# The Row Operations section is a special case, because instead of ending
# with the beginning of another section, it ends with the end of the file.
# So this section is complete if the entire file is complete.
$innodb_sections{'ROW OPERATIONS'}->[1] ||= $innodb_data{'got_all'};
# Just for sanity's sake, make sure I understand what to do with each
# section
eval {
foreach my $section ( keys %innodb_sections ) {
my $header = $innodb_section_headers{$section};
die "Unknown section $section in $fulltext\n"
unless $header;
$innodb_data{'sections'}->{ $header }
->{'fulltext'} = $innodb_sections{$section}->[0];
$innodb_data{'sections'}->{ $header }
->{'complete'} = $innodb_sections{$section}->[1];
}
};
if ( $EVAL_ERROR ) {
_debug( $debug, $EVAL_ERROR);
}
# ################################################################
# Parse the detailed data out of the sections.
# ################################################################
eval {
foreach my $section ( keys %parser_for ) {
if ( defined $innodb_data{'sections'}->{$section}
&& (!%$sections || (defined($sections->{$section} && $sections->{$section})) )) {
$parser_for{$section}->(
$innodb_data{'sections'}->{$section},
$innodb_data{'sections'}->{$section}->{'complete'},
$debug,
$full )
or delete $innodb_data{'sections'}->{$section};
}
else {
delete $innodb_data{'sections'}->{$section};
}
}
};
if ( $EVAL_ERROR ) {
_debug( $debug, $EVAL_ERROR);
}
return \%innodb_data;
}
# Parses the status text and returns it flattened out as a single hash.
sub get_status_hash {
my ( $self, $fulltext, $debug, $sections, $full ) = @_;
# Parse the status text...
my $innodb_status
= $self->parse_status_text($fulltext, $debug, $sections, $full );
# Flatten the hierarchical structure into a single list by grabbing desired
# sections from it.
return
(map { 'IB_' . $_ => $innodb_status->{$_} } qw(timestring last_secs got_all)),
(map { 'IB_bp_' . $_ => $innodb_status->{'sections'}->{'bp'}->{$_} }
qw( writes_pending buf_pool_hit_rate total_mem_alloc buf_pool_reads
awe_mem_alloc pages_modified writes_pending_lru page_creates_sec
reads_pending pages_total buf_pool_hits writes_pending_single_page
page_writes_sec pages_read pages_written page_reads_sec
writes_pending_flush_list buf_pool_size add_pool_alloc
dict_mem_alloc pages_created buf_free complete )),
(map { 'IB_tx_' . $_ => $innodb_status->{'sections'}->{'tx'}->{$_} }
qw( num_lock_structs history_list_len purge_done_for transactions
purge_undo_for is_truncated trx_id_counter complete )),
(map { 'IB_ib_' . $_ => $innodb_status->{'sections'}->{'ib'}->{$_} }
qw( hash_table_size hash_searches_s non_hash_searches_s
bufs_in_node_heap used_cells size free_list_len seg_size inserts
merged_recs merges complete )),
(map { 'IB_lg_' . $_ => $innodb_status->{'sections'}->{'lg'}->{$_} }
qw( log_ios_done pending_chkp_writes last_chkp log_ios_s
log_flushed_to log_seq_no pending_log_writes complete )),
(map { 'IB_sm_' . $_ => $innodb_status->{'sections'}->{'sm'}->{$_} }
qw( wait_array_size rw_shared_spins rw_excl_os_waits mutex_os_waits
mutex_spin_rounds mutex_spin_waits rw_excl_spins rw_shared_os_waits
waits signal_count reservation_count complete )),
(map { 'IB_ro_' . $_ => $innodb_status->{'sections'}->{'ro'}->{$_} }
qw( queries_in_queue n_reserved_extents main_thread_state
main_thread_proc_no main_thread_id read_sec del_sec upd_sec ins_sec
read_views_open num_rows_upd num_rows_ins num_rows_read
queries_inside num_rows_del complete )),
(map { 'IB_fk_' . $_ => $innodb_status->{'sections'}->{'fk'}->{$_} }
qw( trigger parent_table child_index parent_index attempted_op
child_db timestring fk_name records col_name reason txn parent_db
type child_table parent_col complete )),
(map { 'IB_io_' . $_ => $innodb_status->{'sections'}->{'io'}->{$_} }
qw( pending_buffer_pool_flushes pending_pwrites pending_preads
pending_normal_aio_reads fsyncs_s os_file_writes pending_sync_ios
reads_s flush_type avg_bytes_s pending_ibuf_aio_reads writes_s
threads os_file_reads pending_aio_writes pending_log_ios os_fsyncs
pending_log_flushes complete )),
(map { 'IB_dl_' . $_ => $innodb_status->{'sections'}->{'dl'}->{$_} }
qw( timestring rolled_back txns complete ));
}
sub ts_to_string {
my $parts = shift;
return sprintf('%02d-%02d-%02d %02d:%02d:%02d', @$parts);
}
sub parse_innodb_timestamp {
my $text = shift;
my ( $y, $m, $d, $h, $i, $s )
= $text =~ m/^(\d\d)(\d\d)(\d\d) +(\d+):(\d+):(\d+)$/;
die("Can't get timestamp from $text\n") unless $y;
$y += 2000;
return ( $y, $m, $d, $h, $i, $s );
}
sub parse_fk_section {
my ( $section, $complete, $debug, $full ) = @_;
my $fulltext = $section->{'fulltext'};
return 0 unless $fulltext;
my ( $ts, $type ) = $fulltext =~ m/^$s\s+(\w+)/m;
$section->{'ts'} = [ parse_innodb_timestamp( $ts ) ];
$section->{'timestring'} = ts_to_string($section->{'ts'});
$section->{'type'} = $type;
# Decide which type of FK error happened, and dispatch to the right parser.
if ( $type && $fk_parser_for{$type} ) {
$fk_parser_for{$type}->( $section, $complete, $debug, $fulltext, $full );
}
delete $section->{'fulltext'} unless $debug;
return 1;
}
sub parse_fk_cant_drop_parent_error {
my ( $section, $complete, $debug, $fulltext, $full ) = @_;
# Parse the parent/child table info out
@{$section}{ qw(attempted_op parent_db parent_table) } = $fulltext
=~ m{Cannot $w table `(.*)/(.*)`}m;
@{$section}{ qw(child_db child_table) } = $fulltext
=~ m{because it is referenced by `(.*)/(.*)`}m;
( $section->{'reason'} ) = $fulltext =~ m/(Cannot .*)/s;
$section->{'reason'} =~ s/\n(?:InnoDB: )?/ /gm
if $section->{'reason'};
# Certain data may not be present. Make them '' if not present.
map { $section->{$_} ||= "" }
qw(child_index fk_name col_name parent_col);
}
# See dict/dict0dict.c, function dict_foreign_error_report
# I don't care much about these. There are lots of different messages, and
# they come from someone trying to create a foreign key, or similar
# statements. They aren't indicative of some transaction trying to insert,
# delete or update data. Sometimes it is possible to parse out a lot of
# information about the tables and indexes involved, but often the message
# contains the DDL string the user entered, which is way too much for this
# module to try to handle.
sub parse_fk_bad_constraint_error {
my ( $section, $complete, $debug, $fulltext, $full ) = @_;
# Parse the parent/child table and index info out
@{$section}{ qw(child_db child_table) } = $fulltext
=~ m{Error in foreign key constraint of table (.*)/(.*):$}m;
$section->{'attempted_op'} = 'DDL';
# FK name, parent info... if possible.
@{$section}{ qw(fk_name col_name parent_db parent_table parent_col) }
= $fulltext
=~ m/CONSTRAINT `?$n`? FOREIGN KEY \(`?$n`?\) REFERENCES (?:`?$n`?\.)?`?$n`? \(`?$n`?\)/;
if ( !defined($section->{'fk_name'}) ) {
# Try to parse SQL a user might have typed in a CREATE statement or such
@{$section}{ qw(col_name parent_db parent_table parent_col) }
= $fulltext
=~ m/FOREIGN\s+KEY\s*\(`?$n`?\)\s+REFERENCES\s+(?:`?$n`?\.)?`?$n`?\s*\(`?$n`?\)/i;
}
$section->{'parent_db'} ||= $section->{'child_db'};
# Name of the child index (index in the same table where the FK is, see
# definition of dict_foreign_struct in include/dict0mem.h, where it is
# called foreign_index, as opposed to referenced_index which is in the
# parent table. This may not be possible to find.
@{$section}{ qw(child_index) } = $fulltext
=~ m/^The index in the foreign key in table is $n$/m;
@{$section}{ qw(reason) } = $fulltext =~ m/:\s*([^:]+)(?= Constraint:|$)/ms;
$section->{'reason'} =~ s/\s+/ /g
if $section->{'reason'};
# Certain data may not be present. Make them '' if not present.
map { $section->{$_} ||= "" }
qw(child_index fk_name col_name parent_table parent_col);
}
# see source file row/row0ins.c
sub parse_fk_transaction_error {
my ( $section, $complete, $debug, $fulltext, $full ) = @_;
# Parse the txn info out
my ( $txn ) = $fulltext
=~ m/Transaction:\n(TRANSACTION.*)\nForeign key constraint fails/s;
if ( $txn ) {
$section->{'txn'} = parse_tx_text( $txn, $complete, $debug, $full );
}
# Parse the parent/child table and index info out. There are two types: an
# update or a delete of a parent record leaves a child orphaned
# (row_ins_foreign_report_err), and an insert or update of a child record has
# no matching parent record (row_ins_foreign_report_add_err).
@{$section}{ qw(reason child_db child_table) }
= $fulltext =~ m{^(Foreign key constraint fails for table `(.*)/(.*)`:)$}m;
@{$section}{ qw(fk_name col_name parent_db parent_table parent_col) }
= $fulltext
=~ m/CONSTRAINT `$n` FOREIGN KEY \(`$n`\) REFERENCES (?:`$n`\.)?`$n` \(`$n`\)/;
$section->{'parent_db'} ||= $section->{'child_db'};
# Special case, which I don't know how to trigger, but see
# innobase/row/row0ins.c row_ins_check_foreign_constraint
if ( $fulltext =~ m/ibd file does not currently exist!/ ) {
my ( $attempted_op, $index, $records )
= $fulltext =~ m/^Trying to (add to index) `$n` tuple:\n(.*))?/sm;
$section->{'child_index'} = $index;
$section->{'attempted_op'} = $attempted_op || '';
if ( $records && $full ) {
( $section->{'records'} )
= parse_innodb_record_dump( $records, $complete, $debug );
}
@{$section}{qw(parent_db parent_table)}
=~ m/^But the parent table `$n`\.`$n`$/m;
}
else {
my ( $attempted_op, $which, $index )
= $fulltext =~ m/^Trying to ([\w ]*) in (child|parent) table, in index `$n` tuple:$/m;
if ( $which ) {
$section->{$which . '_index'} = $index;
$section->{'attempted_op'} = $attempted_op || '';
# Parse out the related records in the other table.
my ( $search_index, $records );
if ( $which eq 'child' ) {
( $search_index, $records ) = $fulltext
=~ m/^But in parent table [^,]*, in index `$n`,\nthe closest match we can find is record:\n(.*)/ms;
$section->{'parent_index'} = $search_index;
}
else {
( $search_index, $records ) = $fulltext
=~ m/^But in child table [^,]*, in index `$n`, (?:the record is not available|there is a record:\n(.*))?/ms;
$section->{'child_index'} = $search_index;
}
if ( $records && $full ) {
$section->{'records'}
= parse_innodb_record_dump( $records, $complete, $debug );
}
else {
$section->{'records'} = '';
}
}
}
# Parse out the tuple trying to be updated, deleted or inserted.
my ( $trigger ) = $fulltext =~ m/^(DATA TUPLE: \d+ fields;\n.*)$/m;
if ( $trigger ) {
$section->{'trigger'} = parse_innodb_record_dump( $trigger, $complete, $debug );
}
# Certain data may not be present. Make them '' if not present.
map { $section->{$_} ||= "" }
qw(child_index fk_name col_name parent_table parent_col);
}
# There are new-style and old-style record formats. See rem/rem0rec.c
# TODO: write some tests for this
sub parse_innodb_record_dump {
my ( $dump, $complete, $debug ) = @_;
return undef unless $dump;
my $result = {};
if ( $dump =~ m/PHYSICAL RECORD/ ) {
my $style = $dump =~ m/compact format/ ? 'new' : 'old';
$result->{'style'} = $style;
# This is a new-style record.
if ( $style eq 'new' ) {
@{$result}{qw( heap_no type num_fields info_bits )}
= $dump
=~ m/^(?:Record lock, heap no $d )?([A-Z ]+): n_fields $d; compact format; info bits $d$/m;
}
# OK, it's old-style. Unfortunately there are variations here too.
elsif ( $dump =~ m/-byte offs / ) {
# Older-old style.
@{$result}{qw( heap_no type num_fields byte_offset info_bits )}
= $dump
=~ m/^(?:Record lock, heap no $d )?([A-Z ]+): n_fields $d; $d-byte offs [A-Z]+; info bits $d$/m;
if ( $dump !~ m/-byte offs TRUE/ ) {
$result->{'byte_offset'} = 0;
}
}
else {
# Newer-old style.
@{$result}{qw( heap_no type num_fields byte_offset info_bits )}
= $dump
=~ m/^(?:Record lock, heap no $d )?([A-Z ]+): n_fields $d; $d-byte offsets; info bits $d$/m;
}
}
else {
$result->{'style'} = 'tuple';
@{$result}{qw( type num_fields )}
= $dump =~ m/^(DATA TUPLE): $d fields;$/m;
}
# Fill in default values for things that couldn't be parsed.
map { $result->{$_} ||= 0 }
qw(heap_no num_fields byte_offset info_bits);
map { $result->{$_} ||= '' }
qw(style type );
my @fields = $dump =~ m/ (\d+:.*?;?);(?=$| \d+:)/gm;
$result->{'fields'} = [ map { parse_field($_, $complete, $debug ) } @fields ];
return $result;
}
# New/old-style applies here. See rem/rem0rec.c
# $text should not include the leading space or the second trailing semicolon.
sub parse_field {
my ( $text, $complete, $debug ) = @_;
# Sample fields:
# '4: SQL NULL, size 4 '
# '1: len 6; hex 000000005601; asc V ;'
# '6: SQL NULL'
# '5: len 30; hex 687474703a2f2f7777772e737765657477617465722e636f6d2f73746f72; asc http://www.sweetwater.com/stor;...(truncated)'
my ( $id, $nullsize, $len, $hex, $asc, $truncated );
( $id, $nullsize ) = $text =~ m/^$d: SQL NULL, size $d $/;
if ( !defined($id) ) {
( $id ) = $text =~ m/^$d: SQL NULL$/;
}
if ( !defined($id) ) {
( $id, $len, $hex, $asc, $truncated )
= $text =~ m/^$d: len $d; hex $h; asc (.*);(\.\.\.\(truncated\))?$/;
}
die "Could not parse this field: '$text'" unless defined $id;
return {
id => $id,
len => defined($len) ? $len : defined($nullsize) ? $nullsize : 0,
'hex' => defined($hex) ? $hex : '',
asc => defined($asc) ? $asc : '',
trunc => $truncated ? 1 : 0,
};
}
sub parse_dl_section {
my ( $dl, $complete, $debug, $full ) = @_;
return unless $dl;
my $fulltext = $dl->{'fulltext'};
return 0 unless $fulltext;
my ( $ts ) = $fulltext =~ m/^$s$/m;
return 0 unless $ts;
$dl->{'ts'} = [ parse_innodb_timestamp( $ts ) ];
$dl->{'timestring'} = ts_to_string($dl->{'ts'});
$dl->{'txns'} = {};
my @sections
= $fulltext
=~ m{
^\*{3}\s([^\n]*) # *** (1) WAITING FOR THIS...
(.*?) # Followed by anything, non-greedy
(?=(?:^\*{3})|\z) # Followed by another three stars or EOF
}gmsx;
# Loop through each section. There are no assumptions about how many
# there are, who holds and wants what locks, and who gets rolled back.
while ( my ($header, $body) = splice(@sections, 0, 2) ) {
my ( $txn_id, $what ) = $header =~ m/^\($d\) (.*):$/;
next unless $txn_id;
$dl->{'txns'}->{$txn_id} ||= {};
my $txn = $dl->{'txns'}->{$txn_id};
if ( $what eq 'TRANSACTION' ) {
$txn->{'tx'} = parse_tx_text( $body, $complete, $debug, $full );
}
else {
push @{$txn->{'locks'}}, parse_innodb_record_locks( $body, $complete, $debug, $full );
}
}
@{ $dl }{ qw(rolled_back) }
= $fulltext =~ m/^\*\*\* WE ROLL BACK TRANSACTION \($d\)$/m;
# Make sure certain values aren't undef
map { $dl->{$_} ||= '' } qw(rolled_back);
delete $dl->{'fulltext'} unless $debug;
return 1;
}
sub parse_innodb_record_locks {
my ( $text, $complete, $debug, $full ) = @_;
my @result;
foreach my $lock ( $text =~ m/(^(?:RECORD|TABLE) LOCKS?.*$)/gm ) {
my $hash = {};
@{$hash}{ qw(lock_type space_id page_no n_bits index db table txn_id lock_mode) }
= $lock
=~ m{^(RECORD|TABLE) LOCKS? (?:space id $d page no $d n bits $d index `?$n`? of )?table `$n(?:/|`\.`)$n` trx id $t lock.mode (\S+)}m;
( $hash->{'special'} )
= $lock =~ m/^(?:RECORD|TABLE) .*? locks (rec but not gap|gap before rec)/m;
$hash->{'insert_intention'}
= $lock =~ m/^(?:RECORD|TABLE) .*? insert intention/m ? 1 : 0;
$hash->{'waiting'}
= $lock =~ m/^(?:RECORD|TABLE) .*? waiting/m ? 1 : 0;
# Some things may not be in the text, so make sure they are not
# undef.
map { $hash->{$_} ||= 0 } qw(n_bits page_no space_id);
map { $hash->{$_} ||= "" } qw(index special);
push @result, $hash;
}
return @result;
}
sub parse_tx_text {
my ( $txn, $complete, $debug, $full ) = @_;
my ( $txn_id, $txn_status, $active_secs, $proc_no, $os_thread_id )
= $txn
=~ m/^(?:---)?TRANSACTION $t, (\D*?)(?: $d sec)?, (?:process no $d, )?OS thread id $d/m;
my ( $thread_status, $thread_decl_inside )
= $txn
=~ m/OS thread id \d+(?: ([^,]+?))?(?:, thread declared inside InnoDB $d)?$/m;
# Parsing the line that begins 'MySQL thread id' is complicated. The only
# thing always in the line is the thread and query id. See function
# innobase_mysql_print_thd in InnoDB source file sql/ha_innodb.cc.
my ( $thread_line ) = $txn =~ m/^(MySQL thread id .*)$/m;
my ( $mysql_thread_id, $query_id, $hostname, $ip, $user, $query_status );
if ( $thread_line ) {
# These parts can always be gotten.
( $mysql_thread_id, $query_id ) = $thread_line =~ m/^MySQL thread id $d, query id $d/m;
# If it's a master/slave thread, "Has (read|sent) all" may be the thread's
# proc_info. In these cases, there won't be any host/ip/user info
( $query_status ) = $thread_line =~ m/(Has (?:read|sent) all .*$)/m;
if ( defined($query_status) ) {
$user = 'system user';
}
# It may be the case that the query id is the last thing in the line.
elsif ( $thread_line =~ m/query id \d+ / ) {
# The IP address is the only non-word thing left, so it's the most
# useful marker for where I have to start guessing.
( $hostname, $ip ) = $thread_line =~ m/query id \d+(?: ([A-Za-z]\S+))? $i/m;
if ( defined $ip ) {
( $user, $query_status ) = $thread_line =~ m/$ip $w(?: (.*))?$/;
}
else { # OK, there wasn't an IP address.
# There might not be ANYTHING except the query status.
( $query_status ) = $thread_line =~ m/query id \d+ (.*)$/;
if ( $query_status !~ m/^\w+ing/ && !exists($is_proc_info{$query_status}) ) {
# The remaining tokens are, in order: hostname, user, query_status.
# It's basically impossible to know which is which.
( $hostname, $user, $query_status ) = $thread_line
=~ m/query id \d+(?: ([A-Za-z]\S+))?(?: $w(?: (.*))?)?$/m;
}
else {
$user = 'system user';
}
}
}
}
my ( $lock_wait_status, $lock_structs, $heap_size, $row_locks, $undo_log_entries )
= $txn
=~ m/^(?:(\D*) )?$d lock struct\(s\), heap size $d(?:, $d row lock\(s\))?(?:, undo log entries $d)?$/m;
my ( $lock_wait_time )
= $txn
=~ m/^------- TRX HAS BEEN WAITING $d SEC/m;
my $locks;
# If the transaction has locks, grab the locks.
if ( $txn =~ m/^TABLE LOCK|RECORD LOCKS/ ) {
$locks = [parse_innodb_record_locks($txn, $complete, $debug, $full)];
}
my ( $tables_in_use, $tables_locked )
= $txn
=~ m/^mysql tables in use $d, locked $d$/m;
my ( $txn_doesnt_see_ge, $txn_sees_lt )
= $txn
=~ m/^Trx read view will not see trx with id >= $t, sees < $t$/m;
my $has_read_view = defined($txn_doesnt_see_ge);
# Only a certain number of bytes of the query text are included here, at least
# under some circumstances. Some versions include 300, some 600.
my ( $query_text )
= $txn
=~ m{
^MySQL\sthread\sid\s[^\n]+\n # This comes before the query text
(.*?) # The query text
(?= # Followed by any of...
^Trx\sread\sview
|^-------\sTRX\sHAS\sBEEN\sWAITING
|^TABLE\sLOCK
|^RECORD\sLOCKS\sspace\sid
|^(?:---)?TRANSACTION
|^\*\*\*\s\(\d\)
|\Z
)
}xms;
if ( $query_text ) {
$query_text =~ s/\s+$//;
}
else {
$query_text = '';
}
my %stuff = (
active_secs => $active_secs,
has_read_view => $has_read_view,
heap_size => $heap_size,
hostname => $hostname,
ip => $ip,
lock_structs => $lock_structs,
lock_wait_status => $lock_wait_status,
lock_wait_time => $lock_wait_time,
mysql_thread_id => $mysql_thread_id,
os_thread_id => $os_thread_id,
proc_no => $proc_no,
query_id => $query_id,
query_status => $query_status,
query_text => $query_text,
row_locks => $row_locks,
tables_in_use => $tables_in_use,
tables_locked => $tables_locked,
thread_decl_inside => $thread_decl_inside,
thread_status => $thread_status,
txn_doesnt_see_ge => $txn_doesnt_see_ge,
txn_id => $txn_id,
txn_sees_lt => $txn_sees_lt,
txn_status => $txn_status,
undo_log_entries => $undo_log_entries,
user => $user,
);
$stuff{'fulltext'} = $txn if $debug;
$stuff{'locks'} = $locks if $locks;
# Some things may not be in the txn text, so make sure they are not
# undef.
map { $stuff{$_} ||= 0 } qw(active_secs heap_size lock_structs
tables_in_use undo_log_entries tables_locked has_read_view
thread_decl_inside lock_wait_time proc_no row_locks);
map { $stuff{$_} ||= "" } qw(thread_status txn_doesnt_see_ge
txn_sees_lt query_status ip query_text lock_wait_status user);
$stuff{'hostname'} ||= $stuff{'ip'};
return \%stuff;
}
sub parse_tx_section {
my ( $section, $complete, $debug, $full ) = @_;
return unless $section && $section->{'fulltext'};
my $fulltext = $section->{'fulltext'};
$section->{'transactions'} = [];
# Handle the individual transactions
my @transactions = $fulltext =~ m/(---TRANSACTION \d.*?)(?=\n---TRANSACTION|$)/gs;
foreach my $txn ( @transactions ) {
my $stuff = parse_tx_text( $txn, $complete, $debug, $full );
delete $stuff->{'fulltext'} unless $debug;
push @{$section->{'transactions'}}, $stuff;
}
# Handle the general info
@{$section}{ 'trx_id_counter' }
= $fulltext =~ m/^Trx id counter $t$/m;
@{$section}{ 'purge_done_for', 'purge_undo_for' }
= $fulltext =~ m/^Purge done for trx's n:o < $t undo n:o < $t$/m;
@{$section}{ 'history_list_len' } # This isn't present in some 4.x versions
= $fulltext =~ m/^History list length $d$/m;
@{$section}{ 'num_lock_structs' }
= $fulltext =~ m/^Total number of lock structs in row lock hash table $d$/m;
@{$section}{ 'is_truncated' }
= $fulltext =~ m/^\.\.\. truncated\.\.\.$/m ? 1 : 0;
# Fill in things that might not be present
foreach ( qw(history_list_len) ) {
$section->{$_} ||= 0;
}
delete $section->{'fulltext'} unless $debug;
return 1;
}
# I've read the source for this section.
sub parse_ro_section {
my ( $section, $complete, $debug, $full ) = @_;
return unless $section && $section->{'fulltext'};
my $fulltext = $section->{'fulltext'};
# Grab the info
@{$section}{ 'queries_inside', 'queries_in_queue' }
= $fulltext =~ m/^$d queries inside InnoDB, $d queries in queue$/m;
( $section->{ 'read_views_open' } )
= $fulltext =~ m/^$d read views open inside InnoDB$/m;
( $section->{ 'n_reserved_extents' } )
= $fulltext =~ m/^$d tablespace extents now reserved for B-tree/m;
@{$section}{ 'main_thread_proc_no', 'main_thread_id', 'main_thread_state' }
= $fulltext =~ m/^Main thread (?:process no. $d, )?id $d, state: (.*)$/m;
@{$section}{ 'num_rows_ins', 'num_rows_upd', 'num_rows_del', 'num_rows_read' }
= $fulltext =~ m/^Number of rows inserted $d, updated $d, deleted $d, read $d$/m;
@{$section}{ 'ins_sec', 'upd_sec', 'del_sec', 'read_sec' }
= $fulltext =~ m#^$f inserts/s, $f updates/s, $f deletes/s, $f reads/s$#m;
$section->{'main_thread_proc_no'} ||= 0;
map { $section->{$_} ||= 0 } qw(read_views_open n_reserved_extents);
delete $section->{'fulltext'} unless $debug;
return 1;
}
sub parse_lg_section {
my ( $section, $complete, $debug, $full ) = @_;
return unless $section;
my $fulltext = $section->{'fulltext'};
# Grab the info
( $section->{ 'log_seq_no' } )
= $fulltext =~ m/Log sequence number \s*(\d.*)$/m;
( $section->{ 'log_flushed_to' } )
= $fulltext =~ m/Log flushed up to \s*(\d.*)$/m;
( $section->{ 'last_chkp' } )
= $fulltext =~ m/Last checkpoint at \s*(\d.*)$/m;
@{$section}{ 'pending_log_writes', 'pending_chkp_writes' }
= $fulltext =~ m/$d pending log writes, $d pending chkp writes/;
@{$section}{ 'log_ios_done', 'log_ios_s' }
= $fulltext =~ m#$d log i/o's done, $f log i/o's/second#;
delete $section->{'fulltext'} unless $debug;
return 1;
}
sub parse_ib_section {
my ( $section, $complete, $debug, $full ) = @_;
return unless $section && $section->{'fulltext'};
my $fulltext = $section->{'fulltext'};
# Some servers will output ibuf information for tablespace 0, as though there
# might be many tablespaces with insert buffers. (In practice I believe
# the source code shows there will only ever be one). I have to parse both
# cases here, but I assume there will only be one.
@{$section}{ 'size', 'free_list_len', 'seg_size' }
= $fulltext =~ m/^Ibuf(?: for space 0)?: size $d, free list len $d, seg size $d,$/m;
@{$section}{ 'inserts', 'merged_recs', 'merges' }
= $fulltext =~ m/^$d inserts, $d merged recs, $d merges$/m;
@{$section}{ 'hash_table_size', 'used_cells', 'bufs_in_node_heap' }
= $fulltext =~ m/^Hash table size $d, used cells $d, node heap has $d buffer\(s\)$/m;
@{$section}{ 'hash_searches_s', 'non_hash_searches_s' }
= $fulltext =~ m{^$f hash searches/s, $f non-hash searches/s$}m;
delete $section->{'fulltext'} unless $debug;
return 1;
}
sub parse_wait_array {
my ( $text, $complete, $debug, $full ) = @_;
my %result;
@result{ qw(thread waited_at_filename waited_at_line waited_secs) }
= $text =~ m/^--Thread $d has waited at $fl for $f seconds/m;
# Depending on whether it's a SYNC_MUTEX,RW_LOCK_EX,RW_LOCK_SHARED,
# there will be different text output
if ( $text =~ m/^Mutex at/m ) {
$result{'request_type'} = 'M';
@result{ qw( lock_mem_addr lock_cfile_name lock_cline lock_var) }
= $text =~ m/^Mutex at $h created file $fl, lock var $d$/m;
@result{ qw( waiters_flag )}
= $text =~ m/^waiters flag $d$/m;
}
else {
@result{ qw( request_type lock_mem_addr lock_cfile_name lock_cline) }
= $text =~ m/^(.)-lock on RW-latch at $h created in file $fl$/m;
@result{ qw( writer_thread writer_lock_mode ) }
= $text =~ m/^a writer \(thread id $d\) has reserved it in mode (.*)$/m;
@result{ qw( num_readers waiters_flag )}
= $text =~ m/^number of readers $d, waiters flag $d$/m;
@result{ qw(last_s_file_name last_s_line ) }
= $text =~ m/Last time read locked in file $fl$/m;
@result{ qw(last_x_file_name last_x_line ) }
= $text =~ m/Last time write locked in file $fl$/m;
}
$result{'cell_waiting'} = $text =~ m/^wait has ended$/m ? 0 : 1;
$result{'cell_event_set'} = $text =~ m/^wait is ending$/m ? 1 : 0;
# Because there are two code paths, some things won't get set.
map { $result{$_} ||= '' }
qw(last_s_file_name last_x_file_name writer_lock_mode);
map { $result{$_} ||= 0 }
qw(num_readers lock_var last_s_line last_x_line writer_thread);
return \%result;
}
sub parse_sm_section {
my ( $section, $complete, $debug, $full ) = @_;
return 0 unless $section && $section->{'fulltext'};
my $fulltext = $section->{'fulltext'};
# Grab the info
@{$section}{ 'reservation_count', 'signal_count' }
= $fulltext =~ m/^OS WAIT ARRAY INFO: reservation count $d, signal count $d$/m;
@{$section}{ 'mutex_spin_waits', 'mutex_spin_rounds', 'mutex_os_waits' }
= $fulltext =~ m/^Mutex spin waits $d, rounds $d, OS waits $d$/m;
@{$section}{ 'rw_shared_spins', 'rw_shared_os_waits', 'rw_excl_spins', 'rw_excl_os_waits' }
= $fulltext =~ m/^RW-shared spins $d, OS waits $d; RW-excl spins $d, OS waits $d$/m;
# Look for info on waits.
my @waits = $fulltext =~ m/^(--Thread.*?)^(?=Mutex spin|--Thread)/gms;
$section->{'waits'} = [ map { parse_wait_array($_, $complete, $debug) } @waits ];
$section->{'wait_array_size'} = scalar(@waits);
delete $section->{'fulltext'} unless $debug;
return 1;
}
# I've read the source for this section.
sub parse_bp_section {
my ( $section, $complete, $debug, $full ) = @_;
return unless $section && $section->{'fulltext'};
my $fulltext = $section->{'fulltext'};
# Grab the info
@{$section}{ 'total_mem_alloc', 'add_pool_alloc' }
= $fulltext =~ m/^Total memory allocated $d; in additional pool allocated $d$/m;
@{$section}{'dict_mem_alloc'} = $fulltext =~ m/Dictionary memory allocated $d/;
@{$section}{'awe_mem_alloc'} = $fulltext =~ m/$d MB of AWE memory/;
@{$section}{'buf_pool_size'} = $fulltext =~ m/^Buffer pool size\s*$d$/m;
@{$section}{'buf_free'} = $fulltext =~ m/^Free buffers\s*$d$/m;
@{$section}{'pages_total'} = $fulltext =~ m/^Database pages\s*$d$/m;
@{$section}{'pages_modified'} = $fulltext =~ m/^Modified db pages\s*$d$/m;
@{$section}{'pages_read', 'pages_created', 'pages_written'}
= $fulltext =~ m/^Pages read $d, created $d, written $d$/m;
@{$section}{'page_reads_sec', 'page_creates_sec', 'page_writes_sec'}
= $fulltext =~ m{^$f reads/s, $f creates/s, $f writes/s$}m;
@{$section}{'buf_pool_hits', 'buf_pool_reads'}
= $fulltext =~ m{Buffer pool hit rate $d / $d$}m;
if ($fulltext =~ m/^No buffer pool page gets since the last printout$/m) {
@{$section}{'buf_pool_hits', 'buf_pool_reads'} = (0, 0);
@{$section}{'buf_pool_hit_rate'} = '--';
}
else {
@{$section}{'buf_pool_hit_rate'}
= $fulltext =~ m{Buffer pool hit rate (\d+ / \d+)$}m;
}
@{$section}{'reads_pending'} = $fulltext =~ m/^Pending reads $d/m;
@{$section}{'writes_pending_lru', 'writes_pending_flush_list', 'writes_pending_single_page' }
= $fulltext =~ m/^Pending writes: LRU $d, flush list $d, single page $d$/m;
map { $section->{$_} ||= 0 }
qw(writes_pending_lru writes_pending_flush_list writes_pending_single_page
awe_mem_alloc dict_mem_alloc);
@{$section}{'writes_pending'} = List::Util::sum(
@{$section}{ qw(writes_pending_lru writes_pending_flush_list writes_pending_single_page) });
delete $section->{'fulltext'} unless $debug;
return 1;
}
# I've read the source for this.
sub parse_io_section {
my ( $section, $complete, $debug, $full ) = @_;
return unless $section && $section->{'fulltext'};
my $fulltext = $section->{'fulltext'};
$section->{'threads'} = {};
# Grab the I/O thread info
my @threads = $fulltext =~ m<^(I/O thread \d+ .*)$>gm;
foreach my $thread (@threads) {
my ( $tid, $state, $purpose, $event_set )
= $thread =~ m{I/O thread $d state: (.+?) \((.*)\)(?: ev set)?$}m;
if ( defined $tid ) {
$section->{'threads'}->{$tid} = {
thread => $tid,
state => $state,
purpose => $purpose,
event_set => $event_set ? 1 : 0,
};
}
}
# Grab the reads/writes/flushes info
@{$section}{ 'pending_normal_aio_reads', 'pending_aio_writes' }
= $fulltext =~ m/^Pending normal aio reads: $d, aio writes: $d,$/m;
@{$section}{ 'pending_ibuf_aio_reads', 'pending_log_ios', 'pending_sync_ios' }
= $fulltext =~ m{^ ibuf aio reads: $d, log i/o's: $d, sync i/o's: $d$}m;
@{$section}{ 'flush_type', 'pending_log_flushes', 'pending_buffer_pool_flushes' }
= $fulltext =~ m/^Pending flushes \($w\) log: $d; buffer pool: $d$/m;
@{$section}{ 'os_file_reads', 'os_file_writes', 'os_fsyncs' }
= $fulltext =~ m/^$d OS file reads, $d OS file writes, $d OS fsyncs$/m;
@{$section}{ 'reads_s', 'avg_bytes_s', 'writes_s', 'fsyncs_s' }
= $fulltext =~ m{^$f reads/s, $d avg bytes/read, $f writes/s, $f fsyncs/s$}m;
@{$section}{ 'pending_preads', 'pending_pwrites' }
= $fulltext =~ m/$d pending preads, $d pending pwrites$/m;
@{$section}{ 'pending_preads', 'pending_pwrites' } = (0, 0)
unless defined($section->{'pending_preads'});
delete $section->{'fulltext'} unless $debug;
return 1;
}
sub _debug {
my ( $debug, $msg ) = @_;
if ( $debug ) {
die $msg;
}
else {
warn $msg;
}
return 1;
}
1;
# end_of_package
# ############################################################################
# Perldoc section. I put this last as per the Dog book.
# ############################################################################
=pod
=head1 NAME
InnoDBParser - Parse InnoDB monitor text.
=head1 DESCRIPTION
InnoDBParser tries to parse the output of the InnoDB monitor. One way to get
this output is to connect to a MySQL server and issue the command SHOW ENGINE
INNODB STATUS (omit 'ENGINE' on earlier versions of MySQL). The goal is to
turn text into data that something else (e.g. innotop) can use.
The output comes from all over, but the place to start in the source is
innobase/srv/srv0srv.c.
=head1 SYNOPSIS
use InnoDBParser;
use DBI;
# Get the status text.
my $dbh = DBI->connect(
"DBI::mysql:test;host=localhost",
'user',
'password'
);
my $query = 'SHOW /*!5 ENGINE */ INNODB STATUS';
my $text = $dbh->selectcol_arrayref($query)->[0];
# 1 or 0
my $debug = 1;
# Choose sections of the monitor text you want. Possible values:
# TRANSACTIONS => tx
# BUFFER POOL AND MEMORY => bp
# SEMAPHORES => sm
# LOG => lg
# ROW OPERATIONS => ro
# INSERT BUFFER AND ADAPTIVE HASH INDEX => ib
# FILE I/O => io
# LATEST DETECTED DEADLOCK => dl
# LATEST FOREIGN KEY ERROR => fk
my $required_sections = {
tx => 1,
};
# Parse the status text.
my $parser = InnoDBParser->new;
$innodb_status = $parser->parse_status_text(
$text,
$debug,
# Omit the following parameter to get all sections.
$required_sections,
);
=head1 COPYRIGHT, LICENSE AND WARRANTY
This package is copyright (c) 2006 Baron Schwartz, baron at xaprb dot com.
Feedback and improvements are gratefully received.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
systems, you can issue `man perlgpl' or `man perlartistic' to read these
licenses.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA
=head1 AUTHOR
Baron Schwartz, baron at xaprb dot com.
=head1 BUGS
None known, but I bet there are some. The InnoDB monitor text wasn't really
designed to be parsable.
=head1 SEE ALSO
innotop - a program that can format the parsed status information for humans
to read and enjoy.
=cut
Changelog for innotop and InnoDBParser:
2007-11-09: version 1.6.0
* S mode crashed on non-numeric values.
* New user-defined columns crashed upon restart.
* Added --color option to control terminal coloring.
2007-09-18: version 1.5.2
* Added the ability to monitor InnoDB status from a file.
* Changed W mode to L mode; it monitors all locks, not just lock waits.
2007-09-16: version 1.5.1
* Added C (Command Summary) mode.
* Fixed a bug in the 'avg' aggregate function.
2007-09-10: version 1.5.0
Changes:
* Added plugin functionality.
* Added group-by functionality.
* Moved the configuration file to a directory.
* Enhanced filtering and sorting on pivoted tables.
* Many small bug fixes.
2007-07-16: version 1.4.3
Changes:
* Added standard --version command-line option
* Changed colors to cyan instead of blue; more visible on dark terminals.
* Added information to the filter-choosing dialog.
* Added column auto-completion when entering a filter expression.
* Changed Term::ReadKey from optional to mandatory.
* Clarified username in password prompting.
* Ten thousand words of documentation!
Bugs fixed:
* innotop crashed in W mode when InnoDB status data was truncated.
* innotop didn't display errors in tables if debug was enabled.
* The colored() subroutine wasn't being created in non-interactive mode.
* Don't prompt to save password except the first time.
2007-05-03: version 1.4.2
This version contains all changes to the trunk until revision 239; some
changes in revisions 240:250 are included.
MAJOR CHANGES:
* Quick-filters to easily filter any column in any display
* Compatibility with MySQL 3.23 through 6.0
* Improved error handling when a server is down, permissions denied, etc
* Use additional SHOW INNODB STATUS information in 5.1.x
* Make all modes use tables consistently, so they can all be edited,
filtered, colored and sorted consistently
* Combine V, G and S modes into S mode, with v, g, and s hot-keys
* Let DBD driver read MySQL option files; permit connections without
user/pass/etc
* Compile SQL-like expressions into Perl subroutines; eliminate need to
know Perl
* Do not save all config data to config file, only save user's customizations
* Rewritten and improved command-line option handling
* Added --count, --delay, and other command-line options to support
run-and-exit operation
* Improve built-in variable sets
* Improve help screen with three-part balanced-column layout
* Simplify table-editor and improve hotkey support
* Require Perl to have high-resolution time support (Time::HiRes)
* Help the user choose a query to analyze or kill
* Enable EXPLAIN, show-full-query in T mode just like Q mode
* Let data-extraction access current, previous and incremental data sets
all at once
MINOR CHANGES:
* Column stabilizing for Q mode
* New color rules for T, Q, W modes
* Apply slave I/O filter to Q mode
* Improve detection of server version and other meta-data
* Make connection timeout a config variable
* Improve cross-version-compatible SQL syntax
* Get some information from the DBD driver instead of asking MySQL for it
* Improved error messages
* Improve server group creation/editing
* Improve connection/thread killing
* Fix broken key bindings and restore previously mapped hot-keys for
choosing columns
* Some documentation updates (but not nearly enough)
* Allow the user to specify graphing char in S mode (formerly G mode)
* Allow easy switching between variable sets in S mode
* Bind 'n' key globally to choose the 'next' server connection
* Bind '%' key globally to filter displayed tables
* Allow aligning columns on the decimal place for easy readability
* Add hide_hdr config variable to hide column headers in tables
* Add a feature to smartly run PURGE MASTER LOGS in Replication mode
* Enable debug mode as a globally configurable variable
* Improve error messages when an expression or filter doesn't compile or has
a run-time error; die on error when debug is enabled
* Allow user-configurable delays after executing SQL (to let the server
settle down before taking another measurement)
* Add an expression to show how long until a transaction is finished
* Add skip_innodb as a global config variable
* Add '%' after percentages to help disambiguate (user-configurable)
* Add column to M mode to help see how fast slave is catching up to master
BUG FIXES:
* T and W modes had wrong value for wait_status column
* Error tracking on connections didn't reset when the connection recovered
* wait_timeout on connections couldn't be set before MySQL 4.0.3
* There was a crash on 3.23 when wiping deadlocks
* Lettercase changes in some result sets (SHOW MASTER/SLAVE STATUS) between
MySQL versions crashed innotop
* Inactive connections crashed innotop upon access to DBD driver
* set_precision did not respect user defaults for number of digits
* --inc command-line option could not be negated
* InnoDB status parsing was not always parsing all needed information
* S mode (formerly G mode) could crash trying to divide non-numeric data
* M table didn't show Slave_open_temp_tables variable; incorrect lettercase
* DBD drivers with broken AutoCommit would crash innotop
* Some key bindings had incorrect labels
* Some config-file loading routines could load data for things that didn't
exist
* Headers printed too often in S mode
* High-resolution time was not used even when the user had it
* Non-interactive mode printed blank lines sometimes
* Q-mode header and statusbar showed different QPS numbers
* Formulas for key-cache and query-cache hit ratios were wrong
* Mac OS "Darwin" machines were mis-identified as Microsoft Windows
* Some multiplications crashed when given undefined input
* The commify transformation did not check its input and could crash
* Specifying an invalid mode on the command line or config file could crash
innotop
2007-03-29: version 1.4.1
* More tweaks to display of connection errors.
* Fixed a problem with skip-innodb in MySQL 5.1.
* Fix a bug with dead connections in single-connection mode.
* Fix a regex to allow parsing more data from truncated deadlocks.
* Don't load active cxns from the config file if the cxn isn't defined.
2007-03-03: version 1.4.0
* Further tweak error handling and display of connection errors
* More centralization of querying
* Fix forking so it doesn't kill all database connections
* Allow user to run innotop without permissions for GLOBAL variables and status
2007-02-11: version 1.3.6
* Handle some connection failures so innotop doesn't crash because of one server.
* Enable incremental display in more modes.
* Tweaks to colorizing, color editor, and default color rules.
* Tweaks to default sorting rules.
* Use prepared statements for efficiency.
* Bug fixes and code cleanups.
* Data storage is keyed on clock ticks now.
2007-02-03: version 1.3.5
* Bug fixes.
* More tools for editing configuration from within innotop.
* Filters and transformations are constrained to valid values.
* Support for colorizing rows.
* Sorting by multiple columns.
* Compress headers when display is very wide.
* Stabilize and limit column widths.
* Check config file formats when upgrading so upgrades go smoothly.
* Make D mode handle many connections at once.
* Extract simple expressions from data sets in column src property.
This makes innotop more awk-ish.
2007-01-16: version 1.3
* Readline support.
* Can be used unattended, or in a pipe-and-filter mode
where it outputs tab-separated data to standard output.
* You can specify a config file on the command line.
Config files can be marked read-only.
* Monitor multiple servers simultaneously.
* Server groups to help manage many servers conveniently.
* Monitor master/slave status, and control slaves.
* Columns can have user-defined expressions as their data sources.
* Better configuration tools.
* InnoDB status information is merged into SHOW VARIABLES and
SHOW STATUS information, so you can access it all together.
* High-precision time support in more places.
* Lots of tweaks to make things display more readably and compactly.
* Column transformations and filters.
2007-01-16: version 1.0.1
* NOTE: innotop is now hosted at Sourceforge, in Subversion not CVS.
The new project homepage is http://sourceforge.net/projects/innotop/
* Tweak default T/Q mode sort columns to match what people expect.
* Fix broken InnoDBParser.pm documentation (and hence man page).
2007-01-06: version 1.0
* NOTE: innotop is now hosted at Sourceforge, in Subversion not CVS.
The new project homepage is http://sourceforge.net/projects/innotop/
* Prevent control characters from freaking terminal out.
* Set timeout to keep busy servers from closing connection.
* There is only one InnoDB insert buffer.
* Make licenses clear and consistent.
2006-11-14: innotop 0.1.160, InnoDBParser version 1.69
* Support for ANSI color on Microsoft Windows (more readable, compact
display; thanks Gisbert W. Selke).
* Better handling of $ENV{HOME} on Windows.
* Added a LICENSE file to the package as per Gentoo bug:
http://bugs.gentoo.org/show_bug.cgi?id=147600
2006-11-11: innotop 0.1.157, InnoDBParser version 1.69
* Add Microsoft Windows support.
2006-10-19: innotop 0.1.154, InnoDBParser version 1.69
* Add O (Open Tables) mode
* Add some more checks to handle incomplete InnoDB status information
2006-09-30: innotop 0.1.152, InnoDBParser version 1.69
* Figured out what was wrong with package $VERSION variable: it wasn't
after the package declaration!
2006-09-28: innotop 0.1.152, InnoDBParser version 1.67
* Make more efforts towards crash-resistance and tolerance of completely
messed-up inputs. If innotop itself is broken, it is now much harder to
tell, because it just keeps on running without complaining.
* Fix a small bug parsing out some information and displaying it.
2006-09-05: innotop 0.1.149, InnoDBParser version 1.64
* Try to find and eliminate any parsing code that assumes pattern matches
will succeed.
2006-09-05: innotop 0.1.149, InnoDBParser version 1.62
* Make innotop crash-resistant, so I can declare it STABLE finally.
* Instead of using SQL conditional comments, detect MySQL version.
2006-08-22: innotop 0.1.147, InnoDBParser version 1.60
* Fix some innotop bugs with undefined values, bad formatting etc.
2006-08-19: innotop 0.1.146, InnoDBParser version 1.60
* Make innotop handle some unexpected NULL values in Q mode.
* Add OS wait information to W mode, so it is now "everything that waits."
* Center section captions better.
* Make R mode more readable and compact.
* Make InnoDBParser parse lock waits even when they've been waiting 0 secs.
2006-08-12: innotop 0.1.139, InnoDBParser version 1.59
* Add more documentation
* Tweak V mode to show more info in less space.
* Fix a bug in G mode.
2006-08-10: innotop 0.1.132, InnoDBParser version 1.58
* Handle yet more types of FK error... it will never end!
* Handle some special cases when DEADLOCK info truncated
* Add a bit more FK info to F mode in innotop
* More tests added to the test suite
2006-08-07: innotop 0.1.131, InnoDBParser version 1.55
* Fix another issue with configuration
* Handle another type of FK error
2006-08-03: innotop 0.1.130, InnoDBParser version 1.54
* Fix an issue loading config file
* Add heap_no to 'D' (InnoDB Deadlock) mode to ease deadlock debugging.
2006-08-02: innotop 0.1.128, InnoDBParser version 1.54
* Parse lock wait information from the TRANSACTION section.
* Even more OS-specific parsing... pain in the butt...
* Add 'W' (InnoDB Lock Wait) mode.
* Fix some minor display issues with statusbar.
2006-08-02: innotop 0.1.125, InnoDBParser version 1.50
* Don't try to get references to Perl built-in functions like time()
* Handle more OS-specific variations of InnoDB status text
* Add some more information to various places in innotop
2006-08-01: innotop 0.1.123, InnoDBParser version 1.47
* Enhance S and G modes: clear screen and re-print headers
* Don't crash when deadlock data is truncated
* Make Analyze mode say how to get back to whatever you came from
* Display 'nothing to display' when there is nothing
* Add ability to read InnoDB status text from a file (mostly helps test)
* Add table of Wait Array Information in Row Op/Semaphore mode
* Add table of lock information in InnoDB deadlock mode
* Ensure new features in upgrades don't get masked by existing config files
* Tweak default column choices for T mode
* Enhance foreign key parsing
* Enhance physical record and data tuple parsing
* Enhance lock parsing (handle old-style and new-style formats)
2006-07-24: innotop 0.1.112, InnoDBParser version 1.36
* InnoDBParser enhancements for FK error messages.
* A fix to innotop to prevent it from crashing while trying to display a FK
error message.
* Some minor cosmetic changes to number formatting in innotop.
2006-07-22: innotop 0.1.106, InnoDBParser version 1.35
* InnoDBParser is much more complete and accurate.
* Tons of bug fixes.
* Add partitions to EXPLAIN mode.
* Enhance Q mode header, add T mode header.
* Share some configuration variables across modes.
* Add formatted time columns to Q, T modes.
* Add command-line argument parsing.
* Turn off echo when asking for password.
* Add option to specify port when connecting.
* Let display-optimized-query display multiple notes.
* Lots of small improvements, such as showing more info in statusbar.
2006-07-02: innotop 0.1.74, InnoDBParser version 1.24
* Initial release for public consumption.
This source diff could not be displayed because it is too large. You can view the blob instead.
.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "INNOTOP 1p"
.TH INNOTOP 1p "2007-11-09" "perl v5.8.8" "User Contributed Perl Documentation"
.SH "NAME"
innotop \- MySQL and InnoDB transaction/status monitor.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
To monitor servers normally:
.PP
.Vb 1
\& innotop
.Ve
.PP
To monitor InnoDB status information from a file:
.PP
.Vb 1
\& innotop /var/log/mysql/mysqld.err
.Ve
.PP
To run innotop non-interactively in a pipe-and-filter configuration:
.PP
.Vb 1
\& innotop \-\-count 5 \-d 1 \-n
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
innotop monitors MySQL servers. Each of its modes shows you a different aspect
of what's happening in the server. For example, there's a mode for monitoring
replication, one for queries, and one for transactions. innotop refreshes its
data periodically, so you see an updating view.
.PP
innotop has lots of features for power users, but you can start and run it with
virtually no configuration. If you're just getting started, see
\&\*(L"\s-1QUICK\-START\s0\*(R". Press '?' at any time while running innotop for
context-sensitive help.
.SH "QUICK-START"
.IX Header "QUICK-START"
To start innotop, open a terminal or command prompt. If you have installed
innotop on your system, you should be able to just type \*(L"innotop\*(R" and press
Enter; otherwise, you will need to change to innotop's directory and type \*(L"perl
innotop\*(R".
.PP
The first thing innotop needs to know is how to connect to a MySQL server. You
can just enter the hostname of the server, for example \*(L"localhost\*(R" or
\&\*(L"127.0.0.1\*(R" if the server is on the same machine as innotop. After this innotop
will prompt you for a \s-1DSN\s0 (data source name). You should be able to just accept
the defaults by pressing Enter.
.PP
When innotop asks you about a table to use when resetting InnoDB deadlock
information, just accept the default for now. This is an advanced feature you
can configure later (see \*(L"D: InnoDB Deadlocks\*(R" for more).
.PP
If you have a .my.cnf file with your MySQL connection defaults, innotop can read
it, and you won't need to specify a username and password if it's in that file.
Otherwise, you should answer 'y' to the next couple of prompts.
.PP
After this, you should be connected, and innotop should show you something like
the following:
.PP
.Vb 1
\& InnoDB Txns (? for help) localhost, 01:11:19, InnoDB 10s :\-), 50 QPS,
.Ve
.PP
.Vb 2
\& CXN History Versions Undo Dirty Buf Used Bufs Txns MaxTxn
\& localhost 7 2035 0 0 0.00% 92.19% 1 07:34
.Ve
.PP
.Vb 5
\& CXN ID User Host Txn Status Time Undo Query Tex
\& localhost 98379 user1 webserver ACTIVE 07:34 0 SELECT `c
\& localhost 98450 user1 webserver ACTIVE 01:06 0 INSERT IN
\& localhost 97750 user1 webserver not starte 00:00 0
\& localhost 98375 user1 appserver not starte 00:00 0
.Ve
.PP
(This sample is truncated at the right so it will fit on a terminal when running
\&'man innotop')
.PP
This sample comes from a quiet server with few transactions active. If your
server is busy, you'll see more output. Notice the first line on the screen,
which tells you what mode you're in and what server you're connected to. You
can change to other modes with keystrokes; press 'Q' to switch to a list of
currently running queries.
.PP
Press the '?' key to see what keys are active in the current mode. You can
press any of these keys and innotop will either take the requested action or
prompt you for more input. If your system has Term::ReadLine support, you can
use \s-1TAB\s0 and other keys to auto-complete and edit input.
.PP
To quit innotop, press the 'q' key.
.SH "OPTIONS"
.IX Header "OPTIONS"
innotop is mostly configured via its configuration file, but some of the
configuration options can come from the command line. You can also specify a
file to monitor for InnoDB status output; see \*(L"\s-1MONITORING\s0 A \s-1FILE\s0\*(R" for more
details.
.PP
You can negate some options by prefixing the option name with \-\-no. For
example, \-\-noinc (or \-\-no\-inc) negates \*(L"\-\-inc\*(R".
.IP "\-\-help" 4
.IX Item "--help"
Print a summary of command-line usage and exit.
.IP "\-\-color" 4
.IX Item "--color"
Enable or disable terminal coloring. Corresponds to the \*(L"color\*(R" config file
setting.
.IP "\-\-config" 4
.IX Item "--config"
Specifies a configuration file to read. This option is non\-sticky, that is to
say it does not persist to the configuration file itself.
.IP "\-\-nonint" 4
.IX Item "--nonint"
Enable non-interactive operation. See \*(L"\s-1NON\-INTERACTIVE\s0 \s-1OPERATION\s0\*(R" for more.
.IP "\-\-count" 4
.IX Item "--count"
Refresh only the specified number of times (ticks) before exiting. Each refresh
is a pause for \*(L"interval\*(R" seconds, followed by requesting data from MySQL
connections and printing it to the terminal.
.IP "\-\-delay" 4
.IX Item "--delay"
Specifies the amount of time to pause between ticks (refreshes). Corresponds to
the configuration option \*(L"interval\*(R".
.IP "\-\-mode" 4
.IX Item "--mode"
Specifies the mode in which innotop should start. Corresponds to the
configuration option \*(L"mode\*(R".
.IP "\-\-inc" 4
.IX Item "--inc"
Specifies whether innotop should display absolute numbers or relative numbers
(offsets from their previous values). Corresponds to the configuration option
\&\*(L"status_inc\*(R".
.IP "\-\-version" 4
.IX Item "--version"
Output version information and exit.
.SH "HOTKEYS"
.IX Header "HOTKEYS"
innotop is interactive, and you control it with key\-presses.
.IP "\(bu" 4
Uppercase keys switch between modes.
.IP "\(bu" 4
Lowercase keys initiate some action within the current mode.
.IP "\(bu" 4
Other keys do something special like change configuration or show the
innotop license.
.PP
Press '?' at any time to see the currently active keys and what they do.
.SH "MODES"
.IX Header "MODES"
Each of innotop's modes retrieves and displays a particular type of data from
the servers you're monitoring. You switch between modes with uppercase keys.
The following is a brief description of each mode, in alphabetical order. To
switch to the mode, press the key listed in front of its heading in the
following list:
.IP "B: InnoDB Buffers" 4
.IX Item "B: InnoDB Buffers"
This mode displays information about the InnoDB buffer pool, page statistics,
insert buffer, and adaptive hash index. The data comes from \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0.
.Sp
This mode contains the \*(L"buffer_pool\*(R", \*(L"page_statistics\*(R",
\&\*(L"insert_buffers\*(R", and \*(L"adaptive_hash_index\*(R" tables by default.
.IP "C: Command Summary" 4
.IX Item "C: Command Summary"
This mode is similar to mytop's Command Summary mode. It shows the
\&\*(L"cmd_summary\*(R" table, which looks something like the following:
.Sp
.Vb 8
\& Command Summary (? for help) localhost, 25+07:16:43, 2.45 QPS, 3 thd, 5.0.40
\& _____________________ Command Summary _____________________
\& Name Value Pct Last Incr Pct
\& Select_scan 3244858 69.89% 2 100.00%
\& Select_range 1354177 29.17% 0 0.00%
\& Select_full_join 39479 0.85% 0 0.00%
\& Select_full_range_join 4097 0.09% 0 0.00%
\& Select_range_check 0 0.00% 0 0.00%
.Ve
.Sp
The command summary table is built by extracting variables from
\&\*(L"\s-1STATUS_VARIABLES\s0\*(R". The variables must be numeric and must match the prefix
given by the \*(L"cmd_filter\*(R" configuration variable. The variables are then
sorted by value descending and compared to the last variable, as shown above.
The percentage columns are percentage of the total of all variables in the
table, so you can see the relative weight of the variables.
.Sp
The example shows what you see if the prefix is \*(L"Select_\*(R". The default
prefix is \*(L"Com_\*(R". You can choose a prefix with the 's' key.
.Sp
It's rather like running \s-1SHOW\s0 \s-1VARIABLES\s0 \s-1LIKE\s0 \*(L"prefix%\*(R" with memory and
nice formatting.
.Sp
Values are aggregated across all servers. The Pct columns are not correctly
aggregated across multiple servers. This is a known limitation of the grouping
algorithm that may be fixed in the future.
.IP "D: InnoDB Deadlocks" 4
.IX Item "D: InnoDB Deadlocks"
This mode shows the transactions involved in the last InnoDB deadlock. A second
table shows the locks each transaction held and waited for. A deadlock is
caused by a cycle in the waits-for graph, so there should be two locks held and
one waited for unless the deadlock information is truncated.
.Sp
InnoDB puts deadlock information before some other information in the \s-1SHOW\s0
\&\s-1INNODB\s0 \s-1STATUS\s0 output. If there are a lot of locks, the deadlock information can
grow very large, and there is a limit on the size of the \s-1SHOW\s0 \s-1INNODB\s0
\&\s-1STATUS\s0 output. A large deadlock can fill the entire output, or even be
truncated, and prevent you from seeing other information at all. If you are
running innotop in another mode, for example T mode, and suddenly you don't see
anything, you might want to check and see if a deadlock has wiped out the data
you need.
.Sp
If it has, you can create a small deadlock to replace the large one. Use the
\&'w' key to 'wipe' the large deadlock with a small one. This will not work
unless you have defined a deadlock table for the connection (see \*(L"\s-1SERVER\s0 \s-1CONNECTIONS\s0\*(R").
.Sp
You can also configure innotop to automatically detect when a large deadlock
needs to be replaced with a small one (see \*(L"auto_wipe_dl\*(R").
.Sp
This mode displays the \*(L"deadlock_transactions\*(R" and \*(L"deadlock_locks\*(R" tables
by default.
.IP "F: InnoDB Foreign Key Errors" 4
.IX Item "F: InnoDB Foreign Key Errors"
This mode shows the last InnoDB foreign key error information, such as the
table where it happened, when and who and what query caused it, and so on.
.Sp
InnoDB has a huge variety of foreign key error messages, and many of them are
just hard to parse. innotop doesn't always do the best job here, but there's
so much code devoted to parsing this messy, unparseable output that innotop is
likely never to be perfect in this regard. If innotop doesn't show you what
you need to see, just look at the status text directly.
.Sp
This mode displays the \*(L"fk_error\*(R" table by default.
.IP "I: InnoDB I/O Info" 4
.IX Item "I: InnoDB I/O Info"
This mode shows InnoDB's I/O statistics, including the I/O threads, pending I/O,
file I/O miscellaneous, and log statistics. It displays the \*(L"io_threads\*(R",
\&\*(L"pending_io\*(R", \*(L"file_io_misc\*(R", and \*(L"log_statistics\*(R" tables by default.
.IP "L: Locks" 4
.IX Item "L: Locks"
This mode shows information about current locks. At the moment only InnoDB
locks are supported, and by default you'll only see locks for which transactions
are waiting. This information comes from the \s-1TRANSACTIONS\s0 section of the InnoDB
status text. If you have a very busy server, you may have frequent lock waits;
it helps to be able to see which tables and indexes are the \*(L"hot spot\*(R" for
locks. If your server is running pretty well, this mode should show nothing.
.Sp
You can configure MySQL and innotop to monitor not only locks for which a
transaction is waiting, but those currently held, too. You can do this with the
InnoDB Lock Monitor (<http://dev.mysql.com/doc/en/innodb\-monitor.html>). It's
not documented in the MySQL manual, but creating the lock monitor with the
following statement also affects the output of \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0, which innotop
uses:
.Sp
.Vb 1
\& CREATE TABLE innodb_lock_monitor(a int) ENGINE=INNODB;
.Ve
.Sp
This causes InnoDB to print its output to the MySQL file every 16 seconds or so,
as stated in the manual, but it also makes the normal \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0 output
include lock information, which innotop can parse and display (that's the
undocumented feature).
.Sp
This means you can do what may have seemed impossible: to a limited extent
(InnoDB truncates some information in the output), you can see which transaction
holds the locks something else is waiting for. You can also enable and disable
the InnoDB Lock Monitor with the key mappings in this mode.
.Sp
This mode displays the \*(L"innodb_locks\*(R" table by default. Here's a sample of
the screen when one connection is waiting for locks another connection holds:
.Sp
.Vb 7
\& _________________________________ InnoDB Locks __________________________
\& CXN ID Type Waiting Wait Active Mode DB Table Index
\& localhost 12 RECORD 1 00:10 00:10 X test t1 PRIMARY
\& localhost 12 TABLE 0 00:10 00:10 IX test t1
\& localhost 12 RECORD 1 00:10 00:10 X test t1 PRIMARY
\& localhost 11 TABLE 0 00:00 00:25 IX test t1
\& localhost 11 RECORD 0 00:00 00:25 X test t1 PRIMARY
.Ve
.Sp
You can see the first connection, \s-1ID\s0 12, is waiting for a lock on the \s-1PRIMARY\s0
key on test.t1, and has been waiting for 10 seconds. The second connection
isn't waiting, because the Waiting column is 0, but it holds locks on the same
index. That tells you connection 11 is blocking connection 12.
.IP "M: Master/Slave Replication Status" 4
.IX Item "M: Master/Slave Replication Status"
This mode shows the output of \s-1SHOW\s0 \s-1SLAVE\s0 \s-1STATUS\s0 and \s-1SHOW\s0 \s-1MASTER\s0 \s-1STATUS\s0 in three
tables. The first two divide the slave's status into \s-1SQL\s0 and I/O thread status,
and the last shows master status. Filters are applied to eliminate non-slave
servers from the slave tables, and non-master servers from the master table.
.Sp
This mode displays the \*(L"slave_sql_status\*(R", \*(L"slave_io_status\*(R", and
\&\*(L"master_status\*(R" tables by default.
.IP "O: Open Tables" 4
.IX Item "O: Open Tables"
This section comes from MySQL's \s-1SHOW\s0 \s-1OPEN\s0 \s-1TABLES\s0 command. By default it is
filtered to show tables which are in use by one or more queries, so you can
get a quick look at which tables are 'hot'. You can use this to guess which
tables might be locked implicitly.
.Sp
This mode displays the \*(L"open_tables\*(R" mode by default.
.IP "Q: Query List" 4
.IX Item "Q: Query List"
This mode displays the output from \s-1SHOW\s0 \s-1FULL\s0 \s-1PROCESSLIST\s0, much like \fBmytop\fR's
query list mode. This mode does \fBnot\fR show InnoDB-related information. This
is probably one of the most useful modes for general usage.
.Sp
There is an informative header that shows general status information about
your server. You can toggle it on and off with the 'h' key. By default,
innotop hides inactive processes and its own process. You can toggle these on
and off with the 'i' and 'a' keys.
.Sp
You can \s-1EXPLAIN\s0 a query from this mode with the 'e' key. This displays the
query's full text, the results of \s-1EXPLAIN\s0, and in newer MySQL versions, even
the optimized query resulting from \s-1EXPLAIN\s0 \s-1EXTENDED\s0. innotop also tries to
rewrite certain queries to make them EXPLAIN\-able. For example, \s-1INSERT/SELECT\s0
statements are rewritable.
.Sp
This mode displays the \*(L"q_header\*(R" and \*(L"processlist\*(R" tables by default.
.IP "R: InnoDB Row Operations and Semaphores" 4
.IX Item "R: InnoDB Row Operations and Semaphores"
This mode shows InnoDB row operations, row operation miscellaneous, semaphores,
and information from the wait array. It displays the \*(L"row_operations\*(R",
\&\*(L"row_operation_misc\*(R", \*(L"semaphores\*(R", and \*(L"wait_array\*(R" tables by default.
.IP "S: Variables & Status" 4
.IX Item "S: Variables & Status"
This mode calculates statistics, such as queries per second, and prints them out
in several different styles. You can show absolute values, or incremental values
between ticks.
.Sp
You can switch between the views by pressing a key. The 's' key prints a
single line each time the screen updates, in the style of \fBvmstat\fR. The 'g'
key changes the view to a graph of the same numbers, sort of like \fBtload\fR.
The 'v' key changes the view to a pivoted table of variable names on the left,
with successive updates scrolling across the screen from left to right. You can
choose how many updates to put on the screen with the \*(L"num_status_sets\*(R"
configuration variable.
.Sp
Headers may be abbreviated to fit on the screen in interactive operation. You
choose which variables to display with the 'c' key, which selects from
predefined sets, or lets you create your own sets. You can edit the current set
with the 'e' key.
.Sp
This mode doesn't really display any tables like other modes. Instead, it uses
a table definition to extract and format the data, but it then transforms the
result in special ways before outputting it. It uses the \*(L"var_status\*(R" table
definition for this.
.IP "T: InnoDB Transactions" 4
.IX Item "T: InnoDB Transactions"
This mode shows transactions from the InnoDB monitor's output, in \fBtop\fR\-like
format. This mode is the reason I wrote innotop.
.Sp
You can kill queries or processes with the 'k' and 'x' keys, and \s-1EXPLAIN\s0 a query
with the 'e' or 'f' keys. InnoDB doesn't print the full query in transactions,
so explaining may not work right if the query is truncated.
.Sp
The informational header can be toggled on and off with the 'h' key. By
default, innotop hides inactive transactions and its own transaction. You can
toggle this on and off with the 'i' and 'a' keys.
.Sp
This mode displays the \*(L"t_header\*(R" and \*(L"innodb_transactions\*(R" tables by
default.
.SH "INNOTOP STATUS"
.IX Header "INNOTOP STATUS"
The first line innotop displays is a \*(L"status bar\*(R" of sorts. What it contains
depends on the mode you're in, and what servers you're monitoring. The first
few words are always the innotop mode, such as \*(L"InnoDB Txns\*(R" for T mode,
followed by a reminder to press '?' for help at any time.
.Sh "\s-1ONE\s0 \s-1SERVER\s0"
.IX Subsection "ONE SERVER"
The simplest case is when you're monitoring a single server. In this case, the
name of the connection is next on the status line. This is the name you gave
when you created the connection \*(-- most likely the MySQL server's hostname.
This is followed by the server's uptime.
.PP
If you're in an InnoDB mode, such as T or B, the next word is \*(L"InnoDB\*(R" followed
by some information about the \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0 output used to render the
screen. The first word is the number of seconds since the last \s-1SHOW\s0 \s-1INNODB\s0
\&\s-1STATUS\s0, which InnoDB uses to calculate some per-second statistics. The next is
a smiley face indicating whether the InnoDB output is truncated. If the smiley
face is a :\-), all is well; there is no truncation. A :^| means the transaction
list is so long, InnoDB has only printed out some of the transactions. Finally,
a frown :\-( means the output is incomplete, which is probably due to a deadlock
printing too much lock information (see \*(L"D: InnoDB Deadlocks\*(R").
.PP
The next two words indicate the server's queries per second (\s-1QPS\s0) and how many
threads (connections) exist. Finally, the server's version number is the last
thing on the line.
.Sh "\s-1MULTIPLE\s0 \s-1SERVERS\s0"
.IX Subsection "MULTIPLE SERVERS"
If you are monitoring multiple servers (see \*(L"\s-1SERVER\s0 \s-1CONNECTIONS\s0\*(R"), the status
line does not show any details about individual servers. Instead, it shows the
names of the connections that are active. Again, these are connection names you
specified, which are likely to be the server's hostname. A connection that has
an error is prefixed with an exclamation point.
.PP
If you are monitoring a group of servers (see \*(L"\s-1SERVER\s0 \s-1GROUPS\s0\*(R"), the status
line shows the name of the group. If any connection in the group has an
error, the group's name is followed by the fraction of the connections that
don't have errors.
.PP
See \*(L"\s-1ERROR\s0 \s-1HANDLING\s0\*(R" for more details about innotop's error handling.
.Sh "\s-1MONITORING\s0 A \s-1FILE\s0"
.IX Subsection "MONITORING A FILE"
If you give a filename on the command line, innotop will not connect to \s-1ANY\s0
servers at all. It will watch the specified file for InnoDB status output and
use that as its data source. It will always show a single connection called
\&'file'. And since it can't connect to a server, it can't determine how long the
server it's monitoring has been up; so it calculates the server's uptime as time
since innotop started running.
.SH "SERVER ADMINISTRATION"
.IX Header "SERVER ADMINISTRATION"
While innotop is primarily a monitor that lets you watch and analyze your
servers, it can also send commands to servers. The most frequently useful
commands are killing queries and stopping or starting slaves.
.PP
You can kill a connection, or in newer versions of MySQL kill a query but not a
connection, from \*(L"Q: Query List\*(R" and \*(L"T: InnoDB Transactions\*(R" modes.
Press 'k' to issue a \s-1KILL\s0 command, or 'x' to issue a \s-1KILL\s0 \s-1QUERY\s0 command.
innotop will prompt you for the server and/or connection \s-1ID\s0 to kill (innotop
does not prompt you if there is only one possible choice for any input).
innotop pre-selects the longest-running query, or the oldest connection.
Confirm the command with 'y'.
.PP
In \*(L"M: Master/Slave Replication Status\*(R" mode, you can start and stop slaves
with the 'a' and 'o' keys, respectively. You can send these commands to many
slaves at once. innotop fills in a default command of \s-1START\s0 \s-1SLAVE\s0 or \s-1STOP\s0 \s-1SLAVE\s0
for you, but you can actually edit the command and send anything you wish, such
as \s-1SET\s0 \s-1GLOBAL\s0 SQL_SLAVE_SKIP_COUNTER=1 to make the slave skip one binlog event
when it starts.
.PP
You can also ask innotop to calculate the earliest binlog in use by any slave
and issue a \s-1PURGE\s0 \s-1MASTER\s0 \s-1LOGS\s0 on the master. Use the 'b' key for this. innotop
will prompt you for a master to run the command on, then prompt you for the
connection names of that master's slaves (there is no way for innotop to
determine this reliably itself). innotop will find the minimum binlog in use by
these slave connections and suggest it as the argument to \s-1PURGE\s0 \s-1MASTER\s0 \s-1LOGS\s0.
.SH "SERVER CONNECTIONS"
.IX Header "SERVER CONNECTIONS"
When you create a server connection, innotop asks you for a series of inputs, as
follows:
.IP "\s-1DSN\s0" 4
.IX Item "DSN"
A \s-1DSN\s0 is a Data Source Name, which is the initial argument passed to the \s-1DBI\s0
module for connecting to a server. It is usually of the form
.Sp
.Vb 1
\& DBI:mysql:;mysql_read_default_group=mysql;host=HOSTNAME
.Ve
.Sp
Since this \s-1DSN\s0 is passed to the DBD::mysql driver, you should read the driver's
documentation at \*(L"http://search.cpan.org/dist/DBD\-mysql/lib/DBD/mysql.pm\*(R" for
the exact details on all the options you can pass the driver in the \s-1DSN\s0. You
can read more about \s-1DBI\s0 at <http://dbi.perl.org/docs/>, and especially at
<http://search.cpan.org/~timb/DBI/DBI.pm>.
.Sp
The mysql_read_default_group=mysql option lets the \s-1DBD\s0 driver read your MySQL
options files, such as ~/.my.cnf on UNIX-ish systems. You can use this to avoid
specifying a username or password for the connection.
.IP "InnoDB Deadlock Table" 4
.IX Item "InnoDB Deadlock Table"
This optional item tells innotop a table name it can use to deliberately create
a small deadlock (see \*(L"D: InnoDB Deadlocks\*(R"). If you specify this option,
you just need to be sure the table doesn't exist, and that innotop can create
and drop the table with the InnoDB storage engine. You can safely omit or just
accept the default if you don't intend to use this.
.IP "Username" 4
.IX Item "Username"
innotop will ask you if you want to specify a username. If you say 'y', it will
then prompt you for a user name. If you have a MySQL option file that specifies
your username, you don't have to specify a username.
.Sp
The username defaults to your login name on the system you're running innotop on.
.IP "Password" 4
.IX Item "Password"
innotop will ask you if you want to specify a password. Like the username, the
password is optional, but there's an additional prompt that asks if you want to
save the password in the innotop configuration file. If you don't save it in
the configuration file, innotop will prompt you for a password each time it
starts. Passwords in the innotop configuration file are saved in plain text,
not encrypted in any way.
.PP
Once you finish answering these questions, you should be connected to a server.
But innotop isn't limited to monitoring a single server; you can define many
server connections and switch between them by pressing the '@' key. See
\&\*(L"\s-1SWITCHING\s0 \s-1BETWEEN\s0 \s-1CONNECTIONS\s0\*(R".
.PP
To create a new connection, press the '@' key and type the name of the new
connection, then follow the steps given above.
.SH "SERVER GROUPS"
.IX Header "SERVER GROUPS"
If you have multiple MySQL instances, you can put them into named groups, such
as 'all', 'masters', and 'slaves', which innotop can monitor all together.
.PP
You can choose which group to monitor with the '#' key, and you can press the
\&\s-1TAB\s0 key to switch to the next group. If you're not currently monitoring a
group, pressing \s-1TAB\s0 selects the first group.
.PP
To create a group, press the '#' key and type the name of your new group, then
type the names of the connections you want the group to contain.
.SH "SWITCHING BETWEEN CONNECTIONS"
.IX Header "SWITCHING BETWEEN CONNECTIONS"
innotop lets you quickly switch which servers you're monitoring. The most basic
way is by pressing the '@' key and typing the name(s) of the connection(s) you
want to use. This setting is per\-mode, so you can monitor different connections
in each mode, and innotop remembers which connections you choose.
.PP
You can quickly switch to the 'next' connection in alphabetical order with the
\&'n' key. If you're monitoring a server group (see \*(L"\s-1SERVER\s0 \s-1GROUPS\s0\*(R") this will
switch to the first connection.
.PP
You can also type many connection names, and innotop will fetch and display data
from them all. Just separate the connection names with spaces, for example
\&\*(L"server1 server2.\*(R" Again, if you type the name of a connection that doesn't
exist, innotop will prompt you for connection information and create the
connection.
.PP
Another way to monitor multiple connections at once is with server groups. You
can use the \s-1TAB\s0 key to switch to the 'next' group in alphabetical order, or if
you're not monitoring any groups, \s-1TAB\s0 will switch to the first group.
.PP
innotop does not fetch data in parallel from connections, so if you are
monitoring a large group or many connections, you may notice increased delay
between ticks.
.PP
When you monitor more than one connection, innotop's status bar changes. See
\&\*(L"\s-1INNOTOP\s0 \s-1STATUS\s0\*(R".
.SH "ERROR HANDLING"
.IX Header "ERROR HANDLING"
Error handling is not that important when monitoring a single connection, but is
crucial when you have many active connections. A crashed server or lost
connection should not crash innotop. As a result, innotop will continue to run
even when there is an error; it just won't display any information from the
connection that had an error. Because of this, innotop's behavior might confuse
you. It's a feature, not a bug!
.PP
innotop does not continue to query connections that have errors, because they
may slow innotop and make it hard to use, especially if the error is a problem
connecting and causes a long time\-out. Instead, innotop retries the connection
occasionally to see if the error still exists. If so, it will wait until some
point in the future. The wait time increases in ticks as the Fibonacci series,
so it tries less frequently as time passes.
.PP
Since errors might only happen in certain modes because of the \s-1SQL\s0 commands
issued in those modes, innotop keeps track of which mode caused the error. If
you switch to a different mode, innotop will retry the connection instead of
waiting.
.PP
By default innotop will display the problem in red text at the bottom of the
first table on the screen. You can disable this behavior with the
\&\*(L"show_cxn_errors_in_tbl\*(R" configuration option, which is enabled by default.
If the \*(L"debug\*(R" option is enabled, innotop will display the error at the
bottom of every table, not just the first. And if \*(L"show_cxn_errors\*(R" is
enabled, innotop will print the error text to \s-1STDOUT\s0 as well. Error messages
might only display in the mode that caused the error, depending on the mode and
whether innotop is avoiding querying that connection.
.SH "NON-INTERACTIVE OPERATION"
.IX Header "NON-INTERACTIVE OPERATION"
You can run innotop in non-interactive mode, in which case it is entirely
controlled from the configuration file and command-line options. To start
innotop in non-interactive mode, give the L\*(L"<\-\-nonint\*(R"> command-line option.
This changes innotop's behavior in the following ways:
.IP "\(bu" 4
Certain Perl modules are not loaded. Term::Readline is not loaded, since
innotop doesn't prompt interactively. Term::ANSIColor and Win32::Console::ANSI
modules are not loaded. Term::ReadKey is still used, since innotop may have to
prompt for connection passwords when starting up.
.IP "\(bu" 4
innotop does not clear the screen after each tick.
.IP "\(bu" 4
innotop does not persist any changes to the configuration file.
.IP "\(bu" 4
If \*(L"\-\-count\*(R" is given and innotop is in incremental mode (see \*(L"status_inc\*(R"
and \*(L"\-\-inc\*(R"), innotop actually refreshes one more time than specified so it
can print incremental statistics. This suppresses output during the first
tick, so innotop may appear to hang.
.IP "\(bu" 4
innotop only displays the first table in each mode. This is so the output can
be easily processed with other command-line utilities such as awk and sed. To
change which tables display in each mode, see \*(L"\s-1TABLES\s0\*(R". Since \*(L"Q: Query List\*(R" mode is so important, innotop automatically disables the \*(L"q_header\*(R"
table. This ensures you'll see the \*(L"processlist\*(R" table, even if you have
innotop configured to show the q_header table during interactive operation.
Similarly, in \*(L"T: InnoDB Transactions\*(R" mode, the \*(L"t_header\*(R" table is
suppressed so you see only the \*(L"innodb_transactions\*(R" table.
.IP "\(bu" 4
All output is tab-separated instead of being column-aligned with whitespace, and
innotop prints the full contents of each table instead of only printing one
screenful at a time.
.IP "\(bu" 4
innotop only prints column headers once instead of every tick (see
\&\*(L"hide_hdr\*(R"). innotop does not print table captions (see
\&\*(L"display_table_captions\*(R"). innotop ensures there are no empty lines in the
output.
.IP "\(bu" 4
innotop does not honor the \*(L"shorten\*(R" transformation, which normally shortens
some numbers to human-readable formats.
.IP "\(bu" 4
innotop does not print a status line (see \*(L"\s-1INNOTOP\s0 \s-1STATUS\s0\*(R").
.SH "CONFIGURING"
.IX Header "CONFIGURING"
Nearly everything about innotop is configurable. Most things are possible to
change with built-in commands, but you can also edit the configuration file.
.PP
While running innotop, press the '$' key to bring up the configuration editing
dialog. Press another key to select the type of data you want to edit:
.IP "S: Statement Sleep Times" 4
.IX Item "S: Statement Sleep Times"
Edits \s-1SQL\s0 statement sleep delays, which make innotop pause for the specified
amount of time after executing a statement. See \*(L"\s-1SQL\s0 \s-1STATEMENTS\s0\*(R" for a
definition of each statement and what it does. By default innotop does not
delay after any statements.
.Sp
This feature is included so you can customize the side-effects caused by
monitoring your server. You may not see any effects, but some innotop users
have noticed that certain MySQL versions under very high load with InnoDB
enabled take longer than usual to execute \s-1SHOW\s0 \s-1GLOBAL\s0 \s-1STATUS\s0. If innotop calls
\&\s-1SHOW\s0 \s-1FULL\s0 \s-1PROCESSLIST\s0 immediately afterward, the processlist contains more
queries than the machine actually averages at any given moment. Configuring
innotop to pause briefly after calling \s-1SHOW\s0 \s-1GLOBAL\s0 \s-1STATUS\s0 alleviates this
effect.
.Sp
Sleep times are stored in the \*(L"stmt_sleep_times\*(R" section of the configuration
file. Fractional-second sleeps are supported, subject to your hardware's
limitations.
.IP "c: Edit Columns" 4
.IX Item "c: Edit Columns"
Starts the table editor on one of the displayed tables. See \*(L"\s-1TABLE\s0 \s-1EDITOR\s0\*(R".
An alternative way to start the table editor without entering the configuration
dialog is with the '^' key.
.IP "g: General Configuration" 4
.IX Item "g: General Configuration"
Starts the configuration editor to edit global and mode-specific configuration
variables (see \*(L"\s-1MODES\s0\*(R"). innotop prompts you to choose a variable from among
the global and mode-specific ones depending on the current mode.
.IP "k: Row-Coloring Rules" 4
.IX Item "k: Row-Coloring Rules"
Starts the row-coloring rules editor on one of the displayed table(s). See
\&\*(L"\s-1COLORS\s0\*(R" for details.
.IP "p: Manage Plugins" 4
.IX Item "p: Manage Plugins"
Starts the plugin configuration editor. See \*(L"\s-1PLUGINS\s0\*(R" for details.
.IP "s: Server Groups" 4
.IX Item "s: Server Groups"
Lets you create and edit server groups. See \*(L"\s-1SERVER\s0 \s-1GROUPS\s0\*(R".
.IP "t: Choose Displayed Tables" 4
.IX Item "t: Choose Displayed Tables"
Lets you choose which tables to display in this mode. See \*(L"\s-1MODES\s0\*(R" and
\&\*(L"\s-1TABLES\s0\*(R".
.SH "CONFIGURATION FILE"
.IX Header "CONFIGURATION FILE"
innotop's default configuration file location is in \f(CW$HOME\fR/.innotop, but can be
overridden with the \*(L"\-\-config\*(R" command-line option. You can edit it by hand
safely. innotop reads the configuration file when it starts, and writes it out
again when it exits, so any changes you make while innotop is running will be
lost.
.PP
innotop doesn't store its entire configuration in the configuration file. It
has a huge set of default configuration that it holds only in memory, and the
configuration file only overrides these defaults. When you customize a default
setting, innotop notices, and then stores the customizations into the file.
This keeps the file size down, makes it easier to edit, and makes upgrades
easier.
.PP
A configuration file can be made read\-only. See \*(L"readonly\*(R".
.PP
The configuration file is arranged into sections like an \s-1INI\s0 file. Each
section begins with [section\-name] and ends with [/section\-name]. Each
section's entries have a different syntax depending on the data they need to
store. You can put comments in the file; any line that begins with a #
character is a comment. innotop will not read the comments, so it won't write
them back out to the file when it exits. Comments in read-only configuration
files are still useful, though.
.PP
The first line in the file is innotop's version number. This lets innotop
notice when the file format is not backwards\-compatible, and upgrade smoothly
without destroying your customized configuration.
.PP
The following list describes each section of the configuration file and the data
it contains:
.IP "general" 4
.IX Item "general"
The 'general' section contains global configuration variables and variables that
may be mode\-specific, but don't belong in any other section. The syntax is a
simple key=value list. innotop writes a comment above each value to help you
edit the file by hand.
.RS 4
.IP "S_func" 4
.IX Item "S_func"
Controls S mode presentation (see \*(L"S: Variables & Status\*(R"). If g, values are
graphed; if s, values are like vmstat; if p, values are in a pivoted table.
.IP "S_set" 4
.IX Item "S_set"
Specifies which set of variables to display in \*(L"S: Variables & Status\*(R" mode.
See \*(L"\s-1VARIABLE\s0 \s-1SETS\s0\*(R".
.IP "auto_wipe_dl" 4
.IX Item "auto_wipe_dl"
Instructs innotop to automatically wipe large deadlocks when it notices them.
When this happens you may notice a slight delay. At the next tick, you will
usually see the information that was being truncated by the large deadlock.
.IP "charset" 4
.IX Item "charset"
Specifies what kind of characters to allow through the \*(L"no_ctrl_char\*(R"
transformation. This keeps non-printable characters from confusing a
terminal when you monitor queries that contain binary data, such as images.
.Sp
The default is 'ascii', which considers anything outside normal \s-1ASCII\s0 to be a
control character. The other allowable values are 'unicode' and 'none'. 'none'
considers every character a control character, which can be useful for
collapsing \s-1ALL\s0 text fields in queries.
.IP "cmd_filter" 4
.IX Item "cmd_filter"
This is the prefix that filters variables in \*(L"C: Command Summary\*(R" mode.
.IP "color" 4
.IX Item "color"
Whether terminal coloring is permitted.
.IP "cxn_timeout" 4
.IX Item "cxn_timeout"
On MySQL versions 4.0.3 and newer, this variable is used to set the connection's
timeout, so MySQL doesn't close the connection if it is not used for a while.
This might happen because a connection isn't monitored in a particular mode, for
example.
.IP "debug" 4
.IX Item "debug"
This option enables more verbose errors and makes innotop more strict in some
places. It can help in debugging filters and other user-defined code. It also
makes innotop write a lot of information to \*(L"debugfile\*(R" when there is a
crash.
.IP "debugfile" 4
.IX Item "debugfile"
A file to which innotop will write information when there is a crash. See
\&\*(L"\s-1FILES\s0\*(R".
.IP "display_table_captions" 4
.IX Item "display_table_captions"
innotop displays a table caption above most tables. This variable suppresses or
shows captions on all tables globally. Some tables are configured with the
hide_caption property, which overrides this.
.IP "global" 4
.IX Item "global"
Whether to show \s-1GLOBAL\s0 variables and status. innotop only tries to do this on
servers which support the \s-1GLOBAL\s0 option to \s-1SHOW\s0 \s-1VARIABLES\s0 and \s-1SHOW\s0 \s-1STATUS\s0. In
some MySQL versions, you need certain privileges to do this; if you don't have
them, innotop will not be able to fetch any variable and status data. This
configuration variable lets you run innotop and fetch what data you can even
without the elevated privileges.
.Sp
I can no longer find or reproduce the situation where \s-1GLOBAL\s0 wasn't allowed, but
I know there was one.
.IP "graph_char" 4
.IX Item "graph_char"
Defines the character to use when drawing graphs in \*(L"S: Variables & Status\*(R"
mode.
.IP "header_highlight" 4
.IX Item "header_highlight"
Defines how to highlight column headers. This only works if Term::ANSIColor is
available. Valid values are 'bold' and 'underline'.
.IP "hide_hdr" 4
.IX Item "hide_hdr"
Hides column headers globally.
.IP "interval" 4
.IX Item "interval"
The interval at which innotop will refresh its data (ticks). The interval is
implemented as a sleep time between ticks, so the true interval will vary
depending on how long it takes innotop to fetch and render data.
.Sp
This variable accepts fractions of a second.
.IP "mode" 4
.IX Item "mode"
The mode in which innotop should start. Allowable arguments are the same as the
key presses that select a mode interactively. See \*(L"\s-1MODES\s0\*(R".
.IP "num_digits" 4
.IX Item "num_digits"
How many digits to show in fractional numbers and percents. This variable's
range is between 0 and 9 and can be set directly from \*(L"S: Variables & Status\*(R"
mode with the '+' and '\-' keys. It is used in the \*(L"set_precision\*(R",
\&\*(L"shorten\*(R", and \*(L"percent\*(R" transformations.
.IP "num_status_sets" 4
.IX Item "num_status_sets"
Controls how many sets of status variables to display in pivoted \*(L"S: Variables & Status\*(R" mode. It also controls the number of old sets of variables innotop
keeps in its memory, so the larger this variable is, the more memory innotop
uses.
.IP "plugin_dir" 4
.IX Item "plugin_dir"
Specifies where plugins can be found. By default, innotop stores plugins in the
\&'plugins' subdirectory of your innotop configuration directory.
.IP "readonly" 4
.IX Item "readonly"
Whether the configuration file is readonly. This cannot be set interactively,
because it would prevent itself from being written to the configuration file.
.IP "show_cxn_errors" 4
.IX Item "show_cxn_errors"
Makes innotop print connection errors to \s-1STDOUT\s0. See \*(L"\s-1ERROR\s0 \s-1HANDLING\s0\*(R".
.IP "show_cxn_errors_in_tbl" 4
.IX Item "show_cxn_errors_in_tbl"
Makes innotop display connection errors as rows in the first table on screen.
See \*(L"\s-1ERROR\s0 \s-1HANDLING\s0\*(R".
.IP "show_percent" 4
.IX Item "show_percent"
Adds a '%' character after the value returned by the \*(L"percent\*(R"
transformation.
.IP "show_statusbar" 4
.IX Item "show_statusbar"
Controls whether to show the status bar in the display. See \*(L"\s-1INNOTOP\s0 \s-1STATUS\s0\*(R".
.IP "skip_innodb" 4
.IX Item "skip_innodb"
Disables fetching \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0, in case your server(s) do not have InnoDB
enabled and you don't want innotop to try to fetch it. This can also be useful
when you don't have the \s-1SUPER\s0 privilege, required to run \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0.
.IP "status_inc" 4
.IX Item "status_inc"
Whether to show absolute or incremental values for status variables.
Incremental values are calculated as an offset from the last value innotop saw
for that variable. This is a global setting, but will probably become
mode-specific at some point. Right now it is honored a bit inconsistently; some
modes don't pay attention to it.
.RE
.RS 4
.RE
.IP "plugins" 4
.IX Item "plugins"
This section holds a list of package names of active plugins. If the plugin
exists, innotop will activate it. See \*(L"\s-1PLUGINS\s0\*(R" for more information.
.IP "filters" 4
.IX Item "filters"
This section holds user-defined filters (see \*(L"\s-1FILTERS\s0\*(R"). Each line is in the
format filter_name=text='filter text' tbls='table list'.
.Sp
The filter text is the text of the subroutine's code. The table list is a list
of tables to which the filter can apply. By default, user-defined filters apply
to the table for which they were created, but you can manually override that by
editing the definition in the configuration file.
.IP "active_filters" 4
.IX Item "active_filters"
This section stores which filters are active on each table. Each line is in the
format table_name=filter_list.
.IP "tbl_meta" 4
.IX Item "tbl_meta"
This section stores user-defined or user-customized columns (see \*(L"\s-1COLUMNS\s0\*(R").
Each line is in the format col_name=properties, where the properties are a
name=quoted\-value list.
.IP "connections" 4
.IX Item "connections"
This section holds the server connections you have defined. Each line is in the
format name=properties, where the properties are a name=value list. The
properties are self\-explanatory, and the only one that is treated specially is
\&'pass' which is only present if 'savepass' is set. See \*(L"\s-1SERVER\s0 \s-1CONNECTIONS\s0\*(R".
.IP "active_connections" 4
.IX Item "active_connections"
This section holds a list of which connections are active in each mode. Each
line is in the format mode_name=connection_list.
.IP "server_groups" 4
.IX Item "server_groups"
This section holds server groups. Each line is in the format
name=connection_list. See \*(L"\s-1SERVER\s0 \s-1GROUPS\s0\*(R".
.IP "active_server_groups" 4
.IX Item "active_server_groups"
This section holds a list of which server group is active in each mode. Each
line is in the format mode_name=server_group.
.IP "max_values_seen" 4
.IX Item "max_values_seen"
This section holds the maximum values seen for variables. This is used to scale
the graphs in \*(L"S: Variables & Status\*(R" mode. Each line is in the format
name=value.
.IP "active_columns" 4
.IX Item "active_columns"
This section holds table column lists. Each line is in the format
tbl_name=column_list. See \*(L"\s-1COLUMNS\s0\*(R".
.IP "sort_cols" 4
.IX Item "sort_cols"
This section holds the sort definition. Each line is in the format
tbl_name=column_list. If a column is prefixed with '\-', that column sorts
descending. See \*(L"\s-1SORTING\s0\*(R".
.IP "visible_tables" 4
.IX Item "visible_tables"
This section defines which tables are visible in each mode. Each line is in the
format mode_name=table_list. See \*(L"\s-1TABLES\s0\*(R".
.IP "varsets" 4
.IX Item "varsets"
This section defines variable sets for use in \*(L"S: Status & Variables\*(R" mode.
Each line is in the format name=variable_list. See \*(L"\s-1VARIABLE\s0 \s-1SETS\s0\*(R".
.IP "colors" 4
.IX Item "colors"
This section defines colorization rules. Each line is in the format
tbl_name=property_list. See \*(L"\s-1COLORS\s0\*(R".
.IP "stmt_sleep_times" 4
.IX Item "stmt_sleep_times"
This section contains statement sleep times. Each line is in the format
statement_name=sleep_time. See \*(L"S: Statement Sleep Times\*(R".
.IP "group_by" 4
.IX Item "group_by"
This section contains column lists for table group_by expressions. Each line is
in the format tbl_name=column_list. See \*(L"\s-1GROUPING\s0\*(R".
.SH "CUSTOMIZING"
.IX Header "CUSTOMIZING"
You can customize innotop a great deal. For example, you can:
.IP "\(bu" 4
Choose which tables to display, and in what order.
.IP "\(bu" 4
Choose which columns are in those tables, and create new columns.
.IP "\(bu" 4
Filter which rows display with built-in filters, user-defined filters, and
quick\-filters.
.IP "\(bu" 4
Sort the rows to put important data first or group together related rows.
.IP "\(bu" 4
Highlight rows with color.
.IP "\(bu" 4
Customize the alignment, width, and formatting of columns, and apply
transformations to columns to extract parts of their values or format the values
as you wish (for example, shortening large numbers to familiar units).
.IP "\(bu" 4
Design your own expressions to extract and combine data as you need. This gives
you unlimited flexibility.
.PP
All these and more are explained in the following sections.
.Sh "\s-1TABLES\s0"
.IX Subsection "TABLES"
A table is what you'd expect: a collection of columns. It also has some other
properties, such as a caption. Filters, sorting rules, and colorization rules
belong to tables and are covered in later sections.
.PP
Internally, table meta-data is defined in a data structure called \f(CW%tbl_meta\fR.
This hash holds all built-in table definitions, which contain a lot of default
instructions to innotop. The meta-data includes the caption, a list of columns
the user has customized, a list of columns, a list of visible columns, a list of
filters, color rules, a sort-column list, sort direction, and some information
about the table's data sources. Most of this is customizable via the table
editor (see \*(L"\s-1TABLE\s0 \s-1EDITOR\s0\*(R").
.PP
You can choose which tables to show by pressing the '$' key. See \*(L"\s-1MODES\s0\*(R" and
\&\*(L"\s-1TABLES\s0\*(R".
.PP
The table life-cycle is as follows:
.IP "\(bu" 4
Each table begins with a data source, which is an array of hashes. See below
for details on data sources.
.IP "\(bu" 4
Each element of the data source becomes a row in the final table.
.IP "\(bu" 4
For each element in the data source, innotop extracts values from the source and
creates a row. This row is another hash, which later steps will refer to as
\&\f(CW$set\fR. The values innotop extracts are determined by the table's columns. Each
column has an extraction subroutine, compiled from an expression (see
\&\*(L"\s-1EXPRESSIONS\s0\*(R"). The resulting row is a hash whose keys are named the same as
the column name.
.IP "\(bu" 4
innotop filters the rows, removing those that don't need to be displayed. See
\&\*(L"\s-1FILTERS\s0\*(R".
.IP "\(bu" 4
innotop sorts the rows. See \*(L"\s-1SORTING\s0\*(R".
.IP "\(bu" 4
innotop groups the rows together, if specified. See \*(L"\s-1GROUPING\s0\*(R".
.IP "\(bu" 4
innotop colorizes the rows. See \*(L"\s-1COLORS\s0\*(R".
.IP "\(bu" 4
innotop transforms the column values in each row. See \*(L"\s-1TRANSFORMATIONS\s0\*(R".
.IP "\(bu" 4
innotop optionally pivots the rows (see \*(L"\s-1PIVOTING\s0\*(R"), then filters and sorts
them.
.IP "\(bu" 4
innotop formats and justifies the rows as a table. During this step, innotop
applies further formatting to the column values, including alignment, maximum
and minimum widths. innotop also does final error checking to ensure there are
no crashes due to undefined values. innotop then adds a caption if specified,
and the table is ready to print.
.PP
The lifecycle is slightly different if the table is pivoted, as noted above. To
clarify, if the table is pivoted, the process is extract, group, transform,
pivot, filter, sort, create. If it's not pivoted, the process is extract,
filter, sort, group, color, transform, create. This slightly convoluted process
doesn't map all that well to \s-1SQL\s0, but pivoting complicates things pretty
thoroughly. Roughly speaking, filtering and sorting happen as late as needed to
effect the final result as you might expect, but as early as possible for
efficiency.
.PP
Each built-in table is described below:
.IP "adaptive_hash_index" 4
.IX Item "adaptive_hash_index"
Displays data about InnoDB's adaptive hash index. Data source:
\&\*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "buffer_pool" 4
.IX Item "buffer_pool"
Displays data about InnoDB's buffer pool. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "cmd_summary" 4
.IX Item "cmd_summary"
Displays weighted status variables. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "deadlock_locks" 4
.IX Item "deadlock_locks"
Shows which locks were held and waited for by the last detected deadlock. Data
source: \*(L"\s-1DEADLOCK_LOCKS\s0\*(R".
.IP "deadlock_transactions" 4
.IX Item "deadlock_transactions"
Shows transactions involved in the last detected deadlock. Data source:
\&\*(L"\s-1DEADLOCK_TRANSACTIONS\s0\*(R".
.IP "explain" 4
.IX Item "explain"
Shows the output of \s-1EXPLAIN\s0. Data source: \*(L"\s-1EXPLAIN\s0\*(R".
.IP "file_io_misc" 4
.IX Item "file_io_misc"
Displays data about InnoDB's file and I/O operations. Data source:
\&\*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "fk_error" 4
.IX Item "fk_error"
Displays various data about InnoDB's last foreign key error. Data source:
\&\*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "innodb_locks" 4
.IX Item "innodb_locks"
Displays InnoDB locks. Data source: \*(L"\s-1INNODB_LOCKS\s0\*(R".
.IP "innodb_transactions" 4
.IX Item "innodb_transactions"
Displays data about InnoDB's current transactions. Data source:
\&\*(L"\s-1INNODB_TRANSACTIONS\s0\*(R".
.IP "insert_buffers" 4
.IX Item "insert_buffers"
Displays data about InnoDB's insert buffer. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "io_threads" 4
.IX Item "io_threads"
Displays data about InnoDB's I/O threads. Data source: \*(L"\s-1IO_THREADS\s0\*(R".
.IP "log_statistics" 4
.IX Item "log_statistics"
Displays data about InnoDB's logging system. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "master_status" 4
.IX Item "master_status"
Displays replication master status. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "open_tables" 4
.IX Item "open_tables"
Displays open tables. Data source: \*(L"\s-1OPEN_TABLES\s0\*(R".
.IP "page_statistics" 4
.IX Item "page_statistics"
Displays InnoDB page statistics. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "pending_io" 4
.IX Item "pending_io"
Displays InnoDB pending I/O operations. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "processlist" 4
.IX Item "processlist"
Displays current MySQL processes (threads/connections). Data source:
\&\*(L"\s-1PROCESSLIST\s0\*(R".
.IP "q_header" 4
.IX Item "q_header"
Displays various status values. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "row_operation_misc" 4
.IX Item "row_operation_misc"
Displays data about InnoDB's row operations. Data source:
\&\*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "row_operations" 4
.IX Item "row_operations"
Displays data about InnoDB's row operations. Data source:
\&\*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "semaphores" 4
.IX Item "semaphores"
Displays data about InnoDB's semaphores and mutexes. Data source:
\&\*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "slave_io_status" 4
.IX Item "slave_io_status"
Displays data about the slave I/O thread. Data source:
\&\*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "slave_sql_status" 4
.IX Item "slave_sql_status"
Displays data about the slave \s-1SQL\s0 thread. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "t_header" 4
.IX Item "t_header"
Displays various InnoDB status values. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "var_status" 4
.IX Item "var_status"
Displays user-configurable data. Data source: \*(L"\s-1STATUS_VARIABLES\s0\*(R".
.IP "wait_array" 4
.IX Item "wait_array"
Displays data about InnoDB's \s-1OS\s0 wait array. Data source: \*(L"\s-1OS_WAIT_ARRAY\s0\*(R".
.Sh "\s-1COLUMNS\s0"
.IX Subsection "COLUMNS"
Columns belong to tables. You can choose a table's columns by pressing the '^'
key, which starts the \*(L"\s-1TABLE\s0 \s-1EDITOR\s0\*(R" and lets you choose and edit columns.
Pressing 'e' from within the table editor lets you edit the column's properties:
.IP "\(bu" 4
hdr: a column header. This appears in the first row of the table.
.IP "\(bu" 4
just: justification. '\-' means left-justified and '' means right\-justified,
just as with printf formatting codes (not a coincidence).
.IP "\(bu" 4
dec: whether to further align the column on the decimal point.
.IP "\(bu" 4
num: whether the column is numeric. This affects how values are sorted
(lexically or numerically).
.IP "\(bu" 4
label: a small note about the column, which appears in dialogs that help the
user choose columns.
.IP "\(bu" 4
src: an expression that innotop uses to extract the column's data from its
source (see \*(L"\s-1DATA\s0 \s-1SOURCES\s0\*(R"). See \*(L"\s-1EXPRESSIONS\s0\*(R" for more on expressions.
.IP "\(bu" 4
minw: specifies a minimum display width. This helps stabilize the display,
which makes it easier to read if the data is changing frequently.
.IP "\(bu" 4
maxw: similar to minw.
.IP "\(bu" 4
trans: a list of column transformations. See \*(L"\s-1TRANSFORMATIONS\s0\*(R".
.IP "\(bu" 4
agg: an aggregate function. See \*(L"\s-1GROUPING\s0\*(R". The default is \*(L"first\*(R".
.IP "\(bu" 4
aggonly: controls whether the column only shows when grouping is enabled on the
table (see \*(L"\s-1GROUPING\s0\*(R"). By default, this is disabled. This means columns
will always be shown by default, whether grouping is enabled or not. If a
column's aggonly is set true, the column will appear when you toggle grouping on
the table. Several columns are set this way, such as the count column on
\&\*(L"processlist\*(R" and \*(L"innodb_transactions\*(R", so you don't see a count when the
grouping isn't enabled, but you do when it is.
.Sh "\s-1FILTERS\s0"
.IX Subsection "FILTERS"
Filters remove rows from the display. They behave much like a \s-1WHERE\s0 clause in
\&\s-1SQL\s0. innotop has several built-in filters, which remove irrelevant information
like inactive queries, but you can define your own as well. innotop also lets
you create quick\-filters, which do not get saved to the configuration file, and
are just an easy way to quickly view only some rows.
.PP
You can enable or disable a filter on any table. Press the '%' key (mnemonic: %
looks kind of like a line being filtered between two circles) and choose which
table you want to filter, if asked. You'll then see a list of possible filters
and a list of filters currently enabled for that table. Type the names of
filters you want to apply and press Enter.
.PP
\fIUSER-DEFINED \s-1FILTERS\s0\fR
.IX Subsection "USER-DEFINED FILTERS"
.PP
If you type a name that doesn't exist, innotop will prompt you to create the
filter. Filters are easy to create if you know Perl, and not hard if you don't.
What you're doing is creating a subroutine that returns true if the row should
be displayed. The row is a hash reference passed to your subroutine as \f(CW$set\fR.
.PP
For example, imagine you want to filter the processlist table so you only see
queries that have been running more than five minutes. Type a new name for your
filter, and when prompted for the subroutine body, press \s-1TAB\s0 to initiate your
terminal's auto\-completion. You'll see the names of the columns in the
\&\*(L"processlist\*(R" table (innotop generally tries to help you with auto-completion
lists). You want to filter on the 'time' column. Type the text \*(L"$set\->{time} >
300\*(R" to return true when the query is more than five minutes old. That's all
you need to do.
.PP
In other words, the code you're typing is surrounded by an implicit context,
which looks like this:
.PP
.Vb 4
\& sub filter {
\& my ( $set ) = @_;
\& # YOUR CODE HERE
\& }
.Ve
.PP
If your filter doesn't work, or if something else suddenly behaves differently,
you might have made an error in your filter, and innotop is silently catching
the error. Try enabling \*(L"debug\*(R" to make innotop throw an error instead.
.PP
\fIQUICK-FILTERS\fR
.IX Subsection "QUICK-FILTERS"
.PP
innotop's quick-filters are a shortcut to create a temporary filter that doesn't
persist when you restart innotop. To create a quick\-filter, press the '/' key.
innotop will prompt you for the column name and filter text. Again, you can use
auto-completion on column names. The filter text can be just the text you want
to \*(L"search for.\*(R" For example, to filter the \*(L"processlist\*(R" table on queries
that refer to the products table, type '/' and then 'info product'.
.PP
The filter text can actually be any Perl regular expression, but of course a
literal string like 'product' works fine as a regular expression.
.PP
Behind the scenes innotop compiles the quick-filter into a specially tagged
filter that is otherwise like any other filter. It just isn't saved to the
configuration file.
.PP
To clear quick\-filters, press the '\e' key and innotop will clear them all at
once.
.Sh "\s-1SORTING\s0"
.IX Subsection "SORTING"
innotop has sensible built-in defaults to sort the most important rows to the
top of the table. Like anything else in innotop, you can customize how any
table is sorted.
.PP
To start the sort dialog, start the \*(L"\s-1TABLE\s0 \s-1EDITOR\s0\*(R" with the '^' key, choose a
table if necessary, and press the 's' key. You'll see a list of columns you can
use in the sort expression and the current sort expression, if any. Enter a
list of columns by which you want to sort and press Enter. If you want to
reverse sort, prefix the column name with a minus sign. For example, if you
want to sort by column a ascending, then column b descending, type 'a \-b'. You
can also explicitly add a + in front of columns you want to sort ascending, but
it's not required.
.PP
Some modes have keys mapped to open this dialog directly, and to quickly reverse
sort direction. Press '?' as usual to see which keys are mapped in any mode.
.Sh "\s-1GROUPING\s0"
.IX Subsection "GROUPING"
innotop can group, or aggregate, rows together (I use the terms
interchangeably). This is quite similar to an \s-1SQL\s0 \s-1GROUP\s0 \s-1BY\s0 clause. You can
specify to group on certain columns, or if you don't specify any, the entire set
of rows is treated as one group. This is quite like \s-1SQL\s0 so far, but unlike \s-1SQL\s0,
you can also select un-grouped columns. innotop actually aggregates every
column. If you don't explicitly specify a grouping function, the default is
\&'first'. This is basically a convenience so you don't have to specify an
aggregate function for every column you want in the result.
.PP
You can quickly toggle grouping on a table with the '=' key, which toggles its
aggregate property. This property doesn't persist to the config file.
.PP
The columns by which the table is grouped are specified in its group_by
property. When you turn grouping on, innotop places the group_by columns at the
far left of the table, even if they're not supposed to be visible. The rest of
the visible columns appear in order after them.
.PP
Two tables have default group_by lists and a count column built in:
\&\*(L"processlist\*(R" and \*(L"innodb_transactions\*(R". The grouping is by connection
and status, so you can quickly see how many queries or transactions are in a
given status on each server you're monitoring. The time columns are aggregated
as a sum; other columns are left at the default 'first' aggregation.
.PP
By default, the table shown in \*(L"S: Variables & Status\*(R" mode also uses
grouping so you can monitor variables and status across many servers. The
default aggregation function in this mode is 'avg'.
.PP
Valid grouping functions are defined in the \f(CW%agg_funcs\fR hash. They include
.IP "first" 4
.IX Item "first"
Returns the first element in the group.
.IP "count" 4
.IX Item "count"
Returns the number of elements in the group, including undefined elements, much
like \s-1SQL\s0's \s-1COUNT\s0(*).
.IP "avg" 4
.IX Item "avg"
Returns the average of defined elements in the group.
.IP "sum" 4
.IX Item "sum"
Returns the sum of elements in the group.
.PP
Here's an example of grouping at work. Suppose you have a very busy server with
hundreds of open connections, and you want to see how many connections are in
what status. Using the built-in grouping rules, you can press 'Q' to enter
\&\*(L"Q: Query List\*(R" mode. Press '=' to toggle grouping (if necessary, select the
\&\*(L"processlist\*(R" table when prompted).
.PP
Your display might now look like the following:
.PP
.Vb 1
\& Query List (? for help) localhost, 32:33, 0.11 QPS, 1 thd, 5.0.38\-log
.Ve
.PP
.Vb 5
\& CXN Cmd Cnt ID User Host Time Query
\& localhost Query 49 12933 webusr localhost 19:38 SELECT * FROM
\& localhost Sending Da 23 2383 webusr localhost 12:43 SELECT col1,
\& localhost Sleep 120 140 webusr localhost 5:18:12
\& localhost Statistics 12 19213 webusr localhost 01:19 SELECT * FROM
.Ve
.PP
That's actually quite a worrisome picture. You've got a lot of idle connections
(Sleep), and some connections executing queries (Query and Sending Data).
That's okay, but you also have a lot in Statistics status, collectively spending
over a minute. That means the query optimizer is having a really hard time
optimizing your statements. Something is wrong; it should normally take
milliseconds to optimize queries. You might not have seen this pattern if you
didn't look at your connections in aggregate. (This is a made-up example, but
it can happen in real life).
.Sh "\s-1PIVOTING\s0"
.IX Subsection "PIVOTING"
innotop can pivot a table for more compact display, similar to a Pivot Table in
a spreadsheet (also known as a crosstab). Pivoting a table makes columns into
rows. Assume you start with this table:
.PP
.Vb 4
\& foo bar
\& === ===
\& 1 3
\& 2 4
.Ve
.PP
After pivoting, the table will look like this:
.PP
.Vb 4
\& name set0 set1
\& ==== ==== ====
\& foo 1 2
\& bar 3 4
.Ve
.PP
To get reasonable results, you might need to group as well as pivoting.
innotop currently does this for \*(L"S: Variables & Status\*(R" mode.
.Sh "\s-1COLORS\s0"
.IX Subsection "COLORS"
By default, innotop highlights rows with color so you can see at a glance which
rows are more important. You can customize the colorization rules and add your
own to any table. Open the table editor with the '^' key, choose a table if
needed, and press 'o' to open the color editor dialog.
.PP
The color editor dialog displays the rules applied to the table, in the order
they are evaluated. Each row is evaluated against each rule to see if the rule
matches the row; if it does, the row gets the specified color, and no further
rules are evaluated. The rules look like the following:
.PP
.Vb 9
\& state eq Locked black on_red
\& cmd eq Sleep white
\& user eq system user white
\& cmd eq Connect white
\& cmd eq Binlog Dump white
\& time > 600 red
\& time > 120 yellow
\& time > 60 green
\& time > 30 cyan
.Ve
.PP
This is the default rule set for the \*(L"processlist\*(R" table. In order of
priority, these rules make locked queries black on a red background, \*(L"gray out\*(R"
connections from replication and sleeping queries, and make queries turn from
cyan to red as they run longer.
.PP
(For some reason, the \s-1ANSI\s0 color code \*(L"white\*(R" is actually a light gray. Your
terminal's display may vary; experiment to find colors you like).
.PP
You can use keystrokes to move the rules up and down, which re-orders their
priority. You can also delete rules and add new ones. If you add a new rule,
innotop prompts you for the column, an operator for the comparison, a value
against which to compare the column, and a color to assign if the rule matches.
There is auto-completion and prompting at each step.
.PP
The value in the third step needs to be correctly quoted. innotop does not try
to quote the value because it doesn't know whether it should treat the value as
a string or a number. If you want to compare the column against a string, as
for example in the first rule above, you should enter 'Locked' surrounded by
quotes. If you get an error message about a bareword, you probably should have
quoted something.
.Sh "\s-1EXPRESSIONS\s0"
.IX Subsection "EXPRESSIONS"
Expressions are at the core of how innotop works, and are what enables you to
extend innotop as you wish. Recall the table lifecycle explained in
\&\*(L"\s-1TABLES\s0\*(R". Expressions are used in the earliest step, where it extracts
values from a data source to form rows.
.PP
It does this by calling a subroutine for each column, passing it the source data
set, a set of current values, and a set of previous values. These are all
needed so the subroutine can calculate things like the difference between this
tick and the previous tick.
.PP
The subroutines that extract the data from the set are compiled from
expressions. This gives significantly more power than just naming the values to
fill the columns, because it allows the column's value to be calculated from
whatever data is necessary, but avoids the need to write complicated and lengthy
Perl code.
.PP
innotop begins with a string of text that can look as simple as a value's name
or as complicated as a full-fledged Perl expression. It looks at each
\&'bareword' token in the string and decides whether it's supposed to be a key
into the \f(CW$set\fR hash. A bareword is an unquoted value that isn't already
surrounded by code-ish things like dollar signs or curly brackets. If innotop
decides that the bareword isn't a function or other valid Perl code, it converts
it into a hash access. After the whole string is processed, innotop compiles a
subroutine, like this:
.PP
.Vb 5
\& sub compute_column_value {
\& my ( $set, $cur, $pre ) = @_;
\& my $val = # EXPANDED STRING GOES HERE
\& return $val;
\& }
.Ve
.PP
Here's a concrete example, taken from the header table \*(L"q_header\*(R" in \*(L"Q: Query List\*(R" mode. This expression calculates the qps, or Queries Per Second,
column's values, from the values returned by \s-1SHOW\s0 \s-1STATUS:\s0
.PP
.Vb 1
\& Questions/Uptime_hires
.Ve
.PP
innotop decides both words are barewords, and transforms this expression into
the following Perl code:
.PP
.Vb 1
\& $set\->{Questions}/$set\->{Uptime_hires}
.Ve
.PP
When surrounded by the rest of the subroutine's code, this is executable Perl
that calculates a high-resolution queries-per-second value.
.PP
The arguments to the subroutine are named \f(CW$set\fR, \f(CW$cur\fR, and \f(CW$pre\fR. In most cases,
\&\f(CW$set\fR and \f(CW$cur\fR will be the same values. However, if \*(L"status_inc\*(R" is set, \f(CW$cur\fR
will not be the same as \f(CW$set\fR, because \f(CW$set\fR will already contain values that are
the incremental difference between \f(CW$cur\fR and \f(CW$pre\fR.
.PP
Every column in innotop is computed by subroutines compiled in the same fashion.
There is no difference between innotop's built-in columns and user-defined
columns. This keeps things consistent and predictable.
.Sh "\s-1TRANSFORMATIONS\s0"
.IX Subsection "TRANSFORMATIONS"
Transformations change how a value is rendered. For example, they can take a
number of seconds and display it in H:M:S format. The following transformations
are defined:
.IP "commify" 4
.IX Item "commify"
Adds commas to large numbers every three decimal places.
.IP "dulint_to_int" 4
.IX Item "dulint_to_int"
Accepts two unsigned integers and converts them into a single longlong. This is
useful for certain operations with InnoDB, which uses two integers as
transaction identifiers, for example.
.IP "no_ctrl_char" 4
.IX Item "no_ctrl_char"
Removes quoted control characters from the value. This is affected by the
\&\*(L"charset\*(R" configuration variable.
.Sp
This transformation only operates within quoted strings, for example, values to
a \s-1SET\s0 clause in an \s-1UPDATE\s0 statement. It will not alter the \s-1UPDATE\s0 statement,
but will collapse the quoted string to [\s-1BINARY\s0] or [\s-1TEXT\s0], depending on the
charset.
.IP "percent" 4
.IX Item "percent"
Converts a number to a percentage by multiplying it by two, formatting it with
\&\*(L"num_digits\*(R" digits after the decimal point, and optionally adding a percent
sign (see \*(L"show_percent\*(R").
.IP "secs_to_time" 4
.IX Item "secs_to_time"
Formats a number of seconds as time in days+hours:minutes:seconds format.
.IP "set_precision" 4
.IX Item "set_precision"
Formats numbers with \*(L"num_digits\*(R" number of digits after the decimal point.
.IP "shorten" 4
.IX Item "shorten"
Formats a number as a unit of 1024 (k/M/G/T) and with \*(L"num_digits\*(R" number of
digits after the decimal point.
.Sh "\s-1TABLE\s0 \s-1EDITOR\s0"
.IX Subsection "TABLE EDITOR"
The innotop table editor lets you customize tables with keystrokes. You start
the table editor with the '^' key. If there's more than one table on the
screen, it will prompt you to choose one of them. Once you do, innotop will
show you something like this:
.PP
.Vb 1
\& Editing table definition for Buffer Pool. Press ? for help, q to quit.
.Ve
.PP
.Vb 9
\& name hdr label src
\& cxn CXN Connection from which cxn
\& buf_pool_size Size Buffer pool size IB_bp_buf_poo
\& buf_free Free Bufs Buffers free in the b IB_bp_buf_fre
\& pages_total Pages Pages total IB_bp_pages_t
\& pages_modified Dirty Pages Pages modified (dirty IB_bp_pages_m
\& buf_pool_hit_rate Hit Rate Buffer pool hit rate IB_bp_buf_poo
\& total_mem_alloc Memory Total memory allocate IB_bp_total_m
\& add_pool_alloc Add\(aql Pool Additonal pool alloca IB_bp_add_poo
.Ve
.PP
The first line shows which table you're editing, and reminds you again to press
\&'?' for a list of key mappings. The rest is a tabular representation of the
table's columns, because that's likely what you're trying to edit. However, you
can edit more than just the table's columns; this screen can start the filter
editor, color rule editor, and more.
.PP
Each row in the display shows a single column in the table you're editing, along
with a couple of its properties such as its header and source expression (see
\&\*(L"\s-1EXPRESSIONS\s0\*(R").
.PP
The key mappings are Vim\-style, as in many other places. Pressing 'j' and 'k'
moves the highlight up or down. You can then (d)elete or (e)dit the highlighted
column. You can also (a)dd a column to the table. This actually just activates
one of the columns already defined for the table; it prompts you to choose from
among the columns available but not currently displayed. Finally, you can
re-order the columns with the '+' and '\-' keys.
.PP
You can do more than just edit the columns with the table editor, you can also
edit other properties, such as the table's sort expression and group-by
expression. Press '?' to see the full list, of course.
.PP
If you want to really customize and create your own column, as opposed to just
activating a built-in one that's not currently displayed, press the (n)ew key,
and innotop will prompt you for the information it needs:
.IP "\(bu" 4
The column name: this needs to be a word without any funny characters, e.g. just
letters, numbers and underscores.
.IP "\(bu" 4
The column header: this is the label that appears at the top of the column, in
the table header. This can have spaces and funny characters, but be careful not
to make it too wide and waste space on\-screen.
.IP "\(bu" 4
The column's data source: this is an expression that determines what data from
the source (see \*(L"\s-1TABLES\s0\*(R") innotop will put into the column. This can just be
the name of an item in the source, or it can be a more complex expression, as
described in \*(L"\s-1EXPRESSIONS\s0\*(R".
.PP
Once you've entered the required data, your table has a new column. There is no
difference between this column and the built-in ones; it can have all the same
properties and behaviors. innotop will write the column's definition to the
configuration file, so it will persist across sessions.
.PP
Here's an example: suppose you want to track how many times your slaves have
retried transactions. According to the MySQL manual, the
Slave_retried_transactions status variable gives you that data: \*(L"The total
number of times since startup that the replication slave \s-1SQL\s0 thread has retried
transactions. This variable was added in version 5.0.4.\*(R" This is appropriate to
add to the \*(L"slave_sql_status\*(R" table.
.PP
To add the column, switch to the replication-monitoring mode with the 'M' key,
and press the '^' key to start the table editor. When prompted, choose
slave_sql_status as the table, then press 'n' to create the column. Type
\&'retries' as the column name, 'Retries' as the column header, and
\&'Slave_retried_transactions' as the source. Now the column is created, and you
see the table editor screen again. Press 'q' to exit the table editor, and
you'll see your column at the end of the table.
.SH "VARIABLE SETS"
.IX Header "VARIABLE SETS"
Variable sets are used in \*(L"S: Variables & Status\*(R" mode to define more easily
what variables you want to monitor. Behind the scenes they are compiled to a
list of expressions, and then into a column list so they can be treated just
like columns in any other table, in terms of data extraction and
transformations. However, you're protected from the tedious details by a syntax
that ought to feel very natural to you: a \s-1SQL\s0 \s-1SELECT\s0 list.
.PP
The data source for variable sets, and indeed the entire S mode, is the
combination of \s-1SHOW\s0 \s-1STATUS\s0, \s-1SHOW\s0 \s-1VARIABLES\s0, and \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0. Imagine
that you had a huge table with one column per variable returned from those
statements. That's the data source for variable sets. You can now query this
data source just like you'd expect. For example:
.PP
.Vb 1
\& Questions, Uptime, Questions/Uptime as QPS
.Ve
.PP
Behind the scenes innotop will split that variable set into three expressions,
compile them and turn them into a table definition, then extract as usual. This
becomes a \*(L"variable set,\*(R" or a \*(L"list of variables you want to monitor.\*(R"
.PP
innotop lets you name and save your variable sets, and writes them to the
configuration file. You can choose which variable set you want to see with the
\&'c' key, or activate the next and previous sets with the '>' and '<' keys.
There are many built-in variable sets as well, which should give you a good
start for creating your own. Press 'e' to edit the current variable set, or
just to see how it's defined. To create a new one, just press 'c' and type its
name.
.PP
You may want to use some of the functions listed in \*(L"\s-1TRANSFORMATIONS\s0\*(R" to help
format the results. In particular, \*(L"set_precision\*(R" is often useful to limit
the number of digits you see. Extending the above example, here's how:
.PP
.Vb 1
\& Questions, Uptime, set_precision(Questions/Uptime) as QPS
.Ve
.PP
Actually, this still needs a little more work. If your \*(L"interval\*(R" is less
than one second, you might be dividing by zero because Uptime is incremental in
this mode by default. Instead, use Uptime_hires:
.PP
.Vb 1
\& Questions, Uptime, set_precision(Questions/Uptime_hires) as QPS
.Ve
.PP
This example is simple, but it shows how easy it is to choose which variables
you want to monitor.
.SH "PLUGINS"
.IX Header "PLUGINS"
innotop has a simple but powerful plugin mechanism by which you can extend
or modify its existing functionality, and add new functionality. innotop's
plugin functionality is event\-based: plugins register themselves to be called
when events happen. They then have a chance to influence the event.
.PP
An innotop plugin is a Perl module placed in innotop's \*(L"plugin_dir\*(R"
directory. On \s-1UNIX\s0 systems, you can place a symbolic link to the module instead
of putting the actual file there. innotop automatically discovers the file. If
there is a corresponding entry in the \*(L"plugins\*(R" configuration file section,
innotop loads and activates the plugin.
.PP
The module must conform to innotop's plugin interface. Additionally, the source
code of the module must be written in such a way that innotop can inspect the
file and determine the package name and description.
.Sh "Package Source Convention"
.IX Subsection "Package Source Convention"
innotop inspects the plugin module's source to determine the Perl package name.
It looks for a line of the form \*(L"package Foo;\*(R" and if found, considers the
plugin's package name to be Foo. Of course the package name can be a valid Perl
package name, with double semicolons and so on.
.PP
It also looks for a description in the source code, to make the plugin editor
more human\-friendly. The description is a comment line of the form \*(L"#
description: Foo\*(R", where \*(L"Foo\*(R" is the text innotop will consider to be the
plugin's description.
.Sh "Plugin Interface"
.IX Subsection "Plugin Interface"
The innotop plugin interface is quite simple: innotop expects the plugin to be
an object-oriented module it can call certain methods on. The methods are
.IP "new(%variables)" 4
.IX Item "new(%variables)"
This is the plugin's constructor. It is passed a hash of innotop's variables,
which it can manipulate (see \*(L"Plugin Variables\*(R"). It must return a reference
to the newly created plugin object.
.Sp
At construction time, innotop has only loaded the general configuration and
created the default built-in variables with their default contents (which is
quite a lot). Therefore, the state of the program is exactly as in the innotop
source code, plus the configuration variables from the \*(L"general\*(R" section in
the config file.
.Sp
If your plugin manipulates the variables, it is changing global data, which is
shared by innotop and all plugins. Plugins are loaded in the order they're
listed in the config file. Your plugin may load before or after another plugin,
so there is a potential for conflict or interaction between plugins if they
modify data other plugins use or modify.
.IP "\fIregister_for_events()\fR" 4
.IX Item "register_for_events()"
This method must return a list of events in which the plugin is interested, if
any. See \*(L"Plugin Events\*(R" for the defined events. If the plugin returns an
event that's not defined, the event is ignored.
.IP "event handlers" 4
.IX Item "event handlers"
The plugin must implement a method named the same as each event for which it has
registered. In other words, if the plugin returns qw(foo bar) from
\&\fIregister_for_events()\fR, it must have \fIfoo()\fR and \fIbar()\fR methods. These methods are
callbacks for the events. See \*(L"Plugin Events\*(R" for more details about each
event.
.Sh "Plugin Variables"
.IX Subsection "Plugin Variables"
The plugin's constructor is passed a hash of innotop's variables, which it can
manipulate. It is probably a good idea if the plugin object saves a copy of it
for later use. The variables are defined in the innotop variable
\&\f(CW%pluggable_vars\fR, and are as follows:
.IP "action_for" 4
.IX Item "action_for"
A hashref of key mappings. These are innotop's global hot\-keys.
.IP "agg_funcs" 4
.IX Item "agg_funcs"
A hashref of functions that can be used for grouping. See \*(L"\s-1GROUPING\s0\*(R".
.IP "config" 4
.IX Item "config"
The global configuration hash.
.IP "connections" 4
.IX Item "connections"
A hashref of connection specifications. These are just specifications of how to
connect to a server.
.IP "dbhs" 4
.IX Item "dbhs"
A hashref of innotop's database connections. These are actual \s-1DBI\s0 connection
objects.
.IP "filters" 4
.IX Item "filters"
A hashref of filters applied to table rows. See \*(L"\s-1FILTERS\s0\*(R" for more.
.IP "modes" 4
.IX Item "modes"
A hashref of modes. See \*(L"\s-1MODES\s0\*(R" for more.
.IP "server_groups" 4
.IX Item "server_groups"
A hashref of server groups. See \*(L"\s-1SERVER\s0 \s-1GROUPS\s0\*(R".
.IP "tbl_meta" 4
.IX Item "tbl_meta"
A hashref of innotop's table meta\-data, with one entry per table (see
\&\*(L"\s-1TABLES\s0\*(R" for more information).
.IP "trans_funcs" 4
.IX Item "trans_funcs"
A hashref of transformation functions. See \*(L"\s-1TRANSFORMATIONS\s0\*(R".
.IP "var_sets" 4
.IX Item "var_sets"
A hashref of variable sets. See \*(L"\s-1VARIABLE\s0 \s-1SETS\s0\*(R".
.Sh "Plugin Events"
.IX Subsection "Plugin Events"
Each event is defined somewhere in the innotop source code. When innotop runs
that code, it executes the callback function for each plugin that expressed its
interest in the event. innotop passes some data for each event. The events are
defined in the \f(CW%event_listener_for\fR variable, and are as follows:
.ie n .IP "extract_values($set, $cur\fR, \f(CW$pre\fR, \f(CW$tbl)" 4
.el .IP "extract_values($set, \f(CW$cur\fR, \f(CW$pre\fR, \f(CW$tbl\fR)" 4
.IX Item "extract_values($set, $cur, $pre, $tbl)"
This event occurs inside the function that extracts values from a data source.
The arguments are the set of values, the current values, the previous values,
and the table name.
.IP "set_to_tbl" 4
.IX Item "set_to_tbl"
Events are defined at many places in this subroutine, which is responsible for
turning an arrayref of hashrefs into an arrayref of lines that can be printed to
the screen. The events all pass the same data: an arrayref of rows and the name
of the table being created. The events are set_to_tbl_pre_filter,
set_to_tbl_pre_sort,set_to_tbl_pre_group, set_to_tbl_pre_colorize,
set_to_tbl_pre_transform, set_to_tbl_pre_pivot, set_to_tbl_pre_create,
set_to_tbl_post_create.
.IP "draw_screen($lines)" 4
.IX Item "draw_screen($lines)"
This event occurs inside the subroutine that prints the lines to the screen.
\&\f(CW$lines\fR is an arrayref of strings.
.Sh "Simple Plugin Example"
.IX Subsection "Simple Plugin Example"
The easiest way to explain the plugin functionality is probably with a simple
example. The following module adds a column to the beginning of every table and
sets its value to 1.
.PP
.Vb 2
\& use strict;
\& use warnings FATAL => \(aqall\(aq;
.Ve
.PP
.Vb 2
\& package Innotop::Plugin::Example;
\& # description: Adds an \(aqexample\(aq column to every table
.Ve
.PP
.Vb 4
\& sub new {
\& my ( $class, %vars ) = @_;
\& # Store reference to innotop\(aqs variables in $self
\& my $self = bless { %vars }, $class;
.Ve
.PP
.Vb 11
\& # Design the example column
\& my $col = {
\& hdr => \(aqExample\(aq,
\& just => \(aq\(aq,
\& dec => 0,
\& num => 1,
\& label => \(aqExample\(aq,
\& src => \(aqexample\(aq, # Get data from this column in the data source
\& tbl => \(aq\(aq,
\& trans => [],
\& };
.Ve
.PP
.Vb 8
\& # Add the column to every table.
\& my $tbl_meta = $vars{tbl_meta};
\& foreach my $tbl ( values %$tbl_meta ) {
\& # Add the column to the list of defined columns
\& $tbl\->{cols}\->{example} = $col;
\& # Add the column to the list of visible columns
\& unshift @{$tbl\->{visible}}, \(aqexample\(aq;
\& }
.Ve
.PP
.Vb 3
\& # Be sure to return a reference to the object.
\& return $self;
\& }
.Ve
.PP
.Vb 5
\& # I\(aqd like to be called when a data set is being rendered into a table, please.
\& sub register_for_events {
\& my ( $self ) = @_;
\& return qw(set_to_tbl_pre_filter);
\& }
.Ve
.PP
.Vb 8
\& # This method will be called when the event fires.
\& sub set_to_tbl_pre_filter {
\& my ( $self, $rows, $tbl ) = @_;
\& # Set the example column\(aqs data source to the value 1.
\& foreach my $row ( @$rows ) {
\& $row\->{example} = 1;
\& }
\& }
.Ve
.PP
.Vb 1
\& 1;
.Ve
.Sh "Plugin Editor"
.IX Subsection "Plugin Editor"
The plugin editor lets you view the plugins innotop discovered and activate or
deactivate them. Start the editor by pressing $ to start the configuration
editor from any mode. Press the 'p' key to start the plugin editor. You'll see
a list of plugins innotop discovered. You can use the 'j' and 'k' keys to move
the highlight to the desired one, then press the * key to toggle it active or
inactive. Exit the editor and restart innotop for the changes to take effect.
.SH "SQL STATEMENTS"
.IX Header "SQL STATEMENTS"
innotop uses a limited set of \s-1SQL\s0 statements to retrieve data from MySQL for
display. The statements are customized depending on the server version against
which they are executed; for example, on MySQL 5 and newer, \s-1INNODB_STATUS\s0
executes \*(L"\s-1SHOW\s0 \s-1ENGINE\s0 \s-1INNODB\s0 \s-1STATUS\s0\*(R", while on earlier versions it executes
\&\*(L"\s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0\*(R". The statements are as follows:
.PP
.Vb 12
\& Statement SQL executed
\& =================== ===============================
\& INNODB_STATUS SHOW [ENGINE] INNODB STATUS
\& KILL_CONNECTION KILL
\& KILL_QUERY KILL QUERY
\& OPEN_TABLES SHOW OPEN TABLES
\& PROCESSLIST SHOW FULL PROCESSLIST
\& SHOW_MASTER_LOGS SHOW MASTER LOGS
\& SHOW_MASTER_STATUS SHOW MASTER STATUS
\& SHOW_SLAVE_STATUS SHOW SLAVE STATUS
\& SHOW_STATUS SHOW [GLOBAL] STATUS
\& SHOW_VARIABLES SHOW [GLOBAL] VARIABLES
.Ve
.SH "DATA SOURCES"
.IX Header "DATA SOURCES"
Each time innotop extracts values to create a table (see \*(L"\s-1EXPRESSIONS\s0\*(R" and
\&\*(L"\s-1TABLES\s0\*(R"), it does so from a particular data source. Largely because of the
complex data extracted from \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0, this is slightly messy. \s-1SHOW\s0
\&\s-1INNODB\s0 \s-1STATUS\s0 contains a mixture of single values and repeated values that form
nested data sets.
.PP
Whenever innotop fetches data from MySQL, it adds two extra bits to each set:
cxn and Uptime_hires. cxn is the name of the connection from which the data
came. Uptime_hires is a high-resolution version of the server's Uptime status
variable, which is important if your \*(L"interval\*(R" setting is sub\-second.
.PP
Here are the kinds of data sources from which data is extracted:
.IP "\s-1STATUS_VARIABLES\s0" 4
.IX Item "STATUS_VARIABLES"
This is the broadest category, into which the most kinds of data fall. It
begins with the combination of \s-1SHOW\s0 \s-1STATUS\s0 and \s-1SHOW\s0 \s-1VARIABLES\s0, but other sources
may be included as needed, for example, \s-1SHOW\s0 \s-1MASTER\s0 \s-1STATUS\s0 and \s-1SHOW\s0 \s-1SLAVE\s0
\&\s-1STATUS\s0, as well as many of the non-repeated values from \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0.
.IP "\s-1DEADLOCK_LOCKS\s0" 4
.IX Item "DEADLOCK_LOCKS"
This data is extracted from the transaction list in the \s-1LATEST\s0 \s-1DETECTED\s0 \s-1DEADLOCK\s0
section of \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0. It is nested two levels deep: transactions, then
locks.
.IP "\s-1DEADLOCK_TRANSACTIONS\s0" 4
.IX Item "DEADLOCK_TRANSACTIONS"
This data is from the transaction list in the \s-1LATEST\s0 \s-1DETECTED\s0 \s-1DEADLOCK\s0
section of \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0. It is nested one level deep.
.IP "\s-1EXPLAIN\s0" 4
.IX Item "EXPLAIN"
This data is from the result set returned by \s-1EXPLAIN\s0.
.IP "\s-1INNODB_TRANSACTIONS\s0" 4
.IX Item "INNODB_TRANSACTIONS"
This data is from the \s-1TRANSACTIONS\s0 section of \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0.
.IP "\s-1IO_THREADS\s0" 4
.IX Item "IO_THREADS"
This data is from the list of threads in the the \s-1FILE\s0 I/O section of \s-1SHOW\s0 \s-1INNODB\s0
\&\s-1STATUS\s0.
.IP "\s-1INNODB_LOCKS\s0" 4
.IX Item "INNODB_LOCKS"
This data is from the \s-1TRANSACTIONS\s0 section of \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0 and is nested
two levels deep.
.IP "\s-1OPEN_TABLES\s0" 4
.IX Item "OPEN_TABLES"
This data is from \s-1SHOW\s0 \s-1OPEN\s0 \s-1TABLES\s0.
.IP "\s-1PROCESSLIST\s0" 4
.IX Item "PROCESSLIST"
This data is from \s-1SHOW\s0 \s-1FULL\s0 \s-1PROCESSLIST\s0.
.IP "\s-1OS_WAIT_ARRAY\s0" 4
.IX Item "OS_WAIT_ARRAY"
This data is from the \s-1SEMAPHORES\s0 section of \s-1SHOW\s0 \s-1INNODB\s0 \s-1STATUS\s0 and is nested one
level deep. It comes from the lines that look like this:
.Sp
.Vb 1
\& \-\-Thread 1568861104 has waited at btr0cur.c line 424 ....
.Ve
.SH "MYSQL PRIVILEGES"
.IX Header "MYSQL PRIVILEGES"
.IP "\(bu" 4
You must connect to MySQL as a user who has the \s-1SUPER\s0 privilege for many of the
functions.
.IP "\(bu" 4
If you don't have the \s-1SUPER\s0 privilege, you can still run some functions, but you
won't necessarily see all the same data.
.IP "\(bu" 4
You need the \s-1PROCESS\s0 privilege to see the list of currently running queries in Q
mode.
.IP "\(bu" 4
You need special privileges to start and stop slave servers.
.IP "\(bu" 4
You need appropriate privileges to create and drop the deadlock tables if needed
(see \*(L"\s-1SERVER\s0 \s-1CONNECTIONS\s0\*(R").
.SH "SYSTEM REQUIREMENTS"
.IX Header "SYSTEM REQUIREMENTS"
You need Perl to run innotop, of course. You also need a few Perl modules: \s-1DBI\s0,
DBD::mysql, Term::ReadKey, and Time::HiRes. These should be included with most
Perl distributions, but in case they are not, I recommend using versions
distributed with your operating system or Perl distribution, not from \s-1CPAN\s0.
Term::ReadKey in particular has been known to cause problems if installed from
\&\s-1CPAN\s0.
.PP
If you have Term::ANSIColor, innotop will use it to format headers more readably
and compactly. (Under Microsoft Windows, you also need Win32::Console::ANSI for
terminal formatting codes to be honored). If you install Term::ReadLine,
preferably Term::ReadLine::Gnu, you'll get nice auto-completion support.
.PP
I run innotop on Gentoo GNU/Linux, Debian and Ubuntu, and I've had feedback from
people successfully running it on Red Hat, CentOS, Solaris, and Mac \s-1OSX\s0. I
don't see any reason why it won't work on other UNIX-ish operating systems, but
I don't know for sure. It also runs on Windows under ActivePerl without
problem.
.PP
I use innotop on MySQL versions 3.23.58, 4.0.27, 4.1.0, 4.1.22, 5.0.26, 5.1.15,
and 5.2.3. If it doesn't run correctly for you, that is a bug and I hope you
report it.
.SH "FILES"
.IX Header "FILES"
$HOMEDIR/.innotop is used to store configuration information. Files include the
configuration file innotop.ini, the core_dump file which contains verbose error
messages if \*(L"debug\*(R" is enabled, and the plugins/ subdirectory.
.SH "GLOSSARY OF TERMS"
.IX Header "GLOSSARY OF TERMS"
.IP "tick" 4
.IX Item "tick"
A tick is a refresh event, when innotop re-fetches data from connections and
displays it.
.SH "ACKNOWLEDGEMENTS"
.IX Header "ACKNOWLEDGEMENTS"
I'm grateful to the following people for various reasons, and hope I haven't
forgotten to include anyone:
.PP
Allen K. Smith,
Aurimas Mikalauskas,
Bartosz Fenski,
Brian Miezejewski,
Christian Hammers,
Cyril Scetbon,
Dane Miller,
David Multer,
Dr. Frank Ullrich,
Giuseppe Maxia,
Google.com Site Reliability Engineers,
Jan Pieter Kunst,
Jari Aalto,
Jay Pipes,
Jeremy Zawodny,
Johan Idren,
Kristian Kohntopp,
Lenz Grimmer,
Maciej Dobrzanski,
Michiel Betel,
MySQL \s-1AB\s0,
Paul McCullagh,
Sebastien Estienne,
Sourceforge.net,
Steven Kreuzer,
The Gentoo MySQL Team,
Trevor Price,
Yaar Schnitman,
and probably more people I've neglected to include.
.PP
(If I misspelled your name, it's probably because I'm afraid of putting
international characters into this documentation; earlier versions of Perl might
not be able to compile it then).
.SH "COPYRIGHT, LICENSE AND WARRANTY"
.IX Header "COPYRIGHT, LICENSE AND WARRANTY"
This program is copyright (c) 2006 Baron Schwartz.
Feedback and improvements are welcome.
.PP
\&\s-1THIS\s0 \s-1PROGRAM\s0 \s-1IS\s0 \s-1PROVIDED\s0 \*(L"\s-1AS\s0 \s-1IS\s0\*(R" \s-1AND\s0 \s-1WITHOUT\s0 \s-1ANY\s0 \s-1EXPRESS\s0 \s-1OR\s0 \s-1IMPLIED\s0
\&\s-1WARRANTIES\s0, \s-1INCLUDING\s0, \s-1WITHOUT\s0 \s-1LIMITATION\s0, \s-1THE\s0 \s-1IMPLIED\s0 \s-1WARRANTIES\s0 \s-1OF\s0
\&\s-1MERCHANTIBILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0.
.PP
This program is free software; you can redistribute it and/or modify it under
the terms of the \s-1GNU\s0 General Public License as published by the Free Software
Foundation, version 2; \s-1OR\s0 the Perl Artistic License. On \s-1UNIX\s0 and similar
systems, you can issue `man perlgpl' or `man perlartistic' to read these
licenses.
.PP
You should have received a copy of the \s-1GNU\s0 General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, \s-1MA\s0 02111\-1307 \s-1USA\s0.
.PP
Execute innotop and press '!' to see this information at any time.
.SH "AUTHOR"
.IX Header "AUTHOR"
Baron Schwartz.
.SH "BUGS"
.IX Header "BUGS"
You can report bugs, ask for improvements, and get other help and support at
<http://sourceforge.net/projects/innotop>. There are mailing lists, forums,
a bug tracker, etc. Please use these instead of contacting me directly, as it
makes my job easier and benefits others if the discussions are permanent and
public. Of course, if you need to contact me in private, please do.
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
msql2mysql \- MySQL importer for msql style data.
.SH SYNOPSIS
msql2mysql [options]
.SH DESCRIPTION
This program imports old msql database files.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
#
# For compatibility to other Debian packages that still use
# libmysqlclient10 and libmysqlclient12.
old_passwords = 1
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the at runtime!
#log_type = FILE
#general_log = /var/log/mysql/mysql.log
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
key_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
my_print_defaults \- MySQL helper script that prints defaults.
.SH SYNOPSIS
my_print_defaults [options]
.SH DESCRIPTION
Prints all arguments that is give to some program using the default files.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisam_ftdump \- Dumps full text tables.
.SH SYNOPSIS
myisam_ftdump [options]
.SH DESCRIPTION
Dumps information and contents of full text tables.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisamchk \- Checks MySQL myisam type databases.
.SH SYNOPSIS
myisamchk [options]
.SH DESCRIPTION
Description, check and repair of ISAM tables.
Used without options all tables on the command will be checked for errors
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisamlog \- MySQL helper script.
.SH SYNOPSIS
myisamlog [options]
.SH DESCRIPTION
Function unknown. Mail to ch@debian.org.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisampack \- Compresses MySQL database files.
.SH SYNOPSIS
myisampack [options]
.SH DESCRIPTION
Pack a MyISAM-table to take much less space.
Keys are not updated, you must run myisamchk -rq on the datafile
afterwards to update the keys.
You should give the .MYI file as the filename argument.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
W: mysql-dfsg source: maintainer-script-lacks-debhelper-token debian/mysql-server.postinst
W: mysql-server: possible-bashism-in-maintainer-script postinst:68 'p{("a".."z","A".."Z",0..9)[int(rand(62))]}'
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlconfig \- MySQL compile settings.
.SH SYNOPSIS
mysqlconfig [options]
.SH DESCRIPTION
This program is only useful for people who want to compile agains
libmysqlclient.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_convert_table_format \- MySQL table converter.
.SH SYNOPSIS
mysql_convert_table_format [options]
.SH DESCRIPTION
Conversion of a MySQL tables to other table types.
If no tables has been specifed, all tables in the database will be converted.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_find_rows \- MySQL shell skript for searching in update logs.
.SH SYNOPSIS
mysql_find_rows [options]
.SH DESCRIPTION
Prints all SQL queries that matches a regexp or contains a 'use
database' or 'set ..' command to stdout. A SQL query may contain
newlines. This is useful to find things in a MySQL update log.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_fix_extensions \- Corrects MySQL database file names.
.SH SYNOPSIS
mysql_fix_extensions <datadir>
.SH DESCRIPTION
Makes .frm lowercase and .MYI/MYD/ISM/ISD uppercase
useful when datafiles are copied from windows.
Does not work with RAID, with InnoDB or BDB tables.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (8)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_install_db \- MySQL helper program.
.SH SYNOPSIS
mysql_install_db [options]
.SH DESCRIPTION
This program is normally not needed by any user.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_secure_installation \- Secures the MySQL access control lists.
.SH SYNOPSIS
mysql_secure_installation [options]
.SH DESCRIPTION
This interactive programm suggests changes like removing anonymous users that
are supposed to make your installation more secure.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (8)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_setpermission \- Adds MySQL users or changes passwords.
.SH SYNOPSIS
mysql_setpermission [options]
.SH DESCRIPTION
The permission setter is a little program which can help you add users
or databases or change passwords in MySQL. Keep in mind that we don't
check permissions which already been set in MySQL. So if you can't
connect to MySQL using the permission you just added, take a look at
the permissions which have already been set in MySQL.
The permission setter first reads your .my.cnf file in your Home
directory if it exists.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "MYSQL_TABLEINFO 1"
.TH MYSQL_TABLEINFO 1 "2003-04-05" "perl v5.8.0" "User Contributed Perl Documentation"
.SH "NAME"
mysql_tableinfo \- creates and populates information tables with
the output of SHOW DATABASES, SHOW TABLES (or SHOW TABLE STATUS),
SHOW COLUMNS and SHOW INDEX.
.PP
This is version 1.1.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& mysql_tableinfo [OPTIONS] database_to_write [database_like_wild] [table_like_wild]
.Ve
.PP
.Vb 2
\& Do not backquote (``) database_to_write,
\& and do not quote ('') database_like_wild or table_like_wild
.Ve
.PP
.Vb 1
\& Examples:
.Ve
.PP
.Vb 1
\& mysql_tableinfo info
.Ve
.PP
.Vb 1
\& mysql_tableinfo info this_db
.Ve
.PP
.Vb 1
\& mysql_tableinfo info %a% b%
.Ve
.PP
.Vb 1
\& mysql_tableinfo info --clear-only
.Ve
.PP
.Vb 1
\& mysql_tableinfo info --col --idx --table-status
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
mysql_tableinfo asks a MySQL server information about its
databases, tables, table columns and index, and stores this
in tables called `db`, `tbl` (or `tbl_status`), `col`, `idx`
(with an optional prefix specified with \-\-prefix).
After that, you can query these information tables, for example
to build your admin scripts with \s-1SQL\s0 queries, like
.PP
\&\s-1SELECT\s0 \s-1CONCAT\s0(\*(L"\s-1CHECK\s0 \s-1TABLE\s0 \*(R",`database`,\*(L".\*(R",`table`,\*(L" \s-1EXTENDED\s0;\*(R")
\&\s-1FROM\s0 info.tbl \s-1WHERE\s0 ... ;
.PP
as people usually do with some other \s-1RDBMS\s0
(note: to increase the speed of your queries on the info tables,
you may add some index on them).
.PP
The database_like_wild and table_like_wild instructs the program
to gather information only about databases and tables
whose names match these patterns. If the info
tables already exist, their rows matching the patterns are simply
deleted and replaced by the new ones. That is,
old rows not matching the patterns are not touched.
If the database_like_wild and table_like_wild arguments
are not specified on the command-line they default to \*(L"%\*(R".
.PP
The program :
.PP
\&\- does \s-1CREATE\s0 \s-1DATABASE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write
where database_to_write is the database name specified on the command\-line.
.PP
\&\- does \s-1CREATE\s0 \s-1TABLE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write.`db`
.PP
\&\- fills database_to_write.`db` with the output of
\&\s-1SHOW\s0 \s-1DATABASES\s0 \s-1LIKE\s0 database_like_wild
.PP
\&\- does \s-1CREATE\s0 \s-1TABLE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write.`tbl`
(respectively database_to_write.`tbl_status`
if the \-\-tbl\-status option is on)
.PP
\&\- for every found database,
fills database_to_write.`tbl` (respectively database_to_write.`tbl_status`)
with the output of
\&\s-1SHOW\s0 \s-1TABLES\s0 \s-1FROM\s0 found_db \s-1LIKE\s0 table_like_wild
(respectively \s-1SHOW\s0 \s-1TABLE\s0 \s-1STATUS\s0 \s-1FROM\s0 found_db \s-1LIKE\s0 table_like_wild)
.PP
\&\- if the \-\-col option is on,
* does \s-1CREATE\s0 \s-1TABLE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write.`col`
* for every found table,
fills database_to_write.`col` with the output of
\s-1SHOW\s0 \s-1COLUMNS\s0 \s-1FROM\s0 found_tbl \s-1FROM\s0 found_db
.PP
\&\- if the \-\-idx option is on,
* does \s-1CREATE\s0 \s-1TABLE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write.`idx`
* for every found table,
fills database_to_write.`idx` with the output of
\s-1SHOW\s0 \s-1INDEX\s0 \s-1FROM\s0 found_tbl \s-1FROM\s0 found_db
.PP
Some options may modify this general scheme (see below).
.PP
As mentioned, the contents of the info tables are the output of
\&\s-1SHOW\s0 commands. In fact the contents are slightly more complete :
.PP
\&\- the `tbl` (or `tbl_status`) info table
has an extra column which contains the database name,
.PP
\&\- the `col` info table
has an extra column which contains the table name,
and an extra column which contains, for each described column,
the number of this column in the table owning it (this extra column
is called `Seq_in_table`). `Seq_in_table` makes it possible for you
to retrieve your columns in sorted order, when you are querying
the `col` table.
.PP
\&\- the `index` info table
has an extra column which contains the database name.
.PP
Caution: info tables contain certain columns (e.g.
Database, Table, Null...) whose names, as they are MySQL reserved words,
need to be backquoted (`...`) when used in \s-1SQL\s0 statements.
.PP
Caution: as information fetching and info tables filling happen at the
same time, info tables may contain inaccurate information about
themselves.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\-\-clear" 4
.IX Item "--clear"
Does \s-1DROP\s0 \s-1TABLE\s0 on the info tables (only those that the program is
going to fill, for example if you do not use \-\-col it won't drop
the `col` table) and processes normally. Does not drop database_to_write.
.IP "\-\-clear\-only" 4
.IX Item "--clear-only"
Same as \-\-clear but exits after the DROPs.
.IP "\-\-col" 4
.IX Item "--col"
Adds columns information (into table `col`).
.IP "\-\-idx" 4
.IX Item "--idx"
Adds index information (into table `idx`).
.IP "\-\-prefix prefix" 4
.IX Item "--prefix prefix"
The info tables are named from the concatenation of prefix and,
respectively, db, tbl (or tbl_status), col, idx. Do not quote ('')
or backquote (``) prefix.
.IP "\-q, \-\-quiet" 4
.IX Item "-q, --quiet"
Does not warn you about what the script is going to do (\s-1DROP\s0 \s-1TABLE\s0 etc)
and does not ask for a confirmation before starting.
.IP "\-\-tbl\-status" 4
.IX Item "--tbl-status"
Instead of using \s-1SHOW\s0 \s-1TABLES\s0, uses \s-1SHOW\s0 \s-1TABLE\s0 \s-1STATUS\s0
(much more complete information, but slower).
.IP "\-\-help" 4
.IX Item "--help"
Display helpscreen and exit
.IP "\-u, \-\-user=#" 4
.IX Item "-u, --user=#"
user for database login if not current user. Give a user
who has sufficient privileges (\s-1CREATE\s0, ...).
.IP "\-p, \-\-password=# (INSECURE)" 4
.IX Item "-p, --password=# (INSECURE)"
password to use when connecting to server.
WARNING: Providing a password on command line is insecure as it is visible through /proc to anyone for a short time.
.IP "\-h, \-\-host=#" 4
.IX Item "-h, --host=#"
host to connect to
.IP "\-P, \-\-port=#" 4
.IX Item "-P, --port=#"
port to use when connecting to server
.IP "\-S, \-\-socket=#" 4
.IX Item "-S, --socket=#"
\&\s-1UNIX\s0 domain socket to use when connecting to server
.SH "WARRANTY"
.IX Header "WARRANTY"
This software is free and comes without warranty of any kind. You
should never trust backup software without studying the code yourself.
Study the code inside this script and only rely on it if \fIyou\fR believe
that it does the right thing for you.
.Sp
Patches adding bug fixes, documentation and new features are welcome.
.SH "TO DO"
.IX Header "TO DO"
Use extended inserts to be faster (for servers with many databases
or tables). But to do that, must care about net\-buffer\-length.
.SH "AUTHOR"
.IX Header "AUTHOR"
2002\-06\-18 Guilhem Bichot (guilhem.bichot@mines\-paris.org)
.Sp
And all the authors of mysqlhotcopy, which served as a model for
the structure of the program.
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_waitpid \- Waits a specified amount of seconds for a PID to terminate.
.SH SYNOPSIS
mysql_waitpid [options] <pid> <seconds>
.SH DESCRIPTION
Description: Waits for a program, which program id is #pid, to
terminate within #time seconds. If the program terminates within
this time, or if the #pid no longer exists, value 0 is returned.
Otherwise 1 is returned. Both #pid and #time must be positive
integer arguments.
See mysql_waitpid for options.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlbinlog \- Dumps MySQL binary logs.
.SH SYNOPSIS
mysqlbinlog [options]
.SH DESCRIPTION
Dumps a MySQL binary log in a format usable for viewing or for pipeing to
the mysql command line client
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlbug \- MySQL bug reporting tool.
.SH SYNOPSIS
mysqlbug [options]
.SH DESCRIPTION
Interactive bug reporting tool. Use reportbug on Debian systems.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlcheck \- MySQL program for repairing, checking and optimizing tables.
.SH SYNOPSIS
mysqlcheck | mysqlanalyze | mysqloptimize [options]
.SH DESCRIPTION
This program can be used to CHECK (-c,-m,-C), REPAIR (-r), ANALYZE (-a)
or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be
used same time. It works on MyISAM and in some cases on BDB tables.
Please consult the MySQL manual for latest information about the
above. The options -c,-r,-a and -o are exclusive to each other, which
means that the last option will be used, if several was specified.
The option -c will be used by default, if none was specified. You
can change the default behavior by making a symbolic link, or
copying this file somewhere with another name, the alternatives are:
mysqlrepair: The default option will be -r
mysqlanalyze: The default option will be -a
mysqloptimize: The default option will be -o
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (8)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqldumpslow \- Parse and summarize the MySQL slow query log.
.SH SYNOPSIS
mysqldumpslow [options]
.SH DESCRIPTION
This program parses and summarizes a 'slow query log'.
.TP
\fB\-v\fR
verbose
.TP
\fB\-d\fR
debug
.TP
\fB\-s=WORD\fR
what to sort by (t, at, l, al, r, ar etc)
.TP
\fB\-r\fR
reverse the sort order (largest last instead of first)
.TP
\fB\-t=NUMBER\fR
just show the top n queries
.TP
\fB\-a\fR
don't abstract all numbers to N and strings to 'S'
.TP
\fB\-n=NUMBER\fR
abstract numbers with at least n digits within names
.TP
\fB\-g=WORD\fR
grep: only consider stmts that include this string
.TP
\fB\-h=WORD\fR
hostname of db server for *-slow.log filename (can be wildcard)
.TP
\fB\-i=WORD\fR
name of server instance (if using mysql.server startup script)
.TP
\fB\-l\fR
don't subtract lock time from total time
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org> based on
the commends in the code.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlimport \- Imports text files with MySQL database queries.
.SH SYNOPSIS
mysqlimport [options]
.SH DESCRIPTION
Loads tables from text files in various formats. The base name of the
text file must be the name of the table that should be used.
If one uses sockets to connect to the MySQL server, the server will open and
read the text file directly. In other cases the client will open the text
file. The SQL command 'LOAD DATA INFILE' is used to import the rows.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "March 2005" "MySQL 4.1" "MySQL database"
.SH NAME
mysqlmanager \- Manages instances of MySQL server.
.SH SYNOPSIS
.B mysqlmanager
[\fIOPTIONS\fR]
.SH DESCRIPTION
Manages instances of MySQL server.
.TP
\-?, \fB\-\-help\fR
Display this help and exit.
.TP
\fB\-P\fR, \fB\-\-port=\fR#
Port number to listen on.
.TP
\fB\-l\fR, \fB\-\-log\fR=\fIname\fR
Path to log file.
.TP
\fB\-b\fR, \fB\-\-bind\-address=\fR#
Address to listen on.
.HP
\fB\-B\fR, \fB\-\-tcp\-backlog=\fR# Size of TCP/IP listen queue.
.HP
\fB\-g\fR, \fB\-\-greeting\fR=\fIname\fR Set greeting on connect.
.TP
\fB\-m\fR, \fB\-\-max\-command\-len=\fR#
Maximum command length.
.TP
\fB\-d\fR, \fB\-\-one\-thread\fR
Use one thread ( for debugging).
.TP
\fB\-C\fR, \fB\-\-connect\-retries=\fR#
Number of attempts to establish MySQL connection.
.TP
\fB\-p\fR, \fB\-\-password\-file\fR=\fIname\fR
Password file for manager.
.HP
\fB\-f\fR, \fB\-\-pid\-file\fR=\fIname\fR Pid file to use.
.TP
\fB\-V\fR, \fB\-\-version\fR
Output version information and exit.
.SH "SEE ALSO"
The full documentation for
.B mysqlmanager
is available in the package mysql-doc-4.1 or on the MySQL
homepage www.mysql.com.
.SH AUTHOR
This manpage was created by Christian Hammers <ch@debian.org>
using help2man.
#!/usr/bin/perl -w
# mysqlreport v3.5 Apr 16 2008
# http://hackmysql.com/mysqlreport
# mysqlreport makes an easy-to-read report of important MySQL status values.
# Copyright 2006-2008 Daniel Nichter
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# The GNU General Public License is available at:
# http://www.gnu.org/copyleft/gpl.html
use strict;
use File::Temp qw(tempfile);
use DBI;
use Getopt::Long;
eval { require Term::ReadKey; };
my $RK = ($@ ? 0 : 1);
sub have_op;
my $WIN = ($^O eq 'MSWin32' ? 1 : 0);
my %op;
my %mycnf; # ~/.my.cnf
my ($tmpfile_fh, $tmpfile);
my ($stat_name, $stat_val, $stat_label);
my $MySQL_version;
my (%stats, %vars); # SHOW STATUS, SHOW VARIABLES
my (%DMS_vals, %Com_vals, %ib_vals);
my ($dbh, $query);
my ($questions, $key_read_ratio, $key_write_ratio, $dms, $slow_query_t);
my ($key_cache_block_size, $key_buffer_used, $key_buffer_usage);
my ($qc_mem_used, $qc_hi_r, $qc_ip_r); # Query Cache
my $have_innodb_vals;
my ($ib_bp_used, $ib_bp_total, $ib_bp_read_ratio);
my ($relative_live, $relative_infiles);
my $real_uptime;
my (%stats_present, %stats_past); # For relative reports
GetOptions (
\%op,
"user=s",
"password:s",
"host=s",
"port=s",
"socket=s",
"no-mycnf",
"infile|in=s",
"outfile=s",
"flush-status",
"email=s",
"r|relative:i",
"c|report-count=i",
"detach",
"help|?",
"debug"
);
show_help_and_exit() if $op{'help'};
get_user_mycnf() unless $op{'no-mycnf'};
# Command line options override ~/.my.cnf
$mycnf{'host'} = $op{'host'} if have_op 'host';
$mycnf{'port'} = $op{'port'} if have_op 'port';
$mycnf{'socket'} = $op{'socket'} if have_op 'socket';
$mycnf{'user'} = $op{'user'} if have_op 'user';
$mycnf{'user'} ||= $ENV{'USER'};
if(exists $op{'password'})
{
if($op{'password'} eq '') # Prompt for password
{
Term::ReadKey::ReadMode(2) if $RK;
print "Password for database user $mycnf{'user'}: ";
chomp($mycnf{'pass'} = <STDIN>);
Term::ReadKey::ReadMode(0), print "\n" if $RK;
}
else { $mycnf{'pass'} = $op{'password'}; } # Use password given on command line
}
$op{'com'} ||= 3;
$op{'c'} ||= 1; # Used in collect_reports() if --r given integer value
$relative_live = 0;
$relative_infiles = 0;
if(defined $op{'r'})
{
if($op{r}) { $relative_live = 1; } # if -r was given an integer value
else { $relative_infiles = 1; }
}
# The report is written to a tmp file first.
# Later it will be moved to $op{'outfile'} or emailed $op{'email'} if needed.
($tmpfile_fh, $tmpfile) = tempfile() or die "Cannot open temporary file for writing: $!\n";
if($op{'detach'})
{
$SIG{'TERM'} = 'sig_handler';
if(fork())
{
print "mysqlreport has forked and detached.\n";
print "While running detached, mysqlreport writes reports to '$tmpfile'.\n";
exit;
}
open(STDIN, "</dev/null");
open(STDOUT, "> $tmpfile") or die "Cannot dup STDOUT: $!\n";
open(STDERR, "> $tmpfile") or die "Cannot dup STDERR: $!\n";
}
select $tmpfile_fh;
$| = 1 if ($op{'detach'} || $relative_live);
print "tmp file: $tmpfile\n" if $op{debug};
# Connect to MySQL
if(!$op{'infile'} && !$relative_infiles)
{
connect_to_MySQL();
}
$have_innodb_vals = 1; # This might be set to 0 later in get_MySQL_version()
if(defined $op{'r'})
{
if($relative_live)
{
print STDERR "mysqlreport is writing relative reports to '$tmpfile'.\n" unless $op{'detach'};
get_MySQL_version();
collect_reports();
}
if($relative_infiles) { read_relative_infiles(); }
}
else
{
if(!$op{'infile'})
{
get_MySQL_version();
get_vals();
get_vars();
}
else
{
read_infile($op{'infile'});
}
get_Com_values();
set_myisam_vals();
set_ib_vals() if $have_innodb_vals;
write_report();
}
exit_tasks_and_cleanup();
exit;
#
# Subroutines
#
sub show_help_and_exit
{
print <<"HELP";
mysqlreport v3.5 Apr 16 2008
mysqlreport makes an easy-to-read report of important MySQL status values.
Command line options (abbreviations work):
--user USER Connect to MySQL as USER
--password PASS Use PASS or prompt for MySQL user's password
--host ADDRESS Connect to MySQL at ADDRESS
--port PORT Connect to MySQL at PORT
--socket SOCKET Connect to MySQL at SOCKET
--no-mycnf Don't read ~/.my.cnf
--infile FILE Read status values from FILE instead of MySQL
--outfile FILE Write report to FILE
--email ADDRESS Email report to ADDRESS (doesn't work on Windows)
--flush-status Issue FLUSH STATUS; after getting current values
--relative X Generate relative reports. If X is an integer,
reports are live from the MySQL server X seconds apart.
If X is a list of infiles (file1 file2 etc.),
reports are generated from the infiles in the order
that they are given.
--report-count N Collect N number of live relative reports (default 1)
--detach Fork and detach from terminal (run in background)
--help Prints this
--debug Print debugging information
Visit http://hackmysql.com/mysqlreport for more information.
HELP
exit;
}
sub get_user_mycnf
{
print "get_user_mycnf\n" if $op{debug};
return if $WIN;
open MYCNF, "$ENV{HOME}/.my.cnf" or return;
while(<MYCNF>)
{
if(/^(.+?)\s*=\s*"?(.+?)"?\s*$/)
{
$mycnf{$1} = $2;
print "get_user_mycnf: read '$1 = $2'\n" if $op{debug};
}
}
$mycnf{'pass'} ||= $mycnf{'password'} if exists $mycnf{'password'};
close MYCNF;
}
sub connect_to_MySQL
{
print "connect_to_MySQL\n" if $op{debug};
my $dsn;
if($mycnf{'socket'} && -S $mycnf{'socket'})
{
$dsn = "DBI:mysql:mysql_socket=$mycnf{socket}";
}
elsif($mycnf{'host'})
{
$dsn = "DBI:mysql:host=$mycnf{host}" . ($mycnf{port} ? ";port=$mycnf{port}" : "");
}
else
{
$dsn = "DBI:mysql:host=localhost";
}
print "connect_to_MySQL: DBI DSN: $dsn\n" if $op{debug};
$dbh = DBI->connect($dsn, $mycnf{'user'}, $mycnf{'pass'}) or die;
}
sub collect_reports
{
print "collect_reports\n" if $op{debug};
my $i;
get_vals();
get_vars();
get_Com_values();
%stats_past = %stats;
set_myisam_vals();
set_ib_vals() if $have_innodb_vals;
print "#\n# Beginning report, 0 0:0:0\n#\n";
write_report();
for($i = 0; $i < $op{'c'}; $i++)
{
$dbh->disconnect();
sleep($op{'r'});
connect_to_MySQL();
print "\n#\n# Interval report " , $i + 1 , ", +", sec_to_dhms(($i + 1) * $op{'r'}), "\n#\n";
get_vals();
write_relative_report();
}
}
sub read_relative_infiles
{
print "read_relative_infiles\n" if $op{debug};
my $slurp; # Used to check infiles for multiple sets of status values
my $n_stats; # Number of multiple sets of status values in an infile
my $infile;
my $report_n; # Report number
$report_n = 1;
foreach $infile (@ARGV)
{
# Read all of infile into $slurp
open INFILE, "< $infile" or warn and next;
$slurp = do { local $/; <INFILE> };
close INFILE;
$n_stats = 0;
# Count number of status value sets
$n_stats++ while $slurp =~ /Aborted_clients/g;
print "read_relative_infiles: found $n_stats sets of status values in file '$infile'\n"
if $op{debug};
if($n_stats == 1)
{
read_infile($infile);
relative_infile_report($report_n++);
}
if($n_stats > 1)
{
my @tmpfile_fh;
my @tmpfile_name;
my $i;
my $stat_n; # Status value set number
# Create a tmp file for each set of status values
for($i = 0; $i < $n_stats; $i++)
{
my ($fh, $name) = tempfile()
or die "read_relative_infiles: cannot open temporary file for writing: $!\n";
push(@tmpfile_fh, $fh);
push(@tmpfile_name, $name);
print "read_relative_infiles: created tmp file '$name' for set $i\n" if $op{debug};
}
$i = 0;
$stat_n = 0;
select $tmpfile_fh[$i];
# Read infile again and copy each set of status values to seperate tmp files
open INFILE, "< $infile" or warn and next;
while(<INFILE>)
{
next if /^\+/;
next if /^$/;
# The infile must begin with the system variable values.
# Therefore, the first occurance of Aborted_clients indicates the beginning
# of the first set of status values if no sets have occured yet ($stat_n == 0).
# In this case, the following status values are printed to the current fh,
# along with the system variable values read thus far, until Aborted_clients
# occurs again. Then begins the second and subsequent sets of status values.
if(/Aborted_clients/)
{
print and next if $stat_n++ == 0;
select $tmpfile_fh[++$i];
}
print;
}
close INFILE;
# Re-select the main tmp file into which the reports are being written.
select $tmpfile_fh;
for($i = 0; $i < $n_stats; $i++)
{
close $tmpfile_fh[$i];
print "read_relative_infiles: reading set $i tmp file '$tmpfile_name[$i]'\n"
if $op{debug};
read_infile($tmpfile_name[$i]);
relative_infile_report($report_n++);
if($WIN) { `del $tmpfile_name[$i]`; }
else { `rm -f $tmpfile_name[$i]`; }
print "read_relative_infiles: deleted set $i tmp file '$tmpfile_name[$i]'\n"
if $op{debug};
}
} # if($n_stats > 1)
} # foreach $infile (@files)
}
sub relative_infile_report
{
print "relative_infile_report\n" if $op{debug};
my $report_n = shift;
if($report_n == 1)
{
get_Com_values();
%stats_past = %stats;
set_myisam_vals();
set_ib_vals() if $have_innodb_vals;
print "#\n# Beginning report, 0 0:0:0\n#\n";
write_report();
}
else
{
print "\n#\n# Interval report ", $report_n - 1, ", +",
sec_to_dhms($stats{Uptime} - $stats_past{Uptime}),
"\n#\n";
write_relative_report();
}
}
sub get_vals
{
print "get_vals\n" if $op{debug};
my @row;
# Get status values
if($MySQL_version >= 50002)
{
$query = $dbh->prepare("SHOW GLOBAL STATUS;");
}
else
{
$query = $dbh->prepare("SHOW STATUS;");
}
$query->execute();
while(@row = $query->fetchrow_array()) { $stats{$row[0]} = $row[1]; }
$real_uptime = $stats{'Uptime'};
}
sub get_vars
{
print "get_vars\n" if $op{debug};
my @row;
# Get server system variables
$query = $dbh->prepare("SHOW VARIABLES;");
$query->execute();
while(@row = $query->fetchrow_array()) { $vars{$row[0]} = $row[1]; }
# table_cache was renamed to table_open_cache in MySQL 5.1.3
if($MySQL_version >= 50103)
{
$vars{'table_cache'} = $vars{'table_open_cache'};
}
}
sub read_infile
{
print "read_infile\n" if $op{debug};
my $infile = shift;
# Default required system variable values if not set in INFILE.
# As of mysqlreport v3.5 the direct output from SHOW VARIABLES;
# can be put into INFILE instead. See http://hackmysql.com/mysqlreportdoc
# for details.
$vars{'version'} = "0.0.0" if !exists $vars{'version'};
$vars{'table_cache'} = 64 if !exists $vars{'table_cache'};
$vars{'max_connections'} = 100 if !exists $vars{'max_connections'};
$vars{'key_buffer_size'} = 8388600 if !exists $vars{'key_buffer_size'}; # 8M
$vars{'thread_cache_size'} = 0 if !exists $vars{'thread_cache_size'};
$vars{'tmp_table_size'} = 0 if !exists $vars{'tmp_table_size'};
$vars{'long_query_time'} = '?' if !exists $vars{'long_query_time'};
$vars{'log_slow_queries'} = '?' if !exists $vars{'log_slow_queries'};
# One should also add:
# key_cache_block_size
# query_cache_size
# to INFILE if needed.
open INFILE, "< $infile" or die "Cannot open INFILE '$infile': $!\n";
while(<INFILE>)
{
last if !defined $_;
next if /^\+/; # skip divider lines
next if /^$/; # skip blank lines
next until /(Aborted_clients|back_log|=)/;
if($1 eq 'Aborted_clients') # status values
{
print "read_infile: start stats\n" if $op{debug};
while($_)
{
chomp;
if(/([A-Za-z_]+)[\s\t|]+(\d+)/)
{
$stats{$1} = $2;
print "read_infile: save $1 = $2\n" if $op{debug};
}
else { print "read_infile: ignore '$_'\n" if $op{debug}; }
last if $1 eq 'Uptime'; # exit while() if end of status values
$_ = <INFILE>; # otherwise, read next line of status values
}
}
elsif($1 eq 'back_log') # system variable values
{
print "read_infile: start vars\n" if $op{debug};
while($_)
{
chomp;
if(/([A-Za-z_]+)[\s\t|]+([\w\.\-]+)/) # This will exclude some vars
{ # like pid_file which we don't need
$vars{$1} = $2;
print "read_infile: save $1 = $2\n" if $op{debug};
}
else { print "read_infile: ignore '$_'\n" if $op{debug}; }
last if $1 eq 'wait_timeout'; # exit while() if end of vars
$_ = <INFILE>; # otherwise, read next line of vars
}
}
elsif($1 eq '=') # old style, manually added system variable values
{
print "read_infile: start old vars\n" if $op{debug};
while($_ && $_ =~ /=/)
{
chomp;
if(/^\s*(\w+)\s*=\s*([0-9.]+)(M*)\s*$/) # e.g.: key_buffer_size = 128M
{
$vars{$1} = ($3 ? $2 * 1024 * 1024 : $2);
print "read_infile: read '$_' as $1 = $vars{$1}\n" if $op{debug};
}
else { print "read_infile: ignore '$_'\n" if $op{debug}; }
$_ = <INFILE>; # otherwise, read next line of old vars
}
redo;
}
else
{
print "read_infile: unrecognized line: '$_'\n" if $op{debug};
}
}
close INFILE;
$real_uptime = $stats{'Uptime'};
$vars{'table_cache'} = $vars{'table_open_cache'} if exists $vars{'table_open_cache'};
get_MySQL_version();
}
sub get_MySQL_version
{
print "get_MySQL_version\n" if $op{debug};
return if $MySQL_version;
my ($major, $minor, $patch);
if($op{'infile'} || $relative_infiles)
{
($major, $minor, $patch) = ($vars{'version'} =~ /(\d{1,2})\.(\d{1,2})\.(\d{1,2})/);
}
else
{
my @row;
$query = $dbh->prepare("SHOW VARIABLES LIKE 'version';");
$query->execute();
@row = $query->fetchrow_array();
($major, $minor, $patch) = ($row[1] =~ /(\d{1,2})\.(\d{1,2})\.(\d{1,2})/);
}
$MySQL_version = sprintf("%d%02d%02d", $major, $minor, $patch);
# Innodb_ status values were added in 5.0.2
if($MySQL_version < 50002)
{
$have_innodb_vals = 0;
print "get_MySQL_version: no InnoDB reports because MySQL version is older than 5.0.2\n" if $op{debug};
}
}
sub set_myisam_vals
{
print "set_myisam_vals\n" if $op{debug};
$questions = $stats{'Questions'};
$key_read_ratio = sprintf "%.2f",
($stats{'Key_read_requests'} ?
100 - ($stats{'Key_reads'} / $stats{'Key_read_requests'}) * 100 :
0);
$key_write_ratio = sprintf "%.2f",
($stats{'Key_write_requests'} ?
100 - ($stats{'Key_writes'} / $stats{'Key_write_requests'}) * 100 :
0);
$key_cache_block_size = (defined $vars{'key_cache_block_size'} ?
$vars{'key_cache_block_size'} :
1024);
$key_buffer_used = $stats{'Key_blocks_used'} * $key_cache_block_size;
if(defined $stats{'Key_blocks_unused'}) # MySQL 4.1.2+
{
$key_buffer_usage = $vars{'key_buffer_size'} -
($stats{'Key_blocks_unused'} * $key_cache_block_size);
}
else { $key_buffer_usage = -1; }
# Data Manipulation Statements: http://dev.mysql.com/doc/refman/5.0/en/data-manipulation.html
%DMS_vals =
(
SELECT => $stats{'Com_select'},
INSERT => $stats{'Com_insert'} + $stats{'Com_insert_select'},
REPLACE => $stats{'Com_replace'} + $stats{'Com_replace_select'},
UPDATE => $stats{'Com_update'} +
(exists $stats{'Com_update_multi'} ? $stats{'Com_update_multi'} : 0),
DELETE => $stats{'Com_delete'} +
(exists $stats{'Com_delete_multi'} ? $stats{'Com_delete_multi'} : 0)
);
$dms = $DMS_vals{SELECT} + $DMS_vals{INSERT} + $DMS_vals{REPLACE} + $DMS_vals{UPDATE} + $DMS_vals{DELETE};
$slow_query_t = format_u_time($vars{long_query_time});
}
sub set_ib_vals
{
print "set_ib_vals\n" if $op{debug};
$ib_bp_used = ($stats{'Innodb_buffer_pool_pages_total'} -
$stats{'Innodb_buffer_pool_pages_free'}) *
$stats{'Innodb_page_size'};
$ib_bp_total = $stats{'Innodb_buffer_pool_pages_total'} * $stats{'Innodb_page_size'};
$ib_bp_read_ratio = sprintf "%.2f",
($stats{'Innodb_buffer_pool_read_requests'} ?
100 - ($stats{'Innodb_buffer_pool_reads'} /
$stats{'Innodb_buffer_pool_read_requests'}) * 100 :
0);
}
sub write_relative_report
{
print "write_relative_report\n" if $op{debug};
%stats_present = %stats;
for(keys %stats)
{
if($stats_past{$_} =~ /\d+/)
{
if($stats_present{$_} >= $stats_past{$_}) # Avoid negative values
{
$stats{$_} = $stats_present{$_} - $stats_past{$_};
}
}
}
# These values are either "at present" or "high water marks".
# Therefore, it is more logical to not relativize these values.
# Doing otherwise causes strange and misleading values.
$stats{'Key_blocks_used'} = $stats_present{'Key_blocks_used'};
$stats{'Open_tables'} = $stats_present{'Open_tables'};
$stats{'Max_used_connections'} = $stats_present{'Max_used_connections'};
$stats{'Threads_running'} = $stats_present{'Threads_running'};
$stats{'Threads_connected'} = $stats_present{'Threads_connected'};
$stats{'Threads_cached'} = $stats_present{'Threads_cached'};
$stats{'Qcache_free_blocks'} = $stats_present{'Qcache_free_blocks'};
$stats{'Qcache_total_blocks'} = $stats_present{'Qcache_total_blocks'};
$stats{'Qcache_free_memory'} = $stats_present{'Qcache_free_memory'};
if($have_innodb_vals)
{
$stats{'Innodb_page_size'} = $stats_present{'Innodb_page_size'};
$stats{'Innodb_buffer_pool_pages_data'} = $stats_present{'Innodb_buffer_pool_pages_data'};
$stats{'Innodb_buffer_pool_pages_dirty'} = $stats_present{'Innodb_buffer_pool_pages_dirty'};
$stats{'Innodb_buffer_pool_pages_free'} = $stats_present{'Innodb_buffer_pool_pages_free'};
$stats{'Innodb_buffer_pool_pages_latched'} = $stats_present{'Innodb_buffer_pool_pages_latched'};
$stats{'Innodb_buffer_pool_pages_misc'} = $stats_present{'Innodb_buffer_pool_pages_misc'};
$stats{'Innodb_buffer_pool_pages_total'} = $stats_present{'Innodb_buffer_pool_pages_total'};
$stats{'Innodb_data_pending_fsyncs'} = $stats_present{'Innodb_data_pending_fsyncs'};
$stats{'Innodb_data_pending_reads'} = $stats_present{'Innodb_data_pending_reads'};
$stats{'Innodb_data_pending_writes'} = $stats_present{'Innodb_data_pending_writes'};
# Innodb_row_lock_ values were added in MySQL 5.0.3
if($MySQL_version >= 50003)
{
$stats{'Innodb_row_lock_current_waits'} = $stats_present{'Innodb_row_lock_current_waits'};
$stats{'Innodb_row_lock_time_avg'} = $stats_present{'Innodb_row_lock_time_avg'};
$stats{'Innodb_row_lock_time_max'} = $stats_present{'Innodb_row_lock_time_max'};
}
}
get_Com_values();
%stats_past = %stats_present;
set_myisam_vals();
set_ib_vals() if $have_innodb_vals;
write_report();
}
sub write_report
{
print "write_report\n" if $op{debug};
$~ = 'MYSQL_TIME', write;
$~ = 'KEY_BUFF_MAX', write;
if($key_buffer_usage != -1) { $~ = 'KEY_BUFF_USAGE', write }
$~ = 'KEY_RATIOS', write;
write_DTQ();
$~ = 'SLOW_DMS', write;
write_DMS();
write_Com();
$~ = 'SAS', write;
write_qcache();
$~ = 'REPORT_END', write;
$~ = 'TAB', write;
write_InnoDB() if $have_innodb_vals;
}
sub sec_to_dhms # Seconds to days hours:minutes:seconds
{
my $s = shift;
my ($d, $h, $m) = (0, 0, 0);
return '0 0:0:0' if $s <= 0;
if($s >= 86400)
{
$d = int $s / 86400;
$s -= $d * 86400;
}
if($s >= 3600)
{
$h = int $s / 3600;
$s -= $h * 3600;
}
$m = int $s / 60;
$s -= $m * 60;
return "$d $h:$m:$s";
}
sub make_short
{
my ($number, $kb, $d) = @_;
my $n = 0;
my $short;
$d ||= 2;
if($kb) { while ($number > 1023) { $number /= 1024; $n++; }; }
else { while ($number > 999) { $number /= 1000; $n++; }; }
$short = sprintf "%.${d}f%s", $number, ('','k','M','G','T')[$n];
if($short =~ /^(.+)\.(00)$/) { return $1; } # 12.00 -> 12 but not 12.00k -> 12k
return $short;
}
# What began as a simple but great idea has become the new standard:
# long_query_time in microseconds. For MySQL 5.1.21+ and 6.0.4+ this
# is now standard. For 4.1 and 5.0 patches, the architects of this
# idea provide: http://www.mysqlperformanceblog.com/mysql-patches/
# Relevant notes in MySQL manual:
# http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html
# http://dev.mysql.com/doc/refman/6.0/en/slow-query-log.html
#
# The format_u_time sub simply beautifies long_query_time.
sub format_u_time # format microsecond () time value
{
# 0.000000 - 0.000999 = 0 - 999
# 0.001000 - 0.999999 = 1 ms - 999.999 ms
# 1.000000 - n.nnnnnn = 1 s - n.nnnnn s
my $t = shift;
my $f; # formatted time
my $u = chr(($WIN ? 230 : 181));
$t = 0 if $t < 0;
if($t > 0 && $t <= 0.000999)
{
$f = ($t * 1000000) . " $u";
}
elsif($t >= 0.001000 && $t <= 0.999999)
{
$f = ($t * 1000) . ' ms';
}
elsif($t >= 1)
{
$f = ($t * 1) . ' s'; # * 1 to remove insignificant zeros
}
else
{
$f = 0; # $t should = 0 at this point
}
return $f;
}
sub perc # Percentage
{
my($is, $of) = @_;
$is = 0 if (not defined $is);
return sprintf "%.2f", ($is * 100) / ($of ||= 1);
}
sub t # Time average per second
{
my $val = shift;
return 0 if !$val;
return(make_short($val / $stats{'Uptime'}, 0, 1));
}
sub email_report # Email given report to $op{'email'}
{
print "email_report\n" if $op{debug};
return if $WIN;
my $report = shift;
open SENDMAIL, "|/usr/sbin/sendmail -t";
print SENDMAIL "From: mysqlreport\n";
print SENDMAIL "To: $op{email}\n";
print SENDMAIL "Subject: MySQL status report on " . ($mycnf{'host'} || 'localhost') . "\n\n";
print SENDMAIL `cat $report`;
close SENDMAIL;
}
sub cat_report # Print given report to screen
{
print "cat_report\n" if $op{debug};
my $report = shift;
my @report;
open REPORT, "< $report";
@report = <REPORT>;
close REPORT;
print @report;
}
sub get_Com_values
{
print "get_Com_values\n" if $op{debug};
%Com_vals = ();
# Make copy of just the Com_ values
for(keys %stats)
{
if(grep /^Com_/, $_ and $stats{$_} > 0)
{
/^Com_(.*)/;
$Com_vals{$1} = $stats{$_};
}
}
# Remove DMS values
delete $Com_vals{'select'};
delete $Com_vals{'insert'};
delete $Com_vals{'insert_select'};
delete $Com_vals{'replace'};
delete $Com_vals{'replace_select'};
delete $Com_vals{'update'};
delete $Com_vals{'update_multi'} if exists $Com_vals{'update_multi'};
delete $Com_vals{'delete'};
delete $Com_vals{'delete_multi'} if exists $Com_vals{'delete_multi'};
}
sub write_DTQ # Write DTQ report in descending order by values
{
print "write_DTQ\n" if $op{debug};
$~ = 'DTQ';
my %DTQ;
my $first = 1;
# Total Com values
$stat_val = 0;
for(values %Com_vals) { $stat_val += $_; }
$DTQ{'Com_'} = $stat_val;
$DTQ{'DMS'} = $dms;
$DTQ{'QC Hits'} = $stats{'Qcache_hits'} if $stats{'Qcache_hits'} != 0;
$DTQ{'COM_QUIT'} = int (($stats{'Connections'} - 2) - ($stats{'Aborted_clients'} / 2));
$stat_val = 0;
for(values %DTQ) { $stat_val += $_; }
if($questions != $stat_val)
{
$DTQ{($questions > $stat_val ? '+Unknown' : '-Unknown')} = abs $questions - $stat_val;
}
for(sort { $DTQ{$b} <=> $DTQ{$a} } keys(%DTQ))
{
if($first) { $stat_label = '%Total:'; $first = 0; }
else { $stat_label = ''; }
$stat_name = $_;
$stat_val = $DTQ{$_};
write;
}
}
sub write_DMS # Write DMS report in descending order by values
{
print "write_DMS\n" if $op{debug};
$~ = 'DMS';
for(sort { $DMS_vals{$b} <=> $DMS_vals{$a} } keys(%DMS_vals))
{
$stat_name = $_;
$stat_val = $DMS_vals{$_};
write;
}
}
sub write_Com # Write COM report in descending order by values
{
print "write_Com\n" if $op{debug};
my $i = $op{'com'};
$~ = 'COM_1';
# Total Com values and write first line of COM report
$stat_label = '%Total:' unless $op{'dtq'};
$stat_val = 0;
for(values %Com_vals) { $stat_val += $_; }
write;
$~ = 'COM_2';
# Sort remaining Com values, print only the top $op{'com'} number of values
for(sort { $Com_vals{$b} <=> $Com_vals{$a} } keys(%Com_vals))
{
$stat_name = $_;
$stat_val = $Com_vals{$_};
write;
last if !(--$i);
}
}
sub write_qcache
{
print "write_qcache\n" if $op{debug};
# Query cache was added in 4.0.1, but have_query_cache was added in 4.0.2,
# ergo this method is slightly more reliable
return if not exists $vars{'query_cache_size'};
return if $vars{'query_cache_size'} == 0;
$qc_mem_used = $vars{'query_cache_size'} - $stats{'Qcache_free_memory'};
$qc_hi_r = sprintf "%.2f", $stats{'Qcache_hits'} / ($stats{'Qcache_inserts'} ||= 1);
$qc_ip_r = sprintf "%.2f", $stats{'Qcache_inserts'} / ($stats{'Qcache_lowmem_prunes'} ||= 1);
$~ = 'QCACHE';
write;
}
sub write_InnoDB
{
print "write_InnoDB\n" if $op{debug};
return if not defined $stats{'Innodb_page_size'};
$stats{'Innodb_buffer_pool_pages_latched'} = 0 if not defined $stats{'Innodb_buffer_pool_pages_latched'};
$~ = 'IB';
write;
# Innodb_row_lock_ values were added in MySQL 5.0.3
if($MySQL_version >= 50003)
{
$~ = 'IB_LOCK';
write;
}
# Data, Pages, Rows
$~ = 'IB_DPR';
write;
}
sub have_op
{
my $key = shift;
return 1 if (exists $op{$key} && $op{$key} ne '');
return 0;
}
sub sig_handler
{
print "\nReceived signal at " , scalar localtime , "\n";
exit_tasks_and_cleanup();
exit;
}
sub exit_tasks_and_cleanup
{
print "exit_tasks_and_cleanup\n" if $op{debug};
close $tmpfile_fh;
select STDOUT unless $op{'detach'};
email_report($tmpfile) if $op{'email'};
cat_report($tmpfile) unless $op{'detach'};
if($op{'outfile'})
{
if($WIN) { `move $tmpfile $op{outfile}`; }
else { `mv $tmpfile $op{outfile}`; }
}
else
{
if($WIN) { `del $tmpfile`; }
else { `rm -f $tmpfile`; }
}
if(!$op{'infile'} && !$relative_infiles)
{
if($op{'flush-status'})
{
$query = $dbh->prepare("FLUSH STATUS;");
$query->execute();
}
$query->finish();
$dbh->disconnect();
}
}
#
# Formats
#
format MYSQL_TIME =
MySQL @<<<<<<<<<<<<<<<< uptime @<<<<<<<<<<< @>>>>>>>>>>>>>>>>>>>>>>>>
$vars{'version'}, sec_to_dhms($real_uptime), (($op{infile} || $relative_infiles) ? '' : scalar localtime)
.
format KEY_BUFF_MAX =
__ Key _________________________________________________________________
Buffer used @>>>>>> of @>>>>>> %Used: @>>>>>
make_short($key_buffer_used, 1), make_short($vars{'key_buffer_size'}, 1), perc($key_buffer_used, $vars{'key_buffer_size'})
.
format KEY_BUFF_USAGE =
Current @>>>>>> %Usage: @>>>>>
make_short($key_buffer_usage, 1), perc($key_buffer_usage, $vars{'key_buffer_size'})
.
format KEY_RATIOS =
Write hit @>>>>>%
$key_write_ratio
Read hit @>>>>>%
$key_read_ratio
__ Questions ___________________________________________________________
Total @>>>>>>>> @>>>>>/s
make_short($questions), t($questions)
.
format DTQ =
@<<<<<<< @>>>>>>>> @>>>>>/s @>>>>>> @>>>>>
$stat_name, make_short($stat_val), t($stat_val), $stat_label, perc($stat_val, $questions)
.
format SLOW_DMS =
Slow @<<<<<<< @>>>>>> @>>>>>/s @>>>>> %DMS: @>>>>> Log: @>>
$slow_query_t, make_short($stats{'Slow_queries'}), t($stats{'Slow_queries'}), perc($stats{'Slow_queries'}, $questions), perc($stats{'Slow_queries'}, $dms), $vars{'log_slow_queries'}
DMS @>>>>>>>> @>>>>>/s @>>>>>
make_short($dms), t($dms), perc($dms, $questions)
.
format DMS =
@<<<<<<< @>>>>>>>> @>>>>>/s @>>>>> @>>>>>
$stat_name, make_short($stat_val), t($stat_val), perc($stat_val, $questions), perc($stat_val, $dms)
.
format COM_1 =
Com_ @>>>>>>>> @>>>>>/s @>>>>>
make_short($stat_val), t($stat_val), perc($stat_val, $questions)
.
format COM_2 =
@<<<<<<<<<< @>>>>>> @>>>>>/s @>>>>>
$stat_name, make_short($stat_val), t($stat_val), perc($stat_val, $questions)
.
format SAS =
__ SELECT and Sort _____________________________________________________
Scan @>>>>>> @>>>>/s %SELECT: @>>>>>
make_short($stats{'Select_scan'}), t($stats{'Select_scan'}), perc($stats{'Select_scan'}, $stats{'Com_select'})
Range @>>>>>> @>>>>/s @>>>>>
make_short($stats{'Select_range'}), t($stats{'Select_range'}), perc($stats{'Select_range'}, $stats{'Com_select'})
Full join @>>>>>> @>>>>/s @>>>>>
make_short($stats{'Select_full_join'}), t($stats{'Select_full_join'}), perc($stats{'Select_full_join'}, $stats{'Com_select'})
Range check @>>>>>> @>>>>/s @>>>>>
make_short($stats{'Select_range_check'}), t($stats{'Select_range_check'}), perc($stats{'Select_range_check'}, $stats{'Com_select'})
Full rng join @>>>>>> @>>>>/s @>>>>>
make_short($stats{'Select_full_range_join'}), t($stats{'Select_full_range_join'}), perc($stats{'Select_full_range_join'}, $stats{'Com_select'})
Sort scan @>>>>>> @>>>>/s
make_short($stats{'Sort_scan'}), t($stats{'Sort_scan'})
Sort range @>>>>>> @>>>>/s
make_short($stats{'Sort_range'}), t($stats{'Sort_range'})
Sort mrg pass @>>>>>> @>>>>/s
make_short($stats{'Sort_merge_passes'}), t($stats{'Sort_merge_passes'})
.
format QCACHE =
__ Query Cache _________________________________________________________
Memory usage @>>>>>> of @>>>>>> %Used: @>>>>>
make_short($qc_mem_used, 1), make_short($vars{'query_cache_size'}, 1), perc($qc_mem_used, $vars{'query_cache_size'})
Block Fragmnt @>>>>>%
perc($stats{'Qcache_free_blocks'}, $stats{'Qcache_total_blocks'})
Hits @>>>>>> @>>>>/s
make_short($stats{'Qcache_hits'}), t($stats{'Qcache_hits'})
Inserts @>>>>>> @>>>>/s
make_short($stats{'Qcache_inserts'}), t($stats{'Qcache_inserts'})
Insrt:Prune @>>>>>>:1 @>>>>/s
make_short($qc_ip_r), t($stats{'Qcache_inserts'} - $stats{'Qcache_lowmem_prunes'})
Hit:Insert @>>>>>>:1
$qc_hi_r, t($qc_hi_r)
.
# Not really the end...
format REPORT_END =
__ Table Locks _________________________________________________________
Waited @>>>>>>>> @>>>>>/s %Total: @>>>>>
make_short($stats{'Table_locks_waited'}), t($stats{'Table_locks_waited'}), perc($stats{'Table_locks_waited'}, $stats{'Table_locks_waited'} + $stats{'Table_locks_immediate'});
Immediate @>>>>>>>> @>>>>>/s
make_short($stats{'Table_locks_immediate'}), t($stats{'Table_locks_immediate'})
__ Tables ______________________________________________________________
Open @>>>>>>>> of @>>> %Cache: @>>>>>
$stats{'Open_tables'}, $vars{'table_cache'}, perc($stats{'Open_tables'}, $vars{'table_cache'})
Opened @>>>>>>>> @>>>>>/s
make_short($stats{'Opened_tables'}), t($stats{'Opened_tables'})
__ Connections _________________________________________________________
Max used @>>>>>>>> of @>>> %Max: @>>>>>
$stats{'Max_used_connections'}, $vars{'max_connections'}, perc($stats{'Max_used_connections'}, $vars{'max_connections'})
Total @>>>>>>>> @>>>>>/s
make_short($stats{'Connections'}), t($stats{'Connections'})
__ Created Temp ________________________________________________________
Disk table @>>>>>>>> @>>>>>/s
make_short($stats{'Created_tmp_disk_tables'}), t($stats{'Created_tmp_disk_tables'})
Table @>>>>>>>> @>>>>>/s Size: @>>>>>
make_short($stats{'Created_tmp_tables'}), t($stats{'Created_tmp_tables'}), make_short($vars{'tmp_table_size'}, 1, 1)
File @>>>>>>>> @>>>>>/s
make_short($stats{'Created_tmp_files'}), t($stats{'Created_tmp_files'})
.
format TAB =
__ Threads _____________________________________________________________
Running @>>>>>>>> of @>>>
$stats{'Threads_running'}, $stats{'Threads_connected'}
Cached @>>>>>>>> of @>>> %Hit: @>>>>>
$stats{'Threads_cached'}, $vars{'thread_cache_size'}, make_short(100 - perc($stats{'Threads_created'}, $stats{'Connections'}))
Created @>>>>>>>> @>>>>>/s
make_short($stats{'Threads_created'}), t($stats{'Threads_created'})
Slow @>>>>>>>> @>>>>>/s
$stats{'Slow_launch_threads'}, t($stats{'Slow_launch_threads'})
__ Aborted _____________________________________________________________
Clients @>>>>>>>> @>>>>>/s
make_short($stats{'Aborted_clients'}), t($stats{'Aborted_clients'})
Connects @>>>>>>>> @>>>>>/s
make_short($stats{'Aborted_connects'}), t($stats{'Aborted_connects'})
__ Bytes _______________________________________________________________
Sent @>>>>>>>> @>>>>>/s
make_short($stats{'Bytes_sent'}), t($stats{'Bytes_sent'})
Received @>>>>>>>> @>>>>>/s
make_short($stats{'Bytes_received'}), t($stats{'Bytes_received'})
.
format IB =
__ InnoDB Buffer Pool __________________________________________________
Usage @>>>>>> of @>>>>>> %Used: @>>>>>
make_short($ib_bp_used, 1), make_short($ib_bp_total, 1), perc($ib_bp_used, $ib_bp_total)
Read hit @>>>>>%
$ib_bp_read_ratio;
Pages
Free @>>>>>>>> %Total: @>>>>>
make_short($stats{'Innodb_buffer_pool_pages_free'}), perc($stats{'Innodb_buffer_pool_pages_free'}, $stats{'Innodb_buffer_pool_pages_total'})
Data @>>>>>>>> @>>>>> %Drty: @>>>>>
make_short($stats{'Innodb_buffer_pool_pages_data'}), perc($stats{'Innodb_buffer_pool_pages_data'}, $stats{'Innodb_buffer_pool_pages_total'}), perc($stats{'Innodb_buffer_pool_pages_dirty'}, $stats{'Innodb_buffer_pool_pages_data'})
Misc @>>>>>>>> @>>>>>
$stats{'Innodb_buffer_pool_pages_misc'}, perc($stats{'Innodb_buffer_pool_pages_misc'}, $stats{'Innodb_buffer_pool_pages_total'})
Latched @>>>>>>>> @>>>>>
$stats{'Innodb_buffer_pool_pages_latched'}, perc($stats{'Innodb_buffer_pool_pages_latched'}, $stats{'Innodb_buffer_pool_pages_total'})
Reads @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_buffer_pool_read_requests'}), t($stats{'Innodb_buffer_pool_read_requests'})
From file @>>>>>>>> @>>>>>/s @>>>>>
make_short($stats{'Innodb_buffer_pool_reads'}), t($stats{'Innodb_buffer_pool_reads'}), perc($stats{'Innodb_buffer_pool_reads'}, $stats{'Innodb_buffer_pool_read_requests'})
Ahead Rnd @>>>>>>>> @>>>>>/s
$stats{'Innodb_buffer_pool_read_ahead_rnd'}, t($stats{'Innodb_buffer_pool_read_ahead_rnd'})
Ahead Sql @>>>>>>>> @>>>>>/s
$stats{'Innodb_buffer_pool_read_ahead_seq'}, t($stats{'Innodb_buffer_pool_read_ahead_seq'})
Writes @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_buffer_pool_write_requests'}), t($stats{'Innodb_buffer_pool_write_requests'})
Flushes @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_buffer_pool_pages_flushed'}), t($stats{'Innodb_buffer_pool_pages_flushed'})
Wait Free @>>>>>>>> @>>>>>/s
$stats{'Innodb_buffer_pool_wait_free'}, t($stats{'Innodb_buffer_pool_wait_free'})
.
format IB_LOCK =
__ InnoDB Lock _________________________________________________________
Waits @>>>>>>>> @>>>>>/s
$stats{'Innodb_row_lock_waits'}, t($stats{'Innodb_row_lock_waits'})
Current @>>>>>>>>
$stats{'Innodb_row_lock_current_waits'}
Time acquiring
Total @>>>>>>>> ms
$stats{'Innodb_row_lock_time'}
Average @>>>>>>>> ms
$stats{'Innodb_row_lock_time_avg'}
Max @>>>>>>>> ms
$stats{'Innodb_row_lock_time_max'}
.
format IB_DPR =
__ InnoDB Data, Pages, Rows ____________________________________________
Data
Reads @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_data_reads'}), t($stats{'Innodb_data_reads'})
Writes @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_data_writes'}), t($stats{'Innodb_data_writes'})
fsync @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_data_fsyncs'}), t($stats{'Innodb_data_fsyncs'})
Pending
Reads @>>>>>>>>
$stats{'Innodb_data_pending_reads'}, t($stats{'Innodb_data_pending_reads'})
Writes @>>>>>>>>
$stats{'Innodb_data_pending_writes'}, t($stats{'Innodb_data_pending_writes'})
fsync @>>>>>>>>
$stats{'Innodb_data_pending_fsyncs'}, t($stats{'Innodb_data_pending_fsyncs'})
Pages
Created @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_pages_created'}), t($stats{'Innodb_pages_created'})
Read @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_pages_read'}), t($stats{'Innodb_pages_read'})
Written @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_pages_written'}), t($stats{'Innodb_pages_written'})
Rows
Deleted @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_rows_deleted'}), t($stats{'Innodb_rows_deleted'})
Inserted @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_rows_inserted'}), t($stats{'Innodb_rows_inserted'})
Read @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_rows_read'}), t($stats{'Innodb_rows_read'})
Updated @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_rows_updated'}), t($stats{'Innodb_rows_updated'})
.
.TH "mysqlreport" "1" "2.5 2006-09-01 (docrev 2006-05-19)" "Daniel Nichter" "MYSQL"
.SH "NAME"
.LP
mysqlreport \- Makes a friendly report of important MySQL status values
.SH "SYNTAX"
.LP
mysqlreport [\fIoptions\fP]
.SH "DESCRIPTION"
.LP
mysqlreport makes a friendly report of important MySQL status values. Actually,
it makes a friendly report of nearly every status value from SHOW STATUS.
Unlike SHOW STATUS which simply dumps over 100 values to screen in one long
list, mysqlreport interprets and formats the values and presents the basic
values and many more inferred values in a human\-readable format. Numerous
example reports are available at the mysqlreport web page at
http://hackmysql.com/mysqlreport.
The benefit of mysqlreport is that it allows you to very quickly see a wide
array of performance indicators for your MySQL server which would otherwise
need to be calculated by hand from all the various SHOW STATUS values. For
example, the Index Read Ratio is an important value but it's not present in
SHOW STATUS; it's an inferred value (the ratio of Key_reads to
Key_read_requests).
This documentation outlines all the command line options in mysqlreport, most
of which control which reports are printed. This document does not address
how to interpret these reports; that topic is covered in the document Guide
To Understanding mysqlreport at http://hackmysql.com/mysqlreportguide.
.SH "OPTIONS"
Technically, command line options are in the form \-\-option, but \-option works
too. All options can be abbreviated if the abbreviation is unique. For example,
option \-\-host can be abbreviated \-\-ho but not \-\-h because \-\-h is ambiguous: it
could mean \-\-host or \-\-help.
.LP
.TP
\fB\-\-help\fR
Output help information and exit.
.TP
\fB\-\-user USER\fR
.TP
\fB\-\-password\fR
As of version 2.3 \-\-password can take the password on the
command line like "\-\-password FOO". Using \-\-password
alone without giving a password on the command line
causes mysqlreport to prompt for a password.
.TP
\fB\-\-host ADDRESS\fR
.TP
\fB\-\-port PORT\fR
.TP
\fB\-\-socket SOCKET\fR
.TP
\fB\-\-no\-mycnf\fR
\-\-no\-mycnf makes mysqlreport not read ~/.my.cnf which it does by default
otherwise. \-\-user and \-\-password always override values from ~/.my.cnf.
.TP
\fB\-\-dtq\fR
Print Distribution of Total Queries (DTQ) report (under
Total in Questions report). Queries (or Questions) can
be divided into four main areas: DMS (see \-\-dms below),
Com_ (see \-\-com below), COM_QUIT (see COM_QUIT and
Questions at http://hackmysql.com/com_quit), and
Unknown. \-\-dtq lists the number of queries in each of
these areas in descending order.
.TP
\fB\-\-dms\fR
Print Data Manipulation Statements (DMS) report (under
DMS in Questions report). DMS are those from the MySQL
manual section 13.2. Data Manipulation Statements.
(Currently, mysqlreport considers only SELECT, INSERT,
REPLACE, UPDATE, and DELETE.) Each DMS is listed in
descending order by count.
.TP
\fB\-\-com N\fR
Print top N number of non\-DMS Com_ status values in
descending order (after DMS in Questions report). If N
is not given, default is 3. Such non\-DMS Com_ values
include Com_change_db, Com_show_tables, Com_rollback,
etc.
.TP
\fB\-\-sas\fR
Print report for Select_ and Sort_ status values (after
Questions report). See MySQL Select and Sort Status
Variables at http://hackmysql.com/selectandsort.
.TP
\fB\-\-tab\fR
Print Threads, Aborted, and Bytes status reports (after
Created temp report). As of mysqlreport v2.3 the
Threads report reports on all Threads_ status values.
.TP
\fB\-\-qcache\fR
Print Query Cache report.
.TP
\fB\-\-all\fR
Equivalent to "\-\-dtq \-\-dms \-\-com 3 \-\-sas \-\-qcache".
(Notice \-\-tab is not invoked by \-\-all.)
.TP
\fB\-\-infile FILE\fR
Instead of getting SHOW STATUS values from MySQL, read
values from FILE. FILE is often a copy of the output of
SHOW STATUS including formatting characters (|, +, \-).
mysqlreport expects FILE to have the format
" value number " where value is only alpha and
underscore characters (A\-Z and _) and number is a
positive integer. Anything before, between, or after
value and number is ignored. mysqlreport also needs
the following MySQL server variables: version,
table_cache, max_connections, key_buffer_size,
query_cache_size. These values can be specified in
INFILE in the format "name = value" where name is one
of the aforementioned server variables and value is a
positive integer with or without a trailing M and
possible periods (for version). For example, to specify
an 18M key_buffer_size: key_buffer_size = 18M. Or, a
256 table_cache: table_cache = 256. The M implies
Megabytes not million, so 18M means 18,874,368 not
18,000,000. If these server variables are not specified
the following defaults are used (respectively) which
may cause strange values to be reported: 0.0.0, 64,
100, 8M, 0.
.TP
\fB\-\-outfile FILE\fR
After printing the report to screen, print the report
to FILE too. Internally, mysqlreport always writes the
report to a temp file first: /tmp/mysqlreport.PID on
*nix, c:\mysqlreport.PID on Windows (PID is the
script's process ID). Then it prints the temp file to
screen. Then if \-\-outfile is specified, the temp file
is copied to OUTFILE. After \-\-email (below), the temp
file is deleted.
.TP
\fB\-\-email ADDRESS\fR
After printing the report to screen, email the report
to ADDRESS. This option requires sendmail in
/usr/sbin/, therefore it does not work on Windows.
/usr/sbin/sendmail can be a sym link to qmail, for
example, or any MTA that emulates sendmail's \-t
command line option and operation. The FROM: field is
"mysqlreport", SUBJECT: is "MySQL status report".
.TP
\fB\-\-flush\-status\fR
Execute a "FLUSH STATUS;" after generating the reports.
If you do not have permissions in MySQL to do this an
error from DBD::mysql::st will be printed after the
reports.
.SH "AUTHORS"
.LP
Daniel Nichter
If mysqlreport breaks, send me a message from
http://hackmysql.com/feedback
with the error.
.SH "SEE ALSO"
.LP
mytop(1)
.LP
The comprehensive Guide To Understanding mysqlreport at
http://hackmysql.com/mysqlreportguide.
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqltest \- Regressiontest program for MySQL.
.SH SYNOPSIS
mysqltest [options]
.SH DESCRIPTION
Runs a test against the mysql server and compares output with a results file.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisampack \- Compresses MySQL database files.
.SH SYNOPSIS
myisampack [options]
.SH DESCRIPTION
Pack a ISAM-table to take much smaller space
Keys are not updated, so you must run isamchk -rq on any table
that has keys after you have compressed it
You should give the .ISM file as the filename argument
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
resolve_stack_dump \- MySQL helper program for reporting bugs.
.SH SYNOPSIS
resolve_stack_dump [options]
.SH DESCRIPTION
Resolve numeric stack strace dump into symbols.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
resolveip \- MySQL helper program to retrive IP addresses.
.SH SYNOPSIS
resolveip [options]
.SH DESCRIPTION
Get hostname based on IP-address or IP-address based on hostname.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
This source diff could not be displayed because it is too large. You can view the blob instead.
Source: mysql-dfsg-5.1
Section: misc
Priority: optional
Maintainer: MySQL Development Team <mysql-dev@percona.com>
Uploaders: Aleksandr Kuzminsky <aleksandr.kuzminsky@percona.com>
Build-Depends: libtool (>= 1.4.2-7), procps | hurd, debhelper (>= 4.1.16), file (>= 3.28-1), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), libreadline5-dev | libreadline-dev, psmisc, po-debconf, chrpath, automake1.9, doxygen, gs, dpatch, gawk, bison, lsb-release, fakeroot
Standards-Version: 3.8.0
Homepage: http://www.percona.com/
Vcs-Browser: http://bazaar.launchpad.net/~percona-dev/percona-xtradb/release-1.0/files
Vcs-Bzr: bzr+ssh://bazaar.launchpad.net/~percona-dev/percona-xtradb/release-1.0/
Package: libmysqlclient16
Section: libs
Architecture: any
Depends: mysql-common (>= ${source:Version}), ${shlibs:Depends}
Description: MySQL database client library
MySQL is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MySQL are speed, robustness and
ease of use.
.
This package includes the client library.
Package: libmysqlclient15-dev
Architecture: all
Section: libdevel
Depends: libmysqlclient-dev (>= ${source:Version})
Description: MySQL database development files - empty transitional package
This is an empty package that depends on libmysqlclient-dev to ease the
transition for packages with versioned build-deps on libmysqlclient15-dev.
Package: libmysqlclient-dev
Architecture: any
Section: libdevel
Depends: libmysqlclient16 (>= ${source:Version}), zlib1g-dev, , ${shlibs:Depends}
Conflicts: libmysqlclient14-dev, libmysqlclient12-dev, libmysqlclient10-dev
Description: MySQL database development files
MySQL is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MySQL are speed, robustness and
ease of use.
.
This package includes development libraries and header files.
Package: mysql-common
Section: database
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}
Conflicts: mysql-common-4.1
Provides: mysql-common-4.1
Replaces: mysql-common-4.1
Description: MySQL database common files (e.g. /etc/mysql/my.cnf)
MySQL is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MySQL are speed, robustness and
ease of use.
.
This package includes files needed by all versions of the client library
(e.g. /etc/mysql/my.cnf).
Package: mysql-client-5.1
Architecture: any
Depends: debianutils (>=1.6), libdbi-perl, libdbd-mysql-perl (>= 1.2202), mysql-common (>= ${source:Version}), libmysqlclient16 (>= ${source:Version}), ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends}
Provides: virtual-mysql-client, mysql-client, mysql-client-4.1
Conflicts: mysql-client (<< ${source:Version}), mysql-client-5.0
Replaces: mysql-client (<< ${source:Version}), mysql-client-5.0
Description: MySQL database client binaries
MySQL is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MySQL are speed, robustness and
ease of use.
.
This package includes the client binaries and the additional tools
innotop and mysqlreport.
Package: mysql-server-5.1
Architecture: any
Suggests: tinyca
Recommends: mailx, libhtml-template-perl
Pre-Depends: mysql-common (>= ${source:Version}), adduser (>= 3.40), debconf
Depends: mysql-client-5.1 (>= ${source:Version}), libdbi-perl, perl (>= 5.6), ${shlibs:Depends}, ${misc:Depends}, psmisc, passwd, lsb-base (>= 3.0-10)
Conflicts: mysql-server (<< ${source:Version}), mysql-server-4.1
Provides: mysql-server, virtual-mysql-server, mysql-server-5.0
Replaces: mysql-server (<< ${source:Version}), mysql-server-5.0
Description: MySQL database server binaries
MySQL is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MySQL are speed, robustness and
ease of use.
.
This package includes the server binaries.
Package: mysql-server
Section: database
Architecture: all
Depends: mysql-server-5.1
Description: MySQL database server (metapackage depending on the latest version)
This is an empty package that depends on the current "best" version of
mysql-server (currently mysql-server-5.1), as determined by the MySQL
maintainers. Install this package if in doubt about which MySQL
version you need. That will install the version recommended by the
package maintainers.
.
MySQL is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MySQL are speed, robustness and
ease of use.
Package: mysql-client
Section: database
Architecture: all
Depends: mysql-client-5.1
Description: MySQL database client (metapackage depending on the latest version)
This is an empty package that depends on the current "best" version of
mysql-client (currently mysql-client-5.1), as determined by the MySQL
maintainers. Install this package if in doubt about which MySQL version
you want, as this is the one we consider to be in the best shape.
== MySQL ==
The Debian package of MySQL was first debianzed on 1997-04-12 by Christian
Schwarz <schwarz@debian.org> and ist maintained since 1999-04-20 by
Christian Hammers <ch@debian.org>.
It can be downloaded from http://www.mysql.com/
Copyright:
According to the file "COPYING" all parts of this package are licenced
under the terms of the GNU GPL Version 2 of which a copy is available
in /usr/share/common-licenses.
To allow free software with other licences than the GPL to link against the
shared library, special terms for "derived works" are defined in the file
"EXCEPTIONS-CLIENT" which is quoted below.
More information can be found on http://www.mysql.com/company/legal/licensing/
The manual had to be removed as it is not free in the sense of the
Debian Free Software Guidelines (DFSG).
> Appendix I MySQL FLOSS License Exception
> ****************************************
>
> Version 0.3, 10 February 2005
>
> The MySQL AB Exception for Free/Libre and Open Source Software-only
> Applications Using MySQL Client Libraries (the "FLOSS Exception").
>
> Exception Intent
> ================
>
> We want specified Free/Libre and Open Source Software ("FLOSS")
> applications to be able to use specified GPL-licensed MySQL client
> libraries (the "Program") despite the fact that not all FLOSS licenses
> are compatible with version 2 of the GNU General Public License (the
> "GPL").
>
> Legal Terms and Conditions
> ==========================
>
> As a special exception to the terms and conditions of version 2.0 of the
> GPL:
>
> 1. You are free to distribute a Derivative Work that is formed
> entirely from the Program and one or more works (each, a "FLOSS
> Work") licensed under one or more of the licenses listed below in
> section 1, as long as:
>
> a. You obey the GPL in all respects for the Program and the
> Derivative Work, except for identifiable sections of the
> Derivative Work which are not derived from the Program, and
> which can reasonably be considered independent and separate
> works in themselves,
>
> b. all identifiable sections of the Derivative Work which are not
> derived from the Program, and which can reasonably be
> considered independent and separate works in themselves,
>
> i
> are distributed subject to one of the FLOSS licenses
> listed below, and
>
> ii
> the object code or executable form of those sections are
> accompanied by the complete corresponding
> machine-readable source code for those sections on the
> same medium and under the same FLOSS license as the
> corresponding object code or executable forms of those
> sections, and
>
> c. any works which are aggregated with the Program or with a
> Derivative Work on a volume of a storage or distribution
> medium in accordance with the GPL, can reasonably be
> considered independent and separate works in themselves which
> are not derivatives of either the Program, a Derivative Work
> or a FLOSS Work.
>
> If the above conditions are not met, then the Program may only be
> copied, modified, distributed or used under the terms and
> conditions of the GPL or another valid licensing option from MySQL
> AB.
>
> 2. FLOSS License List
>
> *License name* *Version(s)/Copyright Date*
> Academic Free License 2.0
> Apache Software License 1.0/1.1/2.0
> Apple Public Source License 2.0
> Artistic license From Perl 5.8.0
> BSD license "July 22 1999"
> Common Public License 1.0
> GNU Library or "Lesser" General Public 2.0/2.1
> License (LGPL)
> Jabber Open Source License 1.0
> MIT license -
> Mozilla Public License (MPL) 1.0/1.1
> Open Software License 2.0
> OpenSSL license (with original SSLeay "2003" ("1998")
> license)
> PHP License 3.0
> Python license (CNRI Python License) -
> Python Software Foundation License 2.1.1
> Sleepycat License "1999"
> W3C License "2001"
> X11 License "2001"
> Zlib/libpng License -
> Zope Public License 2.0
>
> Due to the many variants of some of the above licenses, we require
> that any version follow the 2003 version of the Free Software
> Foundation's Free Software Definition
> (`http://www.gnu.org/philosophy/free-sw.html') or version 1.9 of
> the Open Source Definition by the Open Source Initiative
> (`http://www.opensource.org/docs/definition.php').
>
> 3. Definitions
>
> a. Terms used, but not defined, herein shall have the meaning
> provided in the GPL.
>
> b. Derivative Work means a derivative work under copyright law.
>
> 4. Applicability This FLOSS Exception applies to all Programs that
> contain a notice placed by MySQL AB saying that the Program may be
> distributed under the terms of this FLOSS Exception. If you
> create or distribute a work which is a Derivative Work of both the
> Program and any other work licensed under the GPL, then this FLOSS
> Exception is not available for that work; thus, you must remove
> the FLOSS Exception notice from that work and comply with the GPL
> in all respects, including by retaining all GPL notices. You may
> choose to redistribute a copy of the Program exclusively under the
> terms of the GPL by removing the FLOSS Exception notice from that
> copy of the Program, provided that the copy has never been
> modified by you or any third party.
== innotop ==
Author: Baron Schwartz <baron@xaprb.com>
URL: http://innotop.sourceforge.net
License:
> This software is dual licensed, either GPL version 2 or Artistic License.
>
> This package is free software; you can redistribute it and/or modify
> it under the terms of the GNU General Public License as published by
> the Free Software Foundation; either version 2 of the License, or
> (at your option) any later version.
>
> This package is distributed in the hope that it will be useful,
> but WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> GNU General Public License for more details.
>
> You should have received a copy of the GNU General Public License
> along with this package; if not, write to the Free Software
> Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GNU General Public License and the
Artistic License can be found in `/usr/share/common-licenses/'.
The upstream author explained here: http://bugs.gentoo.org/show_bug.cgi?id=14760
that these licenses also apply to the following files:
- innotop.html
- InnoDBParser.pm
The examples directory includes files that might be needed by some
developers:
- header files not installed by default
- the example file udf_example.c
usr/bin/mysql_config
usr/include/mysql/*.h
usr/lib/libmysqlclient.a
usr/lib/libmysqlclient.la
usr/lib/mysql/*.a
usr/lib/mysql/*.la
usr/share/man/man1/mysql_config.1
usr/lib/libmysqlclient.so.16 usr/lib/libmysqlclient.so
usr/lib/libmysqlclient_r.so.16 usr/lib/libmysqlclient_r.so
usr/lib/libmysqlclient*.so.*
#!/bin/bash -e
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
# vim: ts=4
FAQ:
Q: My <tab> completition is gone, why?
A: You have "no-auto-rehash" in the "[mysql]" section of /etc/mysql/my.cnf!
usr/bin/
usr/share/man/man1/
usr/share/perl5/
debian/additions/innotop/changelog.innotop
EXCEPTIONS-CLIENT
README
usr/bin/innotop
usr/bin/myisam_ftdump
usr/bin/mysql
usr/bin/mysqlaccess
usr/bin/mysqladmin
usr/bin/mysqlbug
usr/bin/mysqlcheck
usr/bin/mysql_client_test
usr/bin/mysqldump
usr/bin/mysqldumpslow
usr/bin/mysql_find_rows
usr/bin/mysql_fix_extensions
usr/bin/mysqlimport
usr/bin/mysqlreport
usr/bin/mysqlshow
usr/bin/mysql_waitpid
usr/sbin/mysqlmanager
usr/share/lintian/overrides/mysql-client-5.1
usr/share/man/man1/innotop.1
usr/share/man/man1/myisam_ftdump.1
usr/share/man/man1/mysql.1
usr/share/man/man1/mysqlaccess.1
usr/share/man/man1/mysqladmin.1
usr/share/man/man1/mysqlbug.1
usr/share/man/man1/mysqlcheck.1
usr/share/man/man1/mysqldump.1
usr/share/man/man1/mysqldumpslow.1
usr/share/man/man1/mysql_find_rows.1
usr/share/man/man1/mysql_fix_extensions.1
usr/share/man/man1/mysqlimport.1
usr/share/man/man1/mysqlmanager.1
usr/share/man/man1/mysqlmanagerc.1
usr/share/man/man1/mysqlmanager-pwgen.1
usr/share/man/man1/mysqlreport.1
usr/share/man/man1/mysqlshow.1
usr/share/man/man1/mysql_tableinfo.1
usr/share/man/man1/mysql_waitpid.1
usr/share/man/man1/mysql_client_test.1
usr/share/perl5/InnoDBParser.pm
usr/bin/mysqlcheck usr/bin/mysqlrepair
usr/bin/mysqlcheck usr/bin/mysqlanalyze
usr/bin/mysqlcheck usr/bin/mysqloptimize
mysql-client-5.1: package-has-a-duplicate-relation
mysql-client-5.1: wrong-name-for-upstream-changelog usr/share/doc/mysql-client-5.1/changelog.innotop.gz
mysql-client-5.1: pkg-not-in-package-test innotop
# According to /usr/share/menu/ policy 1.4, not /usr/share/doc/debian-policy/
?package(innotop):needs="text" section="Applications/Data Management"\
title="innotop" command="/usr/bin/innotop"
etc/mysql/my.cnf
usr/share/mysql-common/internal-use-only
script-not-executable ./usr/share/mysql-common/internal-use-only/_etc_init.d_mysql
script-not-executable ./usr/share/mysql-common/internal-use-only/_etc_mysql_debian-start
#!/bin/bash
if [ "$1" = "purge" ]; then
rmdir /etc/mysql 2>/dev/null || true
fi
#DEBHELPER#
mysql-dfsg-5.1 (5.1.38-1) unstable; urgency=low
* Please read http://dev.mysql.com/doc/refman/5.1/en/upgrading-from-5-0.html
* Make sure to do a REPAIR TABLE on all tables that use UTF-8 and have a
FULLTEXT index.
-- Christian Hammers <ch@debian.org> Sat, 4 Jul 2009 02:31:21 +0200
mysql-dfsg-5.0 (5.1.14beta-2) unstable; urgency=low
* The BerkeleyDB Storage Engine is no longer supported. If the options
have-bdb or skip-bdb are found, MySQL will not start. If you have BDB
tables, you should change them to use another storage engine before
upgrading to 5.1.
-- Monty Taylor <mordred@inaugust.com> Thu, 18 Jan 2007 12:28:21 -0800
mysql-dfsg-5.0 (5.0.45-2) unstable; urgency=low
* Binary logging is now disabled by default. If you really need it (e.g. on
a replication master), remove the comment from the log_bin line in my.cnf.
-- Norbert Tretkowski <nobse@debian.org> Sat, 10 Nov 2007 16:26:35 +0100
mysql-dfsg-5.0 (5.0.18-9) unstable; urgency=low
* Rotation of the binary logs is now configured in /etc/mysql/my.cnf with
"expire-logs-days" which defaults to 20 days. The old file
/etc/mysql/debian-log-rotate.conf should be removed together with
/etc/cron.daily/mysql-server after this value has been adjusted. Note that
the old variable defined the number of files whereas the new one defines
a time span in days.
-- Christian Hammers <ch@debian.org> Tue, 24 Jan 2006 22:18:21 +0100
* MYSQL WON'T START OR STOP?:
=============================
You may never ever delete the special mysql user "debian-sys-maint". This
user together with the credentials in /etc/mysql/debian.cnf are used by the
init scripts to stop the server as they would require knowledge of the mysql
root users password else.
So in most of the times you can fix the situation by making sure that the
debian.cnf file contains the right password, e.g. by setting a new one
(remember to do a "flush privileges" then).
* WHAT TO DO AFTER UPGRADES:
============================
The privilege tables are automatically updated so all there is left is read
the changelogs on dev.mysql.com to see if any changes affect custom apps.
* WHAT TO DO AFTER INSTALLATION:
================================
The MySQL manual describes certain steps to do at this stage in a separate
chapter. They are not necessary as the Debian packages does them
automatically.
The only thing that is left over for the admin is
- setting the passwords
- creating new users and databases
- read the rest of this text
* DOWNGRADING TO 4.0 or 4.1:
============================
Unsupported. Period.
But if you do and get problems or make interesting experiences, mail me, it
might help others.
Ok, if you really want, I would recommend to "mysqldump --opt" all tables,
then purge 4.1, delete /var/lib/mysql, install 4.0 and insert the dumps. Be
carefully, though, with the "mysql" table, you might not simply overwrite that
one as the password for the mysql "debian-sys-maint" user is stored in
/etc/mysql/debian.cnf and needed by /etc/init.d/ to start mysql and check if
it's alive.
* SOME APPLICATION CAN NO LONGER CONNECT:
=========================================
This application is probably linked against libmysqlclient12 or below and
somebody has created a mysql user with new-style passwords.
The old_passwords=1 option in /etc/mysql/my.cnf might help. If not the
application that inserted the user has to be changed or the application that
tries to connect updated to libmysqlclient14 or -15.
* NETWORKING:
=============
For security reasons, the Debian package has enabled networking only on the
loop-back device using "bind-address" in /etc/mysql/my.cnf. Check with
"netstat -tlnp" where it is listening. If your connection is aborted
immediately see if "mysqld: all" or similar is in /etc/hosts.allow and read
hosts_access(5).
* WHERE IS THE DOCUMENTATION?:
==============================
Unfortunately due to licensing restrictions, debian currently not able
to provide the mysql-doc package in any format. For the most up to date
documentation, please go to http://dev.mysql.com/doc.
* PASSWORDS:
============
It is strongly recommended to set a password for the mysql root user (which
/usr/bin/mysql -u root -D mysql -e "update user set password=password('new-password') where user='root'"
/usr/bin/mysql -u root -e "flush privileges"
If you already had a password set add "-p" before "-u" to the lines above.
If you are tired to type the password in every time or want to automate your
scripts you can store it in the file $HOME/.my.cnf. It should be chmod 0600
(-rw------- username username .my.cnf) to ensure that nobody else can read
it. Every other configuration parameter can be stored there, too. You will
find an example below and more information in the MySQL manual in
/usr/share/doc/mysql-doc or www.mysql.com.
ATTENTION: It is necessary, that a .my.cnf from root always contains a "user"
line wherever there is a "password" line, else, the Debian maintenance
scripts, that use /etc/mysql/debian.cnf, will use the username
"debian-sys-maint" but the password that is in root's .my.cnf. Also note,
that every change you make in the /root/.my.cnf will affect the mysql cron
script, too.
# an example of $HOME/.my.cnf
[client]
user = your-mysql-username
password = enter-your-good-new-password-here
* BIG_ROWS FOR EVEN MORE ROWS IN A TABLE:
=========================================
If you ever run out of rows in a table there is the possibility of building
the package with "-DBIG_ROWS" which, according to a MySQL employee on
packagers@lists.mysql.com should lead to a 64bit row index (I guess > 2^32
rows) but also to an approx. 5% performance loss.
* BerkeleyDB Storage Engine
===========================
Support for BerkeleyDB has been removed in 5.1, and consequently both the
have-bdb and skip-bdb configuration options will cause the server to fail.
Removing the options from /etc/mysql/my.cnf will fix this problem.
* FURTHER NOTES ON REPLICATION
===============================
If the MySQL server is acting as a replication slave, you should not
set --tmpdir to point to a directory on a memory-based filesystem or to
a directory that is cleared when the server host restarts. A replication
slave needs some of its temporary files to survive a machine restart so
that it can replicate temporary tables or LOAD DATA INFILE operations. If
files in the temporary file directory are lost when the server restarts,
replication fails.
#!/bin/bash -e
. /usr/share/debconf/confmodule
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
CNF=/etc/mysql/my.cnf
# Beware that there are two ypwhich one of them needs the 2>/dev/null!
if test -n "`which ypwhich 2>/dev/null`" && ypwhich >/dev/null 2>&1; then
db_input high mysql-server-5.1/nis_warning || true
db_go
fi
# only ask this question on fresh installs, during "reconfiguration" and when
# not upgrading from an existing 5.0 installation.
# there is also an additional check for empty root passwords in the
# postinst script when the tools are available for us to use.
if [ "$1" = "configure" ] && ([ -z "$2" ] && [ ! -e "/var/lib/mysql/debian-5.0.flag" ] ) || [ "$1" = "reconfigure" ]; then
while :; do
RET=""
db_input high mysql-server/root_password || true
db_go
db_get mysql-server/root_password
# if password isn't empty we ask for password verification
if [ -z "$RET" ]; then
db_fset mysql-server/root_password seen false
db_fset mysql-server/root_password_again seen false
break
fi
ROOT_PW="$RET"
db_input high mysql-server/root_password_again || true
db_go
db_get mysql-server/root_password_again
if [ "$RET" == "$ROOT_PW" ]; then
ROOT_PW=''
break
fi
db_fset mysql-server/password_mismatch seen false
db_input critical mysql-server/password_mismatch
db_set mysql-server/root_password ""
db_set mysql-server/root_password_again ""
db_go
done
fi
etc/init.d
etc/logrotate.d
etc/mysql/conf.d
usr/bin
usr/sbin
usr/share/man/man8
usr/share/mysql
var/run/mysqld
var/lib/mysql-upgrade
usr/lib/mysql/*so*
etc/mysql/debian-start
etc/mysql/conf.d/mysqld_safe_syslog.cnf
usr/bin/msql2mysql
usr/bin/my_print_defaults
usr/bin/myisamchk
usr/bin/myisamlog
usr/bin/myisampack
usr/bin/mysql_convert_table_format
usr/bin/mysql_fix_privilege_tables
usr/bin/mysql_install_db
usr/bin/mysql_secure_installation
usr/bin/mysql_setpermission
usr/bin/mysql_tzinfo_to_sql
usr/bin/mysql_upgrade
usr/bin/mysql_zap
usr/bin/mysqlbinlog
usr/bin/mysqld_multi
usr/bin/mysqld_safe
usr/bin/mysqlhotcopy
usr/bin/mysqltest
usr/bin/perror
usr/bin/replace
usr/bin/resolve_stack_dump
usr/bin/resolveip
usr/sbin/mysqld
usr/share/doc/mysql-server-5.1/
usr/share/lintian/overrides/mysql-server-5.1
usr/share/man/man1/msql2mysql.1
usr/share/man/man1/myisamchk.1
usr/share/man/man1/myisamlog.1
usr/share/man/man1/myisampack.1
usr/share/man/man1/my_print_defaults.1
usr/share/man/man1/mysqlbinlog.1
usr/share/man/man1/mysql_convert_table_format.1
usr/share/man/man1/mysqld_multi.1
usr/share/man/man1/mysqld_safe.1
usr/share/man/man1/mysql_fix_privilege_tables.1
usr/share/man/man1/mysqlhotcopy.1
usr/share/man/man1/mysql_install_db.1
usr/share/man/man1/mysql_secure_installation.1
usr/share/man/man1/mysql_setpermission.1
usr/share/man/man1/mysql_upgrade.1
usr/share/man/man1/mysqltest.1
usr/share/man/man1/mysql_zap.1
usr/share/man/man1/perror.1
usr/share/man/man1/replace.1
usr/share/man/man1/resolveip.1
usr/share/man/man1/resolve_stack_dump.1
usr/share/man/man1/innochecksum.1
usr/share/man/man1/mysql_tzinfo_to_sql.1
usr/share/man/man8/mysqld.8
usr/share/mysql/
usr/share/mysql/mysql-test/mysql-test-run.pl usr/share/mysql/mysql-test/mysql-test-run
usr/share/mysql/mysql-test/mysql-test-run.pl usr/share/mysql/mysql-test/mtr
mysql-server-5.1: possible-bashism-in-maintainer-script postinst:81 'p{("a".."z","A".."Z",0..9)[int(rand(62))]}'
mysql-server-5.1: possible-bashism-in-maintainer-script preinst:33 '${cmd/ */}'
mysql-server-5.1: statically-linked-binary ./usr/bin/mysql_tzinfo_to_sql
mysql-server-5.1: statically-linked-binary ./usr/sbin/mysqld
/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$
/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$
mysqld\[[0-9]+\]: $
mysqld\[[0-9]+\]: Version: .* socket: '/var/run/mysqld/mysqld.sock' port: 3306$
mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
mysqld_safe\[[0-9]+\]: started$
usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
/etc/init.d/mysql\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$
/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$
mysqld\[[0-9]+\]: ?$
mysqld\[[0-9]+\]: .*InnoDB: Shutdown completed
mysqld\[[0-9]+\]: .*InnoDB: Started;
mysqld\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Normal shutdown$
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: ready for connections\.$
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Shutdown complete$
mysqld\[[0-9]+\]: /usr/sbin/mysqld: ready for connections\.$
mysqld\[[0-9]+\]: .*/usr/sbin/mysqld: Shutdown Complete$
mysqld\[[0-9]+\]: Version: .* socket
mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
mysqld_safe\[[0-9]+\]: ?$
mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$
mysqld_safe\[[0-9]+\]: ended$
mysqld_safe\[[0-9]+\]: http://www.mysql.com$
mysqld_safe\[[0-9]+\]: NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run$
mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$
mysqld_safe\[[0-9]+\]: Please report any problems with the /usr/bin/mysqlbug script!$
mysqld_safe\[[0-9]+\]: See the manual for more instructions.$
mysqld_safe\[[0-9]+\]: started$
mysqld_safe\[[0-9]+\]: Support MySQL by buying support/licenses at https://order.mysql.com$
mysqld_safe\[[0-9]+\]: The latest information about MySQL is available on the web at$
mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$
mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$
mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root -h app109 password 'new-password'$
mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$
usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
/etc/init.d/mysql\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$
/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$
mysqld\[[0-9]+\]: ?$
mysqld\[[0-9]+\]: .*InnoDB: Shutdown completed
mysqld\[[0-9]+\]: .*InnoDB: Started;
mysqld\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Normal shutdown$
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: ready for connections\.$
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Shutdown complete$
mysqld\[[0-9]+\]: /usr/sbin/mysqld: ready for connections\.$
mysqld\[[0-9]+\]: .*/usr/sbin/mysqld: Shutdown Complete$
mysqld\[[0-9]+\]: Version: .* socket
mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
mysqld_safe\[[0-9]+\]: ?$
mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$
mysqld_safe\[[0-9]+\]: ended$
mysqld_safe\[[0-9]+\]: http://www.mysql.com$
mysqld_safe\[[0-9]+\]: NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run$
mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$
mysqld_safe\[[0-9]+\]: Please report any problems with the /usr/bin/mysqlbug script!$
mysqld_safe\[[0-9]+\]: See the manual for more instructions.$
mysqld_safe\[[0-9]+\]: started$
mysqld_safe\[[0-9]+\]: Support MySQL by buying support/licenses at https://order.mysql.com$
mysqld_safe\[[0-9]+\]: The latest information about MySQL is available on the web at$
mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$
mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$
mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root -h app109 password 'new-password'$
mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$
usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
# - I put everything in one block and added sharedscripts, so that mysql gets
# flush-logs'd only once.
# Else the binary logs would automatically increase by n times every day.
# - The error log is obsolete, messages go to syslog now.
/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log {
daily
rotate 7
missingok
create 640 mysql adm
compress
sharedscripts
postrotate
test -x /usr/bin/mysqladmin || exit 0
# If this fails, check debian.conf!
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
# Really no mysqld or rather a missing debian-sys-maint user?
# If this occurs and is not a error please report a bug.
if ps cax | grep -q mysqld; then
exit 1
fi
else
$MYADMIN flush-logs
fi
endscript
}
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $network $named $time
# Should-Stop: $network $named $time
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and stop the mysql database server daemon
# Description: Controls the main MySQL database server daemon "mysqld"
# and its wrapper script "mysqld_safe".
### END INIT INFO
#
set -e
set -u
${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
test -x /usr/sbin/mysqld || exit 0
. /lib/lsb/init-functions
SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
CONF=/etc/mysql/my.cnf
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
# priority can be overriden and "-s" adds output to stderr
ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i"
# Safeguard (relative paths, core dumps..)
cd /
umask 077
# mysqladmin likes to read /root/.my.cnf. This is usually not what I want
# as many admins e.g. only store a password without a username there and
# so break my scripts.
export HOME=/etc/mysql/
## Fetch a particular option from mysql's invocation.
#
# Usage: void mysqld_get_param option
mysqld_get_param() {
/usr/sbin/mysqld --print-defaults \
| tr " " "\n" \
| grep -- "--$1" \
| tail -n 1 \
| cut -d= -f2
}
## Do some sanity checks before even trying to start mysqld.
sanity_checks() {
# check for config file
if [ ! -r /etc/mysql/my.cnf ]; then
log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
echo "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
fi
# check for diskspace shortage
datadir=`mysqld_get_param datadir`
if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then
log_failure_msg "$0: ERROR: The partition with $datadir is too full!"
echo "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER
exit 1
fi
}
## Checks if there is a server running and if so if it is accessible.
#
# check_alive insists on a pingable server
# check_dead also fails if there is a lost mysqld in the process list
#
# Usage: boolean mysqld_status [check_alive|check_dead] [warn|nowarn]
mysqld_status () {
ping_output=`$MYADMIN ping 2>&1`; ping_alive=$(( ! $? ))
ps_alive=0
pidfile=`mysqld_get_param pid-file`
if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
if [ "$1" = "check_alive" -a $ping_alive = 1 ] ||
[ "$1" = "check_dead" -a $ping_alive = 0 -a $ps_alive = 0 ]; then
return 0 # EXIT_SUCCESS
else
if [ "$2" = "warn" ]; then
echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug
fi
return 1 # EXIT_FAILURE
fi
}
#
# main()
#
case "${1:-''}" in
'start')
sanity_checks;
# Start daemon
log_daemon_msg "Starting MySQL database server" "mysqld"
if mysqld_status check_alive nowarn; then
log_progress_msg "already running"
log_end_msg 0
else
/usr/bin/mysqld_safe > /dev/null 2>&1 &
# 6s was reported in #352070 to be too few when using ndbcluster
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do
sleep 1
if mysqld_status check_alive nowarn ; then break; fi
log_progress_msg "."
done
if mysqld_status check_alive warn; then
log_end_msg 0
# Now start mysqlcheck or whatever the admin wants.
output=$(/etc/mysql/debian-start)
[ -n "$output" ] && log_action_msg "$output"
else
log_end_msg 1
log_failure_msg "Please take a look at the syslog"
fi
fi
;;
'stop')
# * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible
# at least for cron, we can rely on it here, too. (although we have
# to specify it explicit as e.g. sudo environments points to the normal
# users home and not /root)
log_daemon_msg "Stopping MySQL database server" "mysqld"
if ! mysqld_status check_dead nowarn; then
set +e
shutdown_out=`$MYADMIN shutdown 2>&1`; r=$?
set -e
if [ "$r" -ne 0 ]; then
log_end_msg 1
[ "$VERBOSE" != "no" ] && log_failure_msg "Error: $shutdown_out"
log_daemon_msg "Killing MySQL database server by signal" "mysqld"
killall -15 mysqld
server_down=
for i in 1 2 3 4 5 6 7 8 9 10; do
sleep 1
if mysqld_status check_dead nowarn; then server_down=1; break; fi
done
if test -z "$server_down"; then killall -9 mysqld; fi
fi
fi
if ! mysqld_status check_dead warn; then
log_end_msg 1
log_failure_msg "Please stop MySQL manually and read /usr/share/doc/mysql-server-5.1/README.Debian.gz!"
exit -1
else
log_end_msg 0
fi
;;
'restart')
set +e; $SELF stop; set -e
$SELF start
;;
'reload'|'force-reload')
log_daemon_msg "Reloading MySQL database server" "mysqld"
$MYADMIN reload
log_end_msg 0
;;
'status')
if mysqld_status check_alive nowarn; then
log_action_msg "$($MYADMIN version)"
else
log_action_msg "MySQL is stopped."
exit 3
fi
;;
*)
echo "Usage: $SELF start|stop|restart|reload|force-reload|status"
exit 1
;;
esac
#!/bin/bash -e
. /usr/share/debconf/confmodule
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
# This command can be used as pipe to syslog. With "-s" it also logs to stderr.
ERR_LOGGER="logger -p daemon.err -t mysqld_safe -i"
invoke() {
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d mysql $1
else
/etc/init.d/mysql $1
fi
}
MYSQL_BOOTSTRAP="/usr/sbin/mysqld --bootstrap --user=mysql --skip-grant-tables"
test_mysql_access() {
mysql --no-defaults -u root -h localhost </dev/null >/dev/null 2>&1
}
# call with $1 = "online" to connect to the server, otherwise it bootstraps
set_mysql_rootpw() {
# forget we ever saw the password. don't use reset to keep the seen status
db_set mysql-server/root_password ""
tfile=`mktemp`
if [ ! -f "$tfile" ]; then
return 1
fi
# this avoids us having to call "test" or "[" on $rootpw
cat << EOF > $tfile
USE mysql;
UPDATE user SET password=PASSWORD("$rootpw") WHERE user='root';
FLUSH PRIVILEGES;
EOF
if grep -q 'PASSWORD("")' $tfile; then
retval=0
elif [ "$1" = "online" ]; then
mysql --no-defaults -u root -h localhost <$tfile >/dev/null
retval=$?
else
$MYSQL_BOOTSTRAP <$tfile
retval=$?
fi
rm -f $tfile
return $retval
}
# This is necessary because mysql_install_db removes the pid file in /var/run
# and because changed configuration options should take effect immediately.
# In case the server wasn't running at all it should be ok if the stop
# script fails. I can't tell at this point because of the cleaned /var/run.
set +e; invoke stop; set -e
case "$1" in
configure)
mysql_datadir=/usr/share/mysql
mysql_statedir=/var/lib/mysql
mysql_rundir=/var/run/mysqld
mysql_logdir=/var/log
mysql_cfgdir=/etc/mysql
mysql_newlogdir=/var/log/mysql
mysql_upgradedir=/var/lib/mysql-upgrade
# first things first, if the following symlink exists, it is a preserved
# copy the old data dir from a mysql upgrade that would have otherwise
# been replaced by an empty mysql dir. this should restore it.
for dir in DATADIR LOGDIR; do
if [ "$dir" = "DATADIR" ]; then targetdir=$mysql_statedir; else targetdir=$mysql_newlogdir; fi
savelink="$mysql_upgradedir/$dir.link"
if [ -L "$savelink" ]; then
# If the targetdir was a symlink before we upgraded it is supposed
# to be either still be present or not existing anymore now.
if [ -L "$targetdir" ]; then
rm "$savelink"
elif [ ! -d "$targetdir" ]; then
mv "$savelink" "$targetdir"
else
# this should never even happen, but just in case...
mysql_tmp=`mktemp -d -t mysql-symlink-restore-XXXXXX`
echo "this is very strange! see $mysql_tmp/README..." >&2
mv "$targetdir" "$mysql_tmp"
cat << EOF > "$mysql_tmp/README"
if you're reading this, it's most likely because you had replaced /var/lib/mysql
with a symlink, then upgraded to a new version of mysql, and then dpkg
removed your symlink (see #182747 and others). the mysql packages noticed
that this happened, and as a workaround have restored it. however, because
/var/lib/mysql seems to have been re-created in the meantime, and because
we don't want to rm -rf something we don't know as much about, we're going
to leave this unexpected directory here. if your database looks normal,
and this is not a symlink to your database, you should be able to blow
this all away.
EOF
fi
fi
rmdir $mysql_upgradedir 2>/dev/null || true
done
# Ensure the existence and right permissions for the database and
# log files.
if [ ! -d "$mysql_statedir" -a ! -L "$mysql_statedir" ]; then mkdir "$mysql_statedir"; fi
if [ ! -d "$mysql_statedir/mysql" -a ! -L "$mysql_statedir/mysql" ]; then mkdir "$mysql_statedir/mysql"; fi
if [ ! -d "$mysql_newlogdir" -a ! -L "$mysql_newlogdir" ]; then mkdir "$mysql_newlogdir"; fi
# When creating an ext3 jounal on an already mounted filesystem like e.g.
# /var/lib/mysql, you get a .journal file that is not modifyable by chown.
# The mysql_datadir must not be writable by the mysql user under any
# circumstances as it contains scripts that are executed by root.
set +e
chown -R 0:0 $mysql_datadir
chown -R mysql $mysql_statedir
chown -R mysql $mysql_rundir
chown -R mysql:adm $mysql_newlogdir; chmod 2750 $mysql_newlogdir;
for i in log err; do
touch $mysql_logdir/mysql.$i
chown mysql:adm $mysql_logdir/mysql.$i
chmod 0640 $mysql_logdir/mysql.$i
done
set -e
# This is important to avoid dataloss when there is a removed
# mysql-server version from Woody lying around which used the same
# data directory and then somewhen gets purged by the admin.
db_set mysql-server/postrm_remove_database false || true
# To avoid downgrades.
touch $mysql_statedir/debian-5.1.flag
# initiate databases. Output is not allowed by debconf :-(
# Debian: beware of the bashisms...
# Debian: can safely run on upgrades with existing databases
set +e
/bin/bash /usr/bin/mysql_install_db --rpm 2>&1 | $ERR_LOGGER
if [ "$?" != "0" ]; then
echo "ATTENTION: An error has occured. More info is in the syslog!"
fi
set -e
## On every reconfiguration the maintenance user is recreated.
#
# - It is easier to regenerate the password every time but as people
# use fancy rsync scripts and file alteration monitors, the existing
# password is used and existing files not touched.
# - The mysqld statement is like that in mysql_install_db because the
# server is not already running. This has some implications:
# - The amount of newlines and semicolons in the query is important!
# - GRANT is not possible with --skip-grant-tables and "INSERT
# (user,host..) VALUES" is not --ansi compliant
# - The echo is just for readability. ash's buildin has no "-e" so use /bin/echo.
# - The Super_priv, Show_db_priv, Create_tmp_table_priv and Lock_tables_priv
# may not be present as old Woody 3.23 databases did not have it and the
# admin might not already have run mysql_upgrade which adds them.
# As the binlog cron scripts to need at least the Super_priv, I do first
# the old query which always succeeds and then the new which may or may not.
# recreate the credentials file if not present or without mysql_upgrade stanza
dc=$mysql_cfgdir/debian.cnf;
if [ -e "$dc" -a -n "`fgrep mysql_upgrade $dc 2>/dev/null`" ]; then
pass="`sed -n 's/^[ ]*password *= *// p' $dc | head -n 1`"
else
pass=`perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..16)'`;
if [ ! -d "$mysql_cfgdir" ]; then install -o 0 -g 0 -m 0755 -d $mysql_cfgdir; fi
cat /dev/null > $dc
echo "# Automatically generated for Debian scripts. DO NOT TOUCH!" >>$dc
echo "[client]" >>$dc
echo "host = localhost" >>$dc
echo "user = debian-sys-maint" >>$dc
echo "password = $pass" >>$dc
echo "socket = $mysql_rundir/mysqld.sock" >>$dc
echo "[mysql_upgrade]" >>$dc
echo "host = localhost" >>$dc
echo "user = debian-sys-maint" >>$dc
echo "password = $pass" >>$dc
echo "socket = $mysql_rundir/mysqld.sock" >>$dc
echo "basedir = /usr" >>$dc
fi
# If this dir chmod go+w then the admin did it. But this file should not.
chown 0:0 $dc
chmod 0600 $dc
# update privilege tables
password_column_fix_query=`/bin/echo -e \
"USE mysql\n" \
"ALTER TABLE user CHANGE Password Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL"`;
replace_query=`/bin/echo -e \
"USE mysql\n" \
"REPLACE INTO user SET " \
" host='localhost', user='debian-sys-maint', password=password('$pass'), " \
" Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y', " \
" Create_priv='Y', Drop_priv='Y', Reload_priv='Y', Shutdown_priv='Y', " \
" Process_priv='Y', File_priv='Y', Grant_priv='Y', References_priv='Y', " \
" Index_priv='Y', Alter_priv='Y', Super_priv='Y', Show_db_priv='Y', "\
" Create_tmp_table_priv='Y', Lock_tables_priv='Y', Execute_priv='Y', "\
" Repl_slave_priv='Y', Repl_client_priv='Y', Create_view_priv='Y', "\
" Show_view_priv='Y', Create_routine_priv='Y', Alter_routine_priv='Y', "\
" Create_user_priv='Y', Event_priv='Y', Trigger_priv='Y' "`;
fix_privs=`/bin/echo -e \
"USE mysql;\n" \
"ALTER TABLE user ADD column Create_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N'; " \
"ALTER TABLE user ADD column Show_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N'; " \
"ALTER TABLE user ADD column Create_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N'; " \
"ALTER TABLE user ADD column Alter_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N'; " \
"ALTER TABLE user ADD column Create_user_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N'; " \
"ALTER TABLE user ADD column Event_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N'; " \
"ALTER TABLE user ADD column Trigger_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N'; " `
# Engines supported by etch should be installed per default. The query sequence is supposed
# to be aborted if the CREATE TABLE fails due to an already existent table in which case the
# admin might already have chosen to remove one or more plugins. Newlines are necessary.
install_plugins=`/bin/echo -e \
"USE mysql;\n" \
"CREATE TABLE plugin (name char(64) COLLATE utf8_bin NOT NULL DEFAULT '', " \
" dl char(128) COLLATE utf8_bin NOT NULL DEFAULT '', " \
" PRIMARY KEY (name)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='MySQL plugins';\n" \
"INSERT INTO plugin VALUES ('innodb', 'ha_innodb.so');\n" \
"INSERT INTO plugin VALUES ('federated', 'ha_federated.so');\n" \
"INSERT INTO plugin VALUES ('blackhole', 'ha_blackhole.so');\n" \
"INSERT INTO plugin VALUES ('archive', 'ha_archive.so');" `
# Upgrade password column format before the root password gets set.
echo "$password_column_fix_query" | $MYSQL_BOOTSTRAP 2>&1 | $ERR_LOGGER
db_get mysql-server/root_password && rootpw="$RET"
if ! set_mysql_rootpw; then
password_error="yes"
fi
echo "$fix_privs" | $MYSQL_BOOTSTRAP 2>&1 | $ERR_LOGGER
echo "$replace_query" | $MYSQL_BOOTSTRAP 2>&1 | $ERR_LOGGER
set +e
echo "$install_plugins" | $MYSQL_BOOTSTRAP 2>&1 | $ERR_LOGGER
set -e
;;
abort-upgrade|abort-remove|abort-configure)
;;
*)
echo "postinst called with unknown argument '$1'" 1>&2
exit 1
;;
esac
# here we check to see if we can connect as root without a password
# this should catch upgrades from previous versions where the root
# password wasn't set. if there is a password, or if the connection
# fails for any other reason, nothing happens.
if [ "$1" = "configure" ]; then
if test_mysql_access; then
db_input medium mysql-server/root_password || true
db_go
db_get mysql-server/root_password && rootpw="$RET"
if ! set_mysql_rootpw "online"; then
password_error="yes"
fi
fi
if [ "$password_error" = "yes" ]; then
db_input high mysql-server/error_setting_password || true
db_go
fi
fi
db_stop # in case invoke failes
#DEBHELPER#
exit 0
#!/bin/bash -e
# It is possible that Debconf has already been removed, too.
if [ -f /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
fi
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
# Try to stop the server in a sane way. If it does not success let the admin
# do it himself. No database directories should be removed while the server
# is running!
stop_server() {
set +e
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d mysql stop
else
/etc/init.d/mysql stop
fi
errno=$?
set -e
if [ "$?" != 0 ]; then
echo "Trying to stop the MySQL server resulted in exitcode $?." 1>&2
echo "Stop it yourself and try again!" 1>&2
exit 1
fi
}
case "$1" in
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
if [ -n "`$MYADMIN ping 2>/dev/null`" ]; then
stop_server
sleep 2
fi
;;
*)
echo "postrm called with unknown argument '$1'" 1>&2
exit 1
;;
esac
#
# - Do NOT purge logs or data if another mysql-sever* package is installed (#307473)
# - Remove the mysql user only after all his owned files are purged.
#
if [ "$1" = "purge" -a ! \( -x /usr/sbin/mysqld -o -L /usr/sbin/mysqld \) ]; then
# we remove the mysql user only after all his owned files are purged
rm -f /var/log/mysql.{log,err}{,.0,.[1234567].gz}
rm -rf /var/log/mysql
db_input high mysql-server-5.1/postrm_remove_databases || true
db_go || true
db_get mysql-server-5.1/postrm_remove_databases || true
if [ "$RET" = "true" ]; then
# never remove the debian.cnf when the databases are still existing
# else we ran into big trouble on the next install!
rm -f /etc/mysql/debian.cnf
rm -rf /var/lib/mysql
rm -rf /var/run/mysqld
userdel mysql || true
fi
# (normally) Automatically added by dh_installinit
if [ "$1" = "purge" ] ; then
update-rc.d mysql remove >/dev/null || exit 0
fi
# (normally) End automatically added section
fi
# (normally) Automatically added by dh_installdebconf
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
db_purge
fi
# (normally) End automatically added section
# no DEBHELPER here, "update-rc.d remove" fails if mysql-server-5.1 is installed
exit 0
#!/bin/bash -e
#
# summary of how this script can be called:
# * <new-preinst> install
# * <new-preinst> install <old-version>
# * <new-preinst> upgrade <old-version>
# * <old-preinst> abort-upgrade <new-version>
#
. /usr/share/debconf/confmodule
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
DATADIR=/var/lib/mysql
LOGDIR=/var/log/mysql
UPGRADEDIR=/var/lib/mysql-upgrade
# Try to stop the server in a sane way. If it does not success let the admin
# do it himself. No database directories should be removed while the server
# is running! Another mysqld in e.g. a different chroot is fine for us.
stop_server() {
if [ ! -x /etc/init.d/mysql ]; then return; fi
set +e
if [ -x /usr/sbin/invoke-rc.d ]; then
cmd="invoke-rc.d mysql stop"
else
cmd="/etc/init.d/mysql stop"
fi
$cmd
errno=$?
set -e
# 0=ok, 100=no init script (fresh install)
if [ "$errno" != 0 -a "$errno" != 100 ]; then
echo "${cmd/ */} returned $errno" 1>&2
echo "There is a MySQL server running, but we failed in our attempts to stop it." 1>&2
echo "Stop it yourself and try again!" 1>&2
db_stop
exit 1
fi
}
################################ main() ##########################
this_version=5.1
# Check kernel version
if dpkg --compare-versions `uname -r` lt 2.6; then
/bin/echo -e "\nPROBLEM: MySQL-5.x is currently incompatible with kernel 2.4. Aborting.";
/bin/echo -e "See http://bugs.debian.org/416841 for more information.\n"
exit 1
fi
# Abort if an NDB cluster is in use.
if egrep -q -r '^[^#]*ndb.connectstring' /etc/mysql/; then
db_fset mysql-server/no_upgrade_when_using_ndb seen false || true
db_input high mysql-server/no_upgrade_when_using_ndb || true
db_go
db_stop
exit 1
fi
# Safe the user from stupidities.
show_downgrade_warning=0
for i in `ls $DATADIR/debian-*.flag 2>/dev/null`; do
found_version=`echo $i | sed 's/.*debian-\([0-9\.]\+\).flag/\1/'`
if dpkg --compare-versions "$this_version" '<<' "$found_version"; then
show_downgrade_warning=1
break;
fi
done
if [ "$show_downgrade_warning" = 1 ]; then
db_fset mysql-server-$this_version/really_downgrade seen false || true
db_input medium mysql-server-$this_version/really_downgrade || true
db_go
db_get mysql-server-$this_version/really_downgrade || true
if [ "$RET" = "true" ]; then
rm -f $DATADIR/debian-*.flag
touch $DATADIR/debian-$this_version.flag
else
echo "Aborting downgrade from (at least) $found_version to $this_version." 1>&2
echo "If are sure you want to downgrade to $this_version, remove the file" 1>&2
echo "$DATADIR/debian-*.flag and try installing again." 1>&2
db_stop
exit 1
fi
fi
# to be sure
stop_server
# If we use NIS then errors should be tolerated. It's up to the
# user to ensure that the mysql user is correctly setup.
# Beware that there are two ypwhich one of them needs the 2>/dev/null!
if test -n "`which ypwhich 2>/dev/null`" && ypwhich >/dev/null 2>&1; then
set +e
fi
#
# Now we have to ensure the following state:
# /etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false
# /etc/group: mysql:x:101:
#
# Sadly there could any state be present on the system so we have to
# modify everything carefully i.e. not doing a chown before creating
# the user etc...
#
# creating mysql group if he isn't already there
if ! getent group mysql >/dev/null; then
# Adding system group: mysql.
addgroup --system mysql >/dev/null
fi
# creating mysql user if he isn't already there
if ! getent passwd mysql >/dev/null; then
# Adding system user: mysql.
adduser \
--system \
--disabled-login \
--ingroup mysql \
--home $DATADIR \
--gecos "MySQL Server" \
--shell /bin/false \
mysql >/dev/null
fi
# end of NIS tolerance zone
set -e
# if there's a symlink, let's store where it's pointing, because otherwise
# it's going to be lost in some situations
for dir in DATADIR LOGDIR; do
checkdir=`eval echo "$"$dir`
if [ -L "$checkdir" ]; then
mkdir -p "$UPGRADEDIR"
cp -d "$checkdir" "$UPGRADEDIR/$dir.link"
fi
done
# creating mysql home directory
if [ ! -d $DATADIR -a ! -L $DATADIR ]; then
mkdir $DATADIR
fi
# checking disc space
if LC_ALL=C BLOCKSIZE= df --portability $DATADIR/. | tail -n 1 | awk '{ exit ($4>1000) }'; then
echo "ERROR: There's not enough space in $DATADIR/" 1>&2
db_stop
exit 1
fi
# Since the home directory was created before putting the user into
# the mysql group and moreover we cannot guarantee that the
# permissions were correctly *before* calling this script, we fix them now.
# In case we use NIS and no mysql user is present then this script should
# better fail now than later..
# The "set +e" is necessary as e.g. a ".journal" of a ext3 partition is
# not chgrp'able (#318435).
set +e
chown mysql:mysql $DATADIR
find $DATADIR -follow -not -group mysql -print0 2>/dev/null \
| xargs -0 --no-run-if-empty chgrp mysql
set -e
# Some files below /etc/ were possibly in the mysql-server-5.0/etch package
# before. They get overwritten by current ones to avoid unnecessary dpkg questions.
while read md5 file; do
if [ "`md5sum $file 2>/dev/null`" = "$md5 $file" ]; then
cp /usr/share/mysql-common/internal-use-only/`echo $file | sed 's/_g'` $file
fi
done <<EOT
6691f2fdc5c6d27ff0260eb79813e1bc /etc/init.d/mysql
b53b9552d44661361d39157c3c7c51d3 /etc/logrotate.d/mysql-server
57f3e58f72582ca55100dc1ba0f1a8ae /etc/mysql/debian-start
EOT
db_stop
#DEBHELPER#
exit 0
#!/bin/bash -e
. /usr/share/debconf/confmodule
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
#DEBHELPER#
# These templates have been reviewed by the debian-l10n-english
# team
#
# If modifications/additions/rewording are needed, please ask
# for an advice to debian-l10n-english@lists.debian.org
#
# Even minor modifications require translation updates and such
# changes should be coordinated with translators and reviewers.
Template: mysql-server-5.1/really_downgrade
Type: boolean
Default: false
_Description: Really proceed with downgrade?
A file named /var/lib/mysql/debian-*.flag exists on this system.
.
Such file is an indication that a mysql-server package with a higher
version has been installed earlier.
.
There is no guarantee that the version you're currently installing
will be able to use the current databases.
Template: mysql-server-5.1/nis_warning
Type: note
#flag:translate!:3,5
_Description: Important note for NIS/YP users
To use MySQL, the following entries for users and groups should be added
to the system:
.
/etc/passwd : mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false
/etc/group : mysql:x:101:
.
You should also check the permissions and the owner of the
/var/lib/mysql directory:
.
/var/lib/mysql: drwxr-xr-x mysql mysql
Template: mysql-server-5.1/postrm_remove_databases
Type: boolean
Default: false
_Description: Remove all MySQL databases?
The /var/lib/mysql directory which contains the MySQL databases is about
to be removed.
.
If you're removing the MySQL package in order to later install a more
recent version or if a different mysql-server package is already
using it, the data should be kept.
Template: mysql-server-5.1/start_on_boot
Type: boolean
Default: true
_Description: Start the MySQL server on boot?
The MySQL server can be launched automatically at boot time or manually
with the '/etc/init.d/mysql start' command.
Template: mysql-server/root_password
Type: password
_Description: New password for the MySQL "root" user:
While not mandatory, it is highly recommended that you set a password
for the MySQL administrative "root" user.
.
If that field is left blank, the password will not be changed.
Template: mysql-server/root_password_again
Type: password
_Description: Repeat password for the MySQL "root" user:
Template: mysql-server/error_setting_password
Type: error
_Description: Unable to set password for the MySQL "root" user
An error occurred while setting the password for the MySQL
administrative user. This may have happened because the account
already has a password, or because of a communication problem with
the MySQL server.
.
You should check the account's password after the package installation.
.
Please read the /usr/share/doc/mysql-server-5.1/README.Debian file
for more information.
Template: mysql-server/password_mismatch
Type: error
_Description: Password input error
The two passwords you entered were not the same. Please try again.
Template: mysql-server/no_upgrade_when_using_ndb
Type: error
_Description: NDB Cluster seems to be in use
MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new
mysql-cluster package and remove all lines starting with "ndb" from
all config files below /etc/mysql/.
33_scripts__mysql_create_system_tables__no_test.dpatch
38_scripts__mysqld_safe.sh__signals.dpatch
41_scripts__mysql_install_db.sh__no_test.dpatch
44_scripts__mysql_config__libs.dpatch
50_mysql-test__db_test.dpatch
60_percona_support.dpatch
#! /bin/sh /usr/share/dpatch/dpatch-run
## 01_MAKEFILES__Docs_Makefile.in.dpatch by <ch@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Creates Docs/Makefile.in
@DPATCH@
--- old/Docs/Images/Makefile.in 2005-03-01 02:08:01.877429040 +0100
+++ new/Docs/Images/Makefile.in 2005-02-28 21:21:24.000000000 +0100
@@ -0,0 +1,765 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+# Process this file with automake to create Makefile.in
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+ASSEMBLER_FALSE = @ASSEMBLER_FALSE@
+ASSEMBLER_TRUE = @ASSEMBLER_TRUE@
+ASSEMBLER_sparc32_FALSE = @ASSEMBLER_sparc32_FALSE@
+ASSEMBLER_sparc32_TRUE = @ASSEMBLER_sparc32_TRUE@
+ASSEMBLER_sparc64_FALSE = @ASSEMBLER_sparc64_FALSE@
+ASSEMBLER_sparc64_TRUE = @ASSEMBLER_sparc64_TRUE@
+ASSEMBLER_x86_FALSE = @ASSEMBLER_x86_FALSE@
+ASSEMBLER_x86_TRUE = @ASSEMBLER_x86_TRUE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AVAILABLE_LANGUAGES = @AVAILABLE_LANGUAGES@
+AVAILABLE_LANGUAGES_ERRORS = @AVAILABLE_LANGUAGES_ERRORS@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CC_VERSION = @CC_VERSION@
+CFLAGS = @CFLAGS@
+CHARSETS_NEED_SOURCE = @CHARSETS_NEED_SOURCE@
+CHARSET_OBJS = @CHARSET_OBJS@
+CHARSET_SRCS = @CHARSET_SRCS@
+CHECK_PID = @CHECK_PID@
+CHMOD = @CHMOD@
+CLIENT_EXTRA_LDFLAGS = @CLIENT_EXTRA_LDFLAGS@
+CLIENT_LIBS = @CLIENT_LIBS@
+CMP = @CMP@
+COMPILATION_COMMENT = @COMPILATION_COMMENT@
+COMPILE_PSTACK_FALSE = @COMPILE_PSTACK_FALSE@
+COMPILE_PSTACK_TRUE = @COMPILE_PSTACK_TRUE@
+CONF_COMMAND = @CONF_COMMAND@
+CP = @CP@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXLDFLAGS = @CXXLDFLAGS@
+CXX_VERSION = @CXX_VERSION@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOT_FRM_VERSION = @DOT_FRM_VERSION@
+DVIS = @DVIS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FIND_PROC = @FIND_PROC@
+GETCONF = @GETCONF@
+GXX = @GXX@
+HAVE_NETWARE_FALSE = @HAVE_NETWARE_FALSE@
+HAVE_NETWARE_TRUE = @HAVE_NETWARE_TRUE@
+HOSTNAME = @HOSTNAME@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IS_LINUX = @IS_LINUX@
+KILL = @KILL@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
+LM_CFLAGS = @LM_CFLAGS@
+LN = @LN@
+LN_CP_F = @LN_CP_F@
+LN_S = @LN_S@
+LOCAL_FALSE = @LOCAL_FALSE@
+LOCAL_TRUE = @LOCAL_TRUE@
+LTLIBOBJS = @LTLIBOBJS@
+MACHINE_TYPE = @MACHINE_TYPE@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MAKE_BINARY_DISTRIBUTION_OPTIONS = @MAKE_BINARY_DISTRIBUTION_OPTIONS@
+MAKE_SHELL = @MAKE_SHELL@
+MT_INCLUDES = @MT_INCLUDES@
+MT_LD_ADD = @MT_LD_ADD@
+MV = @MV@
+MYSQLD_DEFAULT_SWITCHES = @MYSQLD_DEFAULT_SWITCHES@
+MYSQLD_EXTRA_LDFLAGS = @MYSQLD_EXTRA_LDFLAGS@
+MYSQLD_USER = @MYSQLD_USER@
+MYSQL_BASE_VERSION = @MYSQL_BASE_VERSION@
+MYSQL_NO_DASH_VERSION = @MYSQL_NO_DASH_VERSION@
+MYSQL_SERVER_SUFFIX = @MYSQL_SERVER_SUFFIX@
+MYSQL_TCP_PORT = @MYSQL_TCP_PORT@
+MYSQL_TCP_PORT_DEFAULT = @MYSQL_TCP_PORT_DEFAULT@
+MYSQL_UNIX_ADDR = @MYSQL_UNIX_ADDR@
+MYSQL_VERSION_ID = @MYSQL_VERSION_ID@
+NOINST_LDFLAGS = @NOINST_LDFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PDFMANUAL = @PDFMANUAL@
+PERL = @PERL@
+PERL5 = @PERL5@
+PROTOCOL_VERSION = @PROTOCOL_VERSION@
+PS = @PS@
+RANLIB = @RANLIB@
+RM = @RM@
+SAVE_ASFLAGS = @SAVE_ASFLAGS@
+SAVE_CFLAGS = @SAVE_CFLAGS@
+SAVE_CXXFLAGS = @SAVE_CXXFLAGS@
+SAVE_CXXLDFLAGS = @SAVE_CXXLDFLAGS@
+SAVE_LDFLAGS = @SAVE_LDFLAGS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHARED_LIB_VERSION = @SHARED_LIB_VERSION@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEM_TYPE = @SYSTEM_TYPE@
+TAR = @TAR@
+TERMCAP_LIB = @TERMCAP_LIB@
+THREAD_LOBJECTS = @THREAD_LOBJECTS@
+THREAD_LPROGRAMS = @THREAD_LPROGRAMS@
+VERSION = @VERSION@
+WRAPLIBS = @WRAPLIBS@
+YACC = @YACC@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_GETCONF = @ac_ct_GETCONF@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bdb_includes = @bdb_includes@
+bdb_libs = @bdb_libs@
+bdb_libs_with_path = @bdb_libs_with_path@
+bench_dirs = @bench_dirs@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+default_charset = @default_charset@
+docs_dirs = @docs_dirs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+innodb_includes = @innodb_includes@
+innodb_libs = @innodb_libs@
+innodb_system_libs = @innodb_system_libs@
+install_sh = @install_sh@
+isam_libs = @isam_libs@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libmysqld_dirs = @libmysqld_dirs@
+linked_client_targets = @linked_client_targets@
+linked_netware_sources = @linked_netware_sources@
+localstatedir = @localstatedir@
+man_dirs = @man_dirs@
+mandir = @mandir@
+netware_dir = @netware_dir@
+oldincludedir = @oldincludedir@
+openssl_includes = @openssl_includes@
+openssl_libs = @openssl_libs@
+orbit_idl = @orbit_idl@
+orbit_includes = @orbit_includes@
+orbit_libs = @orbit_libs@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pstack_dirs = @pstack_dirs@
+pstack_libs = @pstack_libs@
+readline_dir = @readline_dir@
+readline_link = @readline_link@
+sbindir = @sbindir@
+server_scripts = @server_scripts@
+sharedstatedir = @sharedstatedir@
+sql_client_dirs = @sql_client_dirs@
+sql_server_dirs = @sql_server_dirs@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+thread_dirs = @thread_dirs@
+tools_dirs = @tools_dirs@
+uname_prog = @uname_prog@
+vio_dir = @vio_dir@
+vio_libs = @vio_libs@
+
+AUTOMAKE_OPTIONS = foreign
+
+# These are built from source in the Docs directory
+EXTRA_DIST = INSTALL-SOURCE README COPYING EXCEPTIONS-CLIENT
+SUBDIRS = . include @docs_dirs@ @readline_dir@ \
+ @thread_dirs@ pstack @sql_client_dirs@ \
+ @sql_server_dirs@ scripts @man_dirs@ tests \
+ BUILD netware os2 @libmysqld_dirs@ \
+ @bench_dirs@ support-files @tools_dirs@
+
+
+# Relink after clean
+linked_sources = linked_client_sources linked_server_sources \
+ linked_libmysql_sources linked_libmysql_r_sources \
+ linked_libmysqld_sources linked_libmysqldex_sources \
+ linked_include_sources @linked_netware_sources@
+
+
+CLEANFILES = $(linked_sources)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = bdb/Makefile
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+ ps-recursive install-info-recursive uninstall-info-recursive \
+ all-recursive install-data-recursive install-exec-recursive \
+ installdirs-recursive install-recursive uninstall-recursive \
+ check-recursive installcheck-recursive
+DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure COPYING \
+ ChangeLog Makefile.am acconfig.h acinclude.m4 aclocal.m4 \
+ config.guess config.h.in config.sub configure configure.in \
+ depcomp install-sh ltconfig ltmain.sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
+ cd $(top_srcdir) && $(AUTOHEADER)
+ touch $(srcdir)/config.h.in
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+bdb/Makefile: $(top_builddir)/config.status $(top_srcdir)/bdb/Makefile.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @set fnord $$MAKEFLAGS; amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $$MAKEFLAGS; amf=$$2; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if (etags --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ else \
+ include_option=--include; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = .
+distdir = $(PACKAGE)-$(VERSION)
+
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ mkdir $(distdir)
+ $(mkinstalldirs) $(distdir)/bdb $(distdir)/include
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" \
+ distdir=../$(distdir)/$$subdir \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r $(distdir)
+dist-gzip: distdir
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ $(am__remove_distdir)
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
+ chmod a-w $(distdir)
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && cd $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
+ && rm -f $(distdir).tar.gz \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+ $(am__remove_distdir)
+ @echo "$(distdir).tar.gz is ready for distribution" | \
+ sed 'h;s/./=/g;p;x;p;x'
+distuninstallcheck:
+ @cd $(distuninstallcheck_dir) \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+ clean-generic clean-libtool clean-recursive ctags \
+ ctags-recursive dist dist-all dist-gzip distcheck distclean \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-recursive distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am dvi-recursive info info-am \
+ info-recursive install install-am install-data install-data-am \
+ install-data-recursive install-exec install-exec-am \
+ install-exec-recursive install-info install-info-am \
+ install-info-recursive install-man install-recursive \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am installdirs-recursive maintainer-clean \
+ maintainer-clean-generic maintainer-clean-recursive mostlyclean \
+ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
+ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \
+ tags-recursive uninstall uninstall-am uninstall-info-am \
+ uninstall-info-recursive uninstall-recursive
+
+
+# This is just so that the linking is done early.
+config.h: $(linked_sources)
+
+linked_include_sources:
+ cd include; $(MAKE) link_sources
+ echo timestamp > linked_include_sources
+
+linked_client_sources: @linked_client_targets@
+ cd client; $(MAKE) link_sources
+ echo timestamp > linked_client_sources
+
+linked_libmysql_sources:
+ cd libmysql; $(MAKE) link_sources
+ echo timestamp > linked_libmysql_sources
+
+linked_libmysql_r_sources: linked_libmysql_sources
+ cd libmysql_r; $(MAKE) link_sources
+ echo timestamp > linked_libmysql_r_sources
+
+linked_libmysqld_sources:
+ cd libmysqld; $(MAKE) link_sources
+ echo timestamp > linked_libmysqld_sources
+
+linked_libmysqldex_sources:
+ cd libmysqld/examples; $(MAKE) link_sources
+ echo timestamp > linked_libmysqldex_sources
+
+linked_netware_sources:
+ cd @netware_dir@; $(MAKE) link_sources
+ echo timestamp > linked_netware_sources
+
+#avoid recursive make calls in sql directory
+linked_server_sources:
+ cd sql; rm -f mini_client_errors.c;@LN_CP_F@ ../libmysql/errmsg.c mini_client_errors.c
+ echo timestamp > linked_server_sources
+
+# Create permission databases
+init-db: all
+ $(top_builddir)/scripts/mysql_install_db
+
+bin-dist: all
+ $(top_builddir)/scripts/make_binary_distribution @MAKE_BINARY_DISTRIBUTION_OPTIONS@
+
+# Remove BK's "SCCS" subdirectories from source distribution
+dist-hook:
+ rm -rf `find $(distdir) -type d -name SCCS`
+
+tags:
+ support-files/build-tags
+.PHONY: init-db bin-dist
+
+# Test installation
+
+test:
+ cd mysql-test ; ./mysql-test-run
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
#! /bin/sh /usr/share/dpatch/dpatch-run
## 01_MAKEFILES__Docs_Makefile.in.dpatch by <ch@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Creates Docs/Makefile.in
@DPATCH@
--- old/Docs/Makefile.in 2005-03-01 02:08:01.877429040 +0100
+++ new/Docs/Makefile.in 2005-02-28 21:21:24.000000000 +0100
@@ -0,0 +1,765 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+# Process this file with automake to create Makefile.in
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+ASSEMBLER_FALSE = @ASSEMBLER_FALSE@
+ASSEMBLER_TRUE = @ASSEMBLER_TRUE@
+ASSEMBLER_sparc32_FALSE = @ASSEMBLER_sparc32_FALSE@
+ASSEMBLER_sparc32_TRUE = @ASSEMBLER_sparc32_TRUE@
+ASSEMBLER_sparc64_FALSE = @ASSEMBLER_sparc64_FALSE@
+ASSEMBLER_sparc64_TRUE = @ASSEMBLER_sparc64_TRUE@
+ASSEMBLER_x86_FALSE = @ASSEMBLER_x86_FALSE@
+ASSEMBLER_x86_TRUE = @ASSEMBLER_x86_TRUE@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AVAILABLE_LANGUAGES = @AVAILABLE_LANGUAGES@
+AVAILABLE_LANGUAGES_ERRORS = @AVAILABLE_LANGUAGES_ERRORS@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CC_VERSION = @CC_VERSION@
+CFLAGS = @CFLAGS@
+CHARSETS_NEED_SOURCE = @CHARSETS_NEED_SOURCE@
+CHARSET_OBJS = @CHARSET_OBJS@
+CHARSET_SRCS = @CHARSET_SRCS@
+CHECK_PID = @CHECK_PID@
+CHMOD = @CHMOD@
+CLIENT_EXTRA_LDFLAGS = @CLIENT_EXTRA_LDFLAGS@
+CLIENT_LIBS = @CLIENT_LIBS@
+CMP = @CMP@
+COMPILATION_COMMENT = @COMPILATION_COMMENT@
+COMPILE_PSTACK_FALSE = @COMPILE_PSTACK_FALSE@
+COMPILE_PSTACK_TRUE = @COMPILE_PSTACK_TRUE@
+CONF_COMMAND = @CONF_COMMAND@
+CP = @CP@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CXXLDFLAGS = @CXXLDFLAGS@
+CXX_VERSION = @CXX_VERSION@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOT_FRM_VERSION = @DOT_FRM_VERSION@
+DVIS = @DVIS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FIND_PROC = @FIND_PROC@
+GETCONF = @GETCONF@
+GXX = @GXX@
+HAVE_NETWARE_FALSE = @HAVE_NETWARE_FALSE@
+HAVE_NETWARE_TRUE = @HAVE_NETWARE_TRUE@
+HOSTNAME = @HOSTNAME@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IS_LINUX = @IS_LINUX@
+KILL = @KILL@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
+LM_CFLAGS = @LM_CFLAGS@
+LN = @LN@
+LN_CP_F = @LN_CP_F@
+LN_S = @LN_S@
+LOCAL_FALSE = @LOCAL_FALSE@
+LOCAL_TRUE = @LOCAL_TRUE@
+LTLIBOBJS = @LTLIBOBJS@
+MACHINE_TYPE = @MACHINE_TYPE@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MAKE_BINARY_DISTRIBUTION_OPTIONS = @MAKE_BINARY_DISTRIBUTION_OPTIONS@
+MAKE_SHELL = @MAKE_SHELL@
+MT_INCLUDES = @MT_INCLUDES@
+MT_LD_ADD = @MT_LD_ADD@
+MV = @MV@
+MYSQLD_DEFAULT_SWITCHES = @MYSQLD_DEFAULT_SWITCHES@
+MYSQLD_EXTRA_LDFLAGS = @MYSQLD_EXTRA_LDFLAGS@
+MYSQLD_USER = @MYSQLD_USER@
+MYSQL_BASE_VERSION = @MYSQL_BASE_VERSION@
+MYSQL_NO_DASH_VERSION = @MYSQL_NO_DASH_VERSION@
+MYSQL_SERVER_SUFFIX = @MYSQL_SERVER_SUFFIX@
+MYSQL_TCP_PORT = @MYSQL_TCP_PORT@
+MYSQL_TCP_PORT_DEFAULT = @MYSQL_TCP_PORT_DEFAULT@
+MYSQL_UNIX_ADDR = @MYSQL_UNIX_ADDR@
+MYSQL_VERSION_ID = @MYSQL_VERSION_ID@
+NOINST_LDFLAGS = @NOINST_LDFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PDFMANUAL = @PDFMANUAL@
+PERL = @PERL@
+PERL5 = @PERL5@
+PROTOCOL_VERSION = @PROTOCOL_VERSION@
+PS = @PS@
+RANLIB = @RANLIB@
+RM = @RM@
+SAVE_ASFLAGS = @SAVE_ASFLAGS@
+SAVE_CFLAGS = @SAVE_CFLAGS@
+SAVE_CXXFLAGS = @SAVE_CXXFLAGS@
+SAVE_CXXLDFLAGS = @SAVE_CXXLDFLAGS@
+SAVE_LDFLAGS = @SAVE_LDFLAGS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHARED_LIB_VERSION = @SHARED_LIB_VERSION@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEM_TYPE = @SYSTEM_TYPE@
+TAR = @TAR@
+TERMCAP_LIB = @TERMCAP_LIB@
+THREAD_LOBJECTS = @THREAD_LOBJECTS@
+THREAD_LPROGRAMS = @THREAD_LPROGRAMS@
+VERSION = @VERSION@
+WRAPLIBS = @WRAPLIBS@
+YACC = @YACC@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_GETCONF = @ac_ct_GETCONF@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bdb_includes = @bdb_includes@
+bdb_libs = @bdb_libs@
+bdb_libs_with_path = @bdb_libs_with_path@
+bench_dirs = @bench_dirs@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+default_charset = @default_charset@
+docs_dirs = @docs_dirs@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+innodb_includes = @innodb_includes@
+innodb_libs = @innodb_libs@
+innodb_system_libs = @innodb_system_libs@
+install_sh = @install_sh@
+isam_libs = @isam_libs@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libmysqld_dirs = @libmysqld_dirs@
+linked_client_targets = @linked_client_targets@
+linked_netware_sources = @linked_netware_sources@
+localstatedir = @localstatedir@
+man_dirs = @man_dirs@
+mandir = @mandir@
+netware_dir = @netware_dir@
+oldincludedir = @oldincludedir@
+openssl_includes = @openssl_includes@
+openssl_libs = @openssl_libs@
+orbit_idl = @orbit_idl@
+orbit_includes = @orbit_includes@
+orbit_libs = @orbit_libs@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pstack_dirs = @pstack_dirs@
+pstack_libs = @pstack_libs@
+readline_dir = @readline_dir@
+readline_link = @readline_link@
+sbindir = @sbindir@
+server_scripts = @server_scripts@
+sharedstatedir = @sharedstatedir@
+sql_client_dirs = @sql_client_dirs@
+sql_server_dirs = @sql_server_dirs@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+thread_dirs = @thread_dirs@
+tools_dirs = @tools_dirs@
+uname_prog = @uname_prog@
+vio_dir = @vio_dir@
+vio_libs = @vio_libs@
+
+AUTOMAKE_OPTIONS = foreign
+
+# These are built from source in the Docs directory
+EXTRA_DIST = INSTALL-SOURCE README COPYING EXCEPTIONS-CLIENT
+SUBDIRS = . include @docs_dirs@ @readline_dir@ \
+ @thread_dirs@ pstack @sql_client_dirs@ \
+ @sql_server_dirs@ scripts @man_dirs@ tests \
+ BUILD netware os2 @libmysqld_dirs@ \
+ @bench_dirs@ support-files @tools_dirs@
+
+
+# Relink after clean
+linked_sources = linked_client_sources linked_server_sources \
+ linked_libmysql_sources linked_libmysql_r_sources \
+ linked_libmysqld_sources linked_libmysqldex_sources \
+ linked_include_sources @linked_netware_sources@
+
+
+CLEANFILES = $(linked_sources)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = bdb/Makefile
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+ ps-recursive install-info-recursive uninstall-info-recursive \
+ all-recursive install-data-recursive install-exec-recursive \
+ installdirs-recursive install-recursive uninstall-recursive \
+ check-recursive installcheck-recursive
+DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure COPYING \
+ ChangeLog Makefile.am acconfig.h acinclude.m4 aclocal.m4 \
+ config.guess config.h.in config.sub configure configure.in \
+ depcomp install-sh ltconfig ltmain.sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
+ cd $(top_srcdir) && $(AUTOHEADER)
+ touch $(srcdir)/config.h.in
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+bdb/Makefile: $(top_builddir)/config.status $(top_srcdir)/bdb/Makefile.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @set fnord $$MAKEFLAGS; amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $$MAKEFLAGS; amf=$$2; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if (etags --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ else \
+ include_option=--include; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = .
+distdir = $(PACKAGE)-$(VERSION)
+
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ mkdir $(distdir)
+ $(mkinstalldirs) $(distdir)/bdb $(distdir)/include
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" \
+ distdir=../$(distdir)/$$subdir \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r $(distdir)
+dist-gzip: distdir
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ $(am__remove_distdir)
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
+ chmod a-w $(distdir)
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && cd $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
+ && rm -f $(distdir).tar.gz \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+ $(am__remove_distdir)
+ @echo "$(distdir).tar.gz is ready for distribution" | \
+ sed 'h;s/./=/g;p;x;p;x'
+distuninstallcheck:
+ @cd $(distuninstallcheck_dir) \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+ clean-generic clean-libtool clean-recursive ctags \
+ ctags-recursive dist dist-all dist-gzip distcheck distclean \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-recursive distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am dvi-recursive info info-am \
+ info-recursive install install-am install-data install-data-am \
+ install-data-recursive install-exec install-exec-am \
+ install-exec-recursive install-info install-info-am \
+ install-info-recursive install-man install-recursive \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am installdirs-recursive maintainer-clean \
+ maintainer-clean-generic maintainer-clean-recursive mostlyclean \
+ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
+ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \
+ tags-recursive uninstall uninstall-am uninstall-info-am \
+ uninstall-info-recursive uninstall-recursive
+
+
+# This is just so that the linking is done early.
+config.h: $(linked_sources)
+
+linked_include_sources:
+ cd include; $(MAKE) link_sources
+ echo timestamp > linked_include_sources
+
+linked_client_sources: @linked_client_targets@
+ cd client; $(MAKE) link_sources
+ echo timestamp > linked_client_sources
+
+linked_libmysql_sources:
+ cd libmysql; $(MAKE) link_sources
+ echo timestamp > linked_libmysql_sources
+
+linked_libmysql_r_sources: linked_libmysql_sources
+ cd libmysql_r; $(MAKE) link_sources
+ echo timestamp > linked_libmysql_r_sources
+
+linked_libmysqld_sources:
+ cd libmysqld; $(MAKE) link_sources
+ echo timestamp > linked_libmysqld_sources
+
+linked_libmysqldex_sources:
+ cd libmysqld/examples; $(MAKE) link_sources
+ echo timestamp > linked_libmysqldex_sources
+
+linked_netware_sources:
+ cd @netware_dir@; $(MAKE) link_sources
+ echo timestamp > linked_netware_sources
+
+#avoid recursive make calls in sql directory
+linked_server_sources:
+ cd sql; rm -f mini_client_errors.c;@LN_CP_F@ ../libmysql/errmsg.c mini_client_errors.c
+ echo timestamp > linked_server_sources
+
+# Create permission databases
+init-db: all
+ $(top_builddir)/scripts/mysql_install_db
+
+bin-dist: all
+ $(top_builddir)/scripts/make_binary_distribution @MAKE_BINARY_DISTRIBUTION_OPTIONS@
+
+# Remove BK's "SCCS" subdirectories from source distribution
+dist-hook:
+ rm -rf `find $(distdir) -type d -name SCCS`
+
+tags:
+ support-files/build-tags
+.PHONY: init-db bin-dist
+
+# Test installation
+
+test:
+ cd mysql-test ; ./mysql-test-run
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
#! /bin/sh /usr/share/dpatch/dpatch-run
## 33_scripts__mysql_create_system_tables__no_test.dpatch by <ch@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: scripts__mysql_create_system_tables__no_test
## DP: A user with no password prevents a normal user from login under certain
## DP: circumstances as it is checked first. See #301741.
## DP: http://bugs.mysql.com/bug.php?id=6901
@DPATCH@
--- old/scripts/mysql_system_tables_data.sql 2008-12-04 22:59:44.000000000 +0100
+++ new/scripts/mysql_system_tables_data.sql 2008-12-04 23:00:07.000000000 +0100
@@ -11,8 +11,6 @@
-- Fill "db" table with default grants for anyone to
-- access database 'test' and 'test_%' if "db" table didn't exist
CREATE TEMPORARY TABLE tmp_db LIKE db;
-INSERT INTO tmp_db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
-INSERT INTO tmp_db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
INSERT INTO db SELECT * FROM tmp_db WHERE @had_db_table=0;
DROP TABLE tmp_db;
@@ -24,7 +22,5 @@
INSERT INTO tmp_user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0 FROM dual WHERE LOWER( @current_hostname) != 'localhost';
REPLACE INTO tmp_user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
-INSERT INTO tmp_user (host,user) VALUES ('localhost','');
-INSERT INTO tmp_user (host,user) SELECT @current_hostname,'' FROM dual WHERE LOWER(@current_hostname ) != 'localhost';
INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0;
DROP TABLE tmp_user;
#! /bin/sh /usr/share/dpatch/dpatch-run
## 38_scripts__mysqld_safe.sh__signals.dpatch by <ch@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Executes /etc/init.d/mysql on signals
## DP: Reported as http://bugs.mysql.com/bug.php?id=31361
@DPATCH@
--- old/scripts/mysqld_safe.sh 2006-07-29 13:12:34.000000000 +0200
+++ old/scripts/mysqld_safe.sh 2006-07-29 13:14:08.000000000 +0200
@@ -16,8 +16,6 @@
# This command can be used as pipe to syslog. With "-s" it also logs to stderr.
ERR_LOGGER="logger -p daemon.err -t mysqld_safe -i"
-trap '' 1 2 3 15 # we shouldn't let anyone kill us
-
umask 007
defaults=
@@ -122,7 +122,7 @@
# sed buffers output (only GNU sed supports a -u (unbuffered) option)
# which means that messages may not get sent to syslog until the
# mysqld process quits.
- cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error"
+ cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error & wait"
;;
*)
echo "Internal program error (non-fatal):" \
@@ -352,6 +350,13 @@
fi
#
+# From now on, we catch signals to do a proper shutdown of mysqld
+# when signalled to do so.
+#
+trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf refresh' 1 # HUP
+trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf shutdown' 2 3 15 # INT QUIT and TERM
+
+#
# Uncomment the following lines if you want all tables to be automatically
# checked and repaired during startup. You should add sensible key_buffer
# and sort_buffer values to my.cnf to improve check performance or require
#! /bin/sh /usr/share/dpatch/dpatch-run
## 41_scripts__mysql_install_db.sh__no_test.dpatch by <ch@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: scripts__mysql_install_db.sh__no_test
## DP: http://bugs.mysql.com/bug.php?id=6901
@DPATCH@
--- mysql-dfsg-5.1-5.1.23rc.orig/scripts/mysql_install_db.sh 2008-01-29 22:41:20.000000000 +0100
+++ mysql-dfsg-5.1-5.1.23rc/scripts/mysql_install_db.sh 2008-02-28 10:08:11.000000000 +0100
@@ -306,7 +306,7 @@
fi
# Create database directories
-for dir in $ldata $ldata/mysql $ldata/test
+for dir in $ldata $ldata/mysql
do
if test ! -d $dir
then
#! /bin/sh /usr/share/dpatch/dpatch-run
## 99-unnamed.dpatch by <ch@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Removes unnecessary library dependencies. See #390692
@DPATCH@
diff -Nur mysql-dfsg-5.1-5.1.31.orig/scripts/mysql_config.sh mysql-dfsg-5.1-5.1.31/scripts/mysql_config.sh
--- mysql-dfsg-5.1-5.1.31.orig/scripts/mysql_config.sh 2009-01-19 17:30:55.000000000 +0100
+++ mysql-dfsg-5.1-5.1.31/scripts/mysql_config.sh 2009-02-08 17:17:48.000000000 +0100
@@ -104,10 +104,10 @@
# Create options
# We intentionally add a space to the beginning and end of lib strings, simplifies replace later
-libs=" $ldflags -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
+libs=" $ldflags -L$pkglibdir -lmysqlclient"
libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ "
-libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ "
-embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
+libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @openssl_libs@ "
+embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBDL@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
if [ -r "$pkglibdir/libmygcc.a" ]; then
# When linking against the static library with a different version of GCC
#! /bin/sh /usr/share/dpatch/dpatch-run
## 50_mysql-test__db_test.dpatch by Christian Hammers <ch@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Patch 33_scripts__mysql_create_system_tables__no_test removes the
## DP: rights for anybody to connect to the test database but the test
## DP: suite depends on them.
@DPATCH@
--- old/mysql-test/mysql-test-run.pl 2009-06-16 14:24:09.000000000 +0200
+++ new/mysql-test/mysql-test-run.pl 2009-07-04 00:03:34.000000000 +0200
@@ -2717,6 +2717,10 @@
mtr_appendfile_to_file("$sql_dir/mysql_system_tables_data.sql",
$bootstrap_sql_file);
+ mtr_tofile($bootstrap_sql_file, "-- Debian removed the default privileges on the 'test' database\n");
+ mtr_tofile($bootstrap_sql_file, "INSERT INTO mysql.db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');\n");
+
+
# Add test data for timezone - this is just a subset, on a real
# system these tables will be populated either by mysql_tzinfo_to_sql
# or by downloading the timezone table package from our website
#! /bin/sh /usr/share/dpatch/dpatch-run
@DPATCH@
--- a/scripts/mysql_install_db.sh 2009-08-08 09:20:07.000000000 +0000
+++ b/scripts/mysql_install_db.sh 2009-08-08 09:29:23.000000000 +0000
@@ -471,7 +471,7 @@
echo "Please report any problems with the $scriptdir/mysqlbug script!"
echo
echo "The latest information about MySQL is available at http://www.mysql.com/"
- echo "Support MySQL by buying support/licenses from http://shop.mysql.com/"
+ echo "For commercial support please contact Percona at http://www.percona.com/contacts.html"
echo
fi
[type: gettext/rfc822deb] mysql-server-5.1.templates
# translation of templates.po to Arabic
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Ossama M. Khayat <okhayat@yahoo.com>, 2007.
msgid ""
msgstr ""
"Project-Id-Version: templates\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-05-01 13:04+0300\n"
"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
"Language-Team: Arabic <support@arabeyes.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=6; plural=n==1 ? 0 : n==0 ? 1 : n==2 ? 2: n%100>=3 && "
"n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
": n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
": n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
": n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
": n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
": n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
": n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "هل فعلاً تريد التثبيط؟"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr "هناك ملف مسمى /var/lib/mysql/debian-*.flag موجود على هذا النظام."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"هذا الملف دلالة على أن نسخة أحدث من حزمة mysql-server تم تثبيتها مسبقاً."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"ليست هناك أية ضمانة أن النسخة التي تقوم بتثبيتها ستكون قادرة على استخدام "
"قواعد البيانات الحالية."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "ملاحظة هامة لمستخدمي NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"كي تستخدم MySQL، يجب إضافة المُدخلات التالية الخاصة بالمستخدمين والمجموعات "
"إلى النظام:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr "عليك أيضاً أن تقوم بالتأكد من صلاحيات مالك الملف /var/lib/mysql: "
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "إزالة جميع قواعد بيانات MySQL؟"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr "الدليل /var/lib/mysql الذي يحتوي قواعد بيانات MySQL ستتم إزالته."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"إن كنت تقوم بإزالة حزمة MySQL كي تقوم لاحقاً بتثبيت نسخة أحدث أو إن كانت حزمة "
"mysql-server مختلفة تستخدمها، فيجب إبقاء البيانات."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "تشغيل خادم MySQL عند الإقلاع؟"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"يمكن تشغيل خادم MySQL آلياً وقت الإقلاع أو يدوياً باستخدام الأمر '/etc/init.d/"
"mysql start'."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "كلمة المرور الجديدة لمستخد \"root\" الخاص بـMySQL:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"مع أنه ليس إجبارياً، ولكن من المستحسن أن تقوم بتعيين كلمة مرور خاصة بمستخدم "
"MySQL الإداري \"root\"."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "إن ترك الحقل فارغاً، فلن يتم تغيير كلمة المرور."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "كلمة المرور الجديدة لمستخد \"root\" الخاص بـMySQL:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "تعذر تعيين كلمة مرور للمستخدم \"root\" الخاص بـMySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"حدث خطأ أثناء تعيين كلمة المرور لمستخدم MySQL الإداري. قد يكون هذا حدث بسبب "
"أن حساب المستخدم له كلمة مرور معيّنة مسبقاً، أو بسبب مشكلة في الاتصال مع خادم "
"MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "You should check the account's password after tha package installation."
msgid "You should check the account's password after the package installation."
msgstr "يجب عليك التحقق من كلمة مرور الحساب عقب تثبيت الحزمة."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"الرجاء قراءة الملف /usr/share/doc/mysql-server-5.1/README.Debian للمزيد من "
"المعلومات."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "هل تريد دعم اتصالات MySQL من الأجهزة التي تعمل على ديبيان \"sarge\" أو "
#~ "أقدم؟"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "في إصدارات عملاء MySQL القديمة من ديبيان، لم تكن كلمات المرور تحفظ بشكل "
#~ "آمن. ولقد حل هذه المشكلة بعدها، غير أن العملاء (مثل PHP) المتصلين من "
#~ "أجهزة تعمل على ديبيان Sarge 3.1 لن يكونوا قادرين على الاتصال باستخدام "
#~ "الحسابات الحديثة أو الحسابات التي تم تغيير كلمة مرورها."
# mysql-dfsg (debconf) translation to Catalan.
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
# Aleix Badia i Bosch <abadia@ica.es> 2004
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-4.1\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2004-01-31 19:20GMT\n"
"Last-Translator: Aleix Badia i Bosch <abadia@ica.es>\n"
"Language-Team: Debian L10n Catalan <debian-l10n-catalan@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "Nota important pels usuaris de NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "Voleu que el MySQL s'inici a l'arrencada ?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"El MySQL es pot executar a l'arrencada o noms si executeu manualment '/etc/"
"init.d/mysql start'. Seleccioneu 's' si voleu que s'inicialitzi "
"automticament."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
msgid "Repeat password for the MySQL \"root\" user:"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#, fuzzy
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Per utilitzar la base de dades de MySQL heu d'afegir un usuari i grup "
#~ "equivalent al segent i assegurar-vos que el directori /var/lib/mysql "
#~ "tingui els permisos correctes."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#, fuzzy
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr ""
#~ "Feu una ullada al document: http://www.mysql.com/doc/en/Upgrade.html"
#, fuzzy
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "El MySQL noms s'installa en cas de tenir un nom d'ordinador central que "
#~ "no sigui numric i que es pugui resoldre a travs del fitxer /etc/hosts. "
#~ "Ex. si l'ordre \"hostname\" retorna \"myhostname\", llavors hi ha d'haver "
#~ "una lnia com la segent \"10.0.0.1 myhostname\"."
#, fuzzy
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Es crea un nou usuari de mysql \"debian-sys-maint\". S'utilitza per les "
#~ "seqncies d'inicialitzaci i aturada del cron, no el suprimiu."
#, fuzzy
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Recordeu posar una contrasenya al superusuari del MySQL. Si utilitzeu un "
#~ "fitxer /root/.my.cnf, escriviu sempre all les lnies \"user\" i "
#~ "\"password\".; mai noms la contrasenya. Per a ms informaci feu una "
#~ "ullada a /usr/share/doc/mysql-server/README.Debian."
#, fuzzy
#~ msgid ""
#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
#~ "mysql-server package?"
#~ msgstr ""
#~ "Voleu suprimir totes les bases de dades en purgar el paquet mysql-server ?"
#~ msgid ""
#~ "Networking is disabled by default for security reasons. You can enable it "
#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
#~ msgstr ""
#~ "La xarxa est inhabilitada per defecte per a raons de seguretat. La podeu "
#~ "habilitar descomentant l'opci de skip-networking del fitxer /etc/mysql/"
#~ "my.cnf."
#~ msgid "security and update notice"
#~ msgstr "Avs de seguretat i actualitzaci"
#~ msgid "Please run mysql_fix_privilege_tables !"
#~ msgstr "Executeu mysql_fix_privilege_tables"
#~ msgid ""
#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
#~ "other than root and mysql with mysql."
#~ msgstr ""
#~ "S'asseguren els permisos de seguretat de /var/lib/mysql canviant a mysql "
#~ "tots els GIDs diferents a root i mysql."
#~ msgid ""
#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
#~ msgstr ""
#~ "Per habilitar el suport de SSL podeu seguir les instruccions de /usr/"
#~ "share/doc/mysql-server/"
#~ msgid "mysql_fix_privileges_tables will be executed"
#~ msgstr "s'executa mysql_fix_privileges_tables"
#~ msgid ""
#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
#~ "system. To make use of it, some new fields must be added to the tables "
#~ "in the \"mysql\" database. This is done by the "
#~ "mysql_fix_privilege_tables script during this upgrade regardless of if "
#~ "the server is currently running or not!"
#~ msgstr ""
#~ "Les ltimes versions de MySQL tenen un sistema de privilegis ms "
#~ "elaborat. Per utilitzar-lo cal afegir nous camps a les taules de la base "
#~ "de dades \"mysql\". Aquesta tasca la realitza la seqncia "
#~ "mysql_fix_privilege_tables durant l'actualitzaci independentment de si "
#~ "el servidor s'est executant o no!"
#~ msgid ""
#~ "This script is not supposed to give any user more rights that he had "
#~ "before, if you encounter such a case, please contact me."
#~ msgstr ""
#~ "Aquesta seqncia no assigna privilegis d'usuari diferents als que ja "
#~ "tenia, en cas que us trobssiu en aquesta situaci, poseu-vos en contacte "
#~ "amb mi."
#~ msgid ""
#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
#~ "remove everything including the configuration) somewhen? (default is not)"
#~ msgstr ""
#~ "Voleu suprimir tots els continguts de /var/lib/mysql quan es purgui el "
#~ "paquet mysql-server amb l'ordre \"dpkg --purge mysql-server\". (ex. "
#~ "suprimir-ho tot incls la configuraci) ? (per defecte no)"
#~ msgid "Make MySQL reachable via network?"
#~ msgstr "Voleu fer accessible el MySQL via xarxa ?"
#~ msgid ""
#~ "Should MySQL listen on a network reachable TCP port? This is not "
#~ "necessary for use on a single computer and could be a security problem."
#~ msgstr ""
#~ "Voleu que el MySQL escolti a un port TCP accessible des de la xarxa ? "
#~ "Aquesta opci no s imprescindible en ordinadors allats i podria "
#~ "provocar un problema de seguretat."
#~ msgid "Enable chroot mode?"
#~ msgstr "Permetre el mode chroot ?"
#~ msgid ""
#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
#~ "that users cannot modify any files outside this directory. This improves "
#~ "resistence against crackers, too, as they are not able to modify system "
#~ "files."
#~ msgstr ""
#~ "El MySQL es pot executar en una entorn tancat al directori /var/lib/"
#~ "mysql_jail perqu els usuaris no puguin modificar cap fitxer fora del "
#~ "directori.Aquesta opci tamb augmenta la seguretat envers els crackers, "
#~ "jaque no poden modificar els fitxers del sistema."
#
# Translators, if you are not familiar with the PO format, gettext
# documentation is worth reading, especially sections dedicated to
# this format, e.g. by running:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'
#
# Some information specific to po-debconf are available at
# /usr/share/doc/po-debconf/README-trans
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
#
# Developers do not need to manually edit POT or PO files.
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-05-01 13:01+0200\n"
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "Opravdu pokračovat v degradaci?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr "V systému existuje soubor /var/lib/mysql/debian-*.flag."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr "To znamená, že již byl nainstalován balík mysql-server s vyšší verzí."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"Neexistuje žádná záruka, že momentálně instalovaná verze bude umět pracovat "
"se stávajícími databázemi."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Důležitá poznámka pro uživatele NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Abyste mohli MySQL používat, musíte v systému založit následující uživatele "
"a skupiny:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"Také byste měli zkontrolovat vlastníka a oprávnění adresáře /var/lib/mysql:"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "Odstranit všechny MySQL databáze?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"Adresář /var/lib/mysql, ve kterém se nachází MySQL databáze, bude odstraněn."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Jestliže odstraňujete balík MySQL za účelem instalace novější verze MySQL, "
"nebo pokud tato data souběžně využívá jiný balík mysql-server, měli byste "
"data ponechat."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "Spustit MySQL server při startu systému?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL se může spouštět automaticky při startu systému, nebo ručně příkazem '/"
"etc/init.d/mysql start'."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Nové heslo MySQL uživatele \"root\":"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Přestože to není nezbytné, je silně doporučeno nastavit heslo u "
"správcovského MySQL účtu \"root\"."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "Ponecháte-li pole prázdné, heslo se nezmění."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nové heslo MySQL uživatele \"root\":"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Nelze nastavit heslo MySQL uživatele \"root\""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Během nastavování hesla pro správcovského uživatele MySQL se vyskytla chyba. "
"To se mohlo stát třeba proto, protože uživatel již měl heslo nastaveno, nebo "
"protože nastal problém v komunikaci s MySQL serverem."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "You should check the account's password after tha package installation."
msgid "You should check the account's password after the package installation."
msgstr "Po instalaci balíku byste měli heslo ověřit."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Více informací naleznete v /usr/share/doc/mysql-server-5.1/README.Debian."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Aktualizace nelze provést pokud jsou přítomny tabulky ISAM!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Poslední verze MySQL již nemohou používat starý formát tabulek ISAM a "
#~ "před aktualizací je nutné převést tyto tabulky např. do formátu MyISAM "
#~ "pomocí \"mysql_convert_table_format\" nebo \"ALTER TABLE x ENGINE=MyISAM"
#~ "\". Instalace mysql-server-5.1 se nyní přeruší. V případě, že se mezitím "
#~ "odinstaloval původní mysql-server-4.1, jednoduše jej znovu nainstalujte a "
#~ "tabulky převeďte."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Podporovat MySQL připojení z počítačů používajících Debian Sarge nebo "
#~ "starší?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Způsob, jakým se dříve ukládala hesla, nebyl příliš bezpečný. To se nyní "
#~ "zlepšilo, ale nevýhodou je, že se klienti z Debianu 3.1 Sarge (např. PHP) "
#~ "nebudou moci připojit na nové účty, nebo na účty, u nichž se heslo "
#~ "změnilo."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Abyste mohli mysql používat, musíte do následujících souborů přidat "
#~ "ekvivalentního uživatele a skupinu a zajistit, že /var/lib/mysql má "
#~ "správná práva (uid/gid se mohou lišit)."
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Odstranit databáze používané všemi verzemi MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr "Nezadáte-li heslo, žádné změny se s účtem neprovedou."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Po skončení instalace byste měli ověřit, že je účet chráněn heslem (více "
#~ "informací naleznete v souboru README.Debian)."
#~ msgid "Update Hints"
#~ msgstr "Poznámky k aktualizaci"
#~ msgid ""
#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
#~ "corrupted! This script also enhances the privilege tables but is not "
#~ "supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "Po aktualizaci ještě musíte spustit \"mysql_upgrade\", protože jinak by "
#~ "se tabulky mohly narušit! Tento skript také rozšiřuje tabulky privilegií, "
#~ "ovšem neměl by uživatelům přidat více práv, než měli dosud."
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Také si přečtěte http://www.mysql.com/doc/en/Upgrade.html"
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "MySQL se nainstaluje pouze v případě, že používáte nenumerické jméno "
#~ "počítače, které se dá přeložit přes soubor /etc/hosts. Např. když příkaz "
#~ "\"hostname\" vrátí \"diamond\", tak v /etc/hosts musí existovat obdobný "
#~ "řádek jako \"10.0.0.1 diamond\"."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Bude vytvořen nový mysql uživatel \"debian-sys-maint\". Tento mysql účet "
#~ "se používá ve startovacích, ukončovacích a cronových skriptech. Nemažte "
#~ "jej."
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Nezapomeňte nastavit heslo pro účet administrátora MySQL! Používáte-li /"
#~ "root/.my.cnf, vždy zde zadejte jak řádek \"user\", tak řádek \"password"
#~ "\". Nikdy zde nezadávejte jenom heslo!"
#~ msgid ""
#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
#~ "by all MySQL versions, not necessarily only the one you are about to "
#~ "purge?"
#~ msgstr ""
#~ "Mám odstranit kompletní adresářový strom /var/lib/mysql, který se používá "
#~ "pro všechny verze MySQL, tedy ne nutně pouze pro verzi, kterou se "
#~ "chystáte vyčistit?"
#
# Translators, if you are not familiar with the PO format, gettext
# documentation is worth reading, especially sections dedicated to
# this format, e.g. by running:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'
# Some information specific to po-debconf are available at
# /usr/share/doc/po-debconf/README-trans
# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
# Developers do not need to manually edit POT or PO files.
#
# Claus Hindsgaul <claus_h@image.dk>, 2005, 2006.
# Claus Hindsgaul <claus.hindsgaul@gmail.com>, 2006, 2007.
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-4.1\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-05-30 22:41+0200\n"
"Last-Translator: Claus Hindsgaul <claus.hindsgaul@gmail.com>\n"
"Language-Team: Danish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "nsker du virkelig at fortstte nedgraderingen?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
"Der er en fil med navnet /var/lib/mysql/debian-*.flag p dette system."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Sdan en fil tyder p at der tidligere har vret installeret en hjere "
"version af mysql-server-pakken."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"Det kan ikke garanteres at den version, du er ved at installere, kan benytte "
"data fra de eksisterende databaser."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Vigtig oplysning til NIS/YP-brugere"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Nedenstende linjer for brugere og grupper skal tilfjes dette system for at "
"benytte MySQL:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"Du br ogs tjekke filrettighederne og ejerskabet af mappen /var/lib/mysql:"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "Fjern alle MySQL-databaser?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"Mappen /var/lib/mysql, der indeholder MySQL-databaserne, er ved at blive "
"fjernet."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Hvis du fjerner MySQL-pakken for senere at installere en nyere version, "
"eller hvis en anden mysql-server-pakke allerede benytter den, br dataene "
"bevares."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "Start MySQL-serveren under systemopstart?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL-serveren kan enten startes op automatisk under systemopstarten, eller "
"manuelt med kommandoen '/etc/init.d/mysql start'."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Ny adgangskode for MySQL's \"root\"-bruger:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Selvom det ikke krves, anbefales det kraftigt, at du stter en adgangskode "
"for MySQL's administrationsbruger \"root\"."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "Hvis du lader dette felt st tomt, vil adgangskoden ikke blive ndret."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Ny adgangskode for MySQL's \"root\"-bruger:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Kunne ikke stte adgangskoden for MySQL's \"root\"-bruger"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Der opstod en fejl, da adgangskoden for MySQL's administrationsbruger blev "
"forsgt ndret. Dette kan vre sket, fordi brugeren allerede har en "
"adgangskode, eller fordi der var problemer med at kommunikere med MySQL-"
"serveren."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr "Du br tjekke kontoens adgangskode efter pakkeinstallationen."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Se filen /usr/share/doc/mysql-server-5.1/README.Debian for yderligere "
"oplysninger."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Kan ikke opgradere hvis der er ISAM-tabeller!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Nyere versioner af MySQL kan ikke lngere benytte det gamle ISAM-"
#~ "tabelformat, og det er derfor ndvendigt at konvertere dine tabeller til "
#~ "f.eks. MyISAM forud for opgraderingen med \"mysql_convert_table_format\" "
#~ "eller \"ALTER TABLE x ENGINE=MyISAM\". Installationen af mysql-server-5.1 "
#~ "afbrydes nu. Skulle din gamle mysql-server-4.1 alligevel bliver "
#~ "afinstalleret, s geninstallr den blot og konverter tabellerne."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Understt MySQL-forbindelser fra maskiner, der krer Debian \"Sarge\" "
#~ "eller ldre?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Gamle udgaver af MySQL-klienter p Debian gemte ikke adgangskoderne "
#~ "sikkert. Dette er blevet forbedret siden da, men klienter (f.eks. PHP) "
#~ "fra maskiner, der krer Debian 3.1 Sarge vil ikke kunne forbinde til "
#~ "nyere konti eller konti, hvis adgangskode er blevet ndret."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "For at kunne bruge mysql skal du installere en bruger og en gruppe, der "
#~ "svarer til nedenstende, og sikre dig at /var/lib/mysql har de rigtige "
#~ "adgangsrettigheder (uid/gid kan afvige)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Fjern de databaser, der benyttes af samtlige MySQL-versioner?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr "Hvis du ikke angiver en adgangskode, vil kontoen ikke blive ndret."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Nr installationen afsluttes, br du tjekke at kontoen er ordentligt "
#~ "beskyttet med en adgangskode (se README.Debian for yderligere "
#~ "oplysninger)."
#~ msgid "Update Hints"
#~ msgstr "Opdateringstips"
#~ msgid ""
#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
#~ "corrupted! This script also enhances the privilege tables but is not "
#~ "supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "Du skal kre \"mysql_upgrade\" efter opgraderingen, da tabellerne eller "
#~ "kan blive delagt! Dette script forbedrer ogs rettighedstabellerne, men "
#~ "burde ikke give nogen bruger flere rettigheder, end han havde tidligere,"
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Ls ogs http://www.mysql.com/doc/en/Upgrade.html"
#~ msgid "Install Hints"
#~ msgstr "Installationstips"
#~ msgid ""
#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
#~ "have manually be restored."
#~ msgstr ""
#~ "Ved opgraderinger fra MySQL 3.23, der fulgte med Debian Woody, kan de "
#~ "symbolske /var/lib/mysql or /var/log/mysql blive fjernet ved et uheld, og "
#~ "m genskabes manuelt."
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "MySQL vil kun blive installeret, hvis du har et ikke-numerisk vrtsnavn, "
#~ "som kan sls op i filen /ets/hosts. Hvis f.eks. kommandoen \"hostname\" "
#~ "svarer med \"mitvaertsnavn\", skal du have en linje a'la \"10.0.0.1 "
#~ "mitvaertsnavn\" i /etc/hosts."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Det vil blive oprettet en ny mysql-bruger, \"debian-sys-maint\". Denne "
#~ "mysql-konto bruges i start/stop-cron-scripterne. Slet den ikke."
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Husk at stte en ADGANGSKODE for MySQLs root-bruger! Hvis du bruger en /"
#~ "etc/.my.cnf, s skriv altid \"user\"- og \"password\"-linjer ind her, "
#~ "ikke kun adgangskoden!"
#~ msgid ""
#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
#~ "by all MySQL versions, not necessarily only the one you are about to "
#~ "purge?"
#~ msgstr ""
#~ "Skal jeg fjerne hele mappetret /var/lib/mysql, som benyttes af alle "
#~ "MySQL-versioner, ikke kun den version, du er ved at slette?"
#~ msgid ""
#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
#~ "script is not supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "En sjlden gang imellem, f.eks. ved nye hovedversioner, sker det at "
#~ "rettighedssystemet forbedres. For at gre brug af dette, skal "
#~ "mysql_fix_privilege_tables kres manuelt. Scriptet vil ikke give nogen "
#~ "bruger flere rettigheder, end vedkommende havde tidligere,"
# translation of mysql-dfsg-5.1_5.0.41-2_de.po to german
#
# Translators, if you are not familiar with the PO format, gettext
# documentation is worth reading, especially sections dedicated to
# this format, e.g. by running:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'
# Some information specific to po-debconf are available at
# /usr/share/doc/po-debconf/README-trans
# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
# Developers do not need to manually edit POT or PO files.
#
# Alwin Meschede <ameschede@gmx.de>, 2006, 2007.
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1_5.0.41-2_de\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-05-29 16:05+0200\n"
"Last-Translator: Alwin Meschede <ameschede@gmx.de>\n"
"Language-Team: german <debian-l10n-german@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "Möchten Sie wirklich eine ältere Version einspielen?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
"Auf diesem System existiert eine Datei mit dem Namen /var/lib/mysql/debian-*."
"flag"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Diese Datei ist ein Hinweis darauf, dass früher ein MySQL-Server-Paket mit "
"einer höheren Version installiert war."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"Es kann nicht garantiert werden, dass die gegenwärtig zu installierende "
"Version dessen Daten benutzen kann."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Wichtige Anmerkung für NIS/YP-Benutzer!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Um MySQL benutzen zu können, sollten die folgenden Benutzer und Gruppen dem "
"System hinzugefügt werden:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"Sie sollten außerdem Besitzer und Zugriffsrechte des Verzeichnisses /var/lib/"
"mysql überprüfen:"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "Alle MySQL-Datenbanken entfernen?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"Das Verzeichnis /var/lib/mysql mit den MySQL-Datenbanken soll entfernt "
"werden."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Falls geplant ist, nur eine höhere Version von MySQL zu installieren oder "
"ein anderes mysql-server-Paket dieses bereits benutzt, sollten die Daten "
"behalten werden."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "Soll MySQL automatisch beim Booten starten?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"Der MySQL-Dienst kann entweder automatisch beim Systemstart oder manuell "
"durch Eingabe des Befehls »/etc/init.d/mysql start« gestartet werden."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Neues Passwort für den MySQL »root«-Benutzer:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Obwohl es nicht zwingend erforderlich ist, wird nachdrücklich empfohlen für "
"den administrativen MySQL »root«-Benutzer ein Passwort zu setzen."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "Wenn dieses Feld freigelassen wird, wird das Passwort nicht geändert."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Neues Passwort für den MySQL »root«-Benutzer:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Konnte für den MySQL-»root«-Benutzer kein Passwort setzen"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Beim setzen des Passworts für den administrativen MySQL-Benutzer ist ein "
"Fehler aufgetreten. Dies könnte daran liegen, dass der Benutzer bereits ein "
"Passwort hat oder dass es ein Problem mit der Kommunikation mit dem MySQL-"
"Server gibt."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
"Sie sollten das Passwort des administrativen Benutzers nach der "
"Paketinstallation prüfen."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Für weitere Informationen lesen Sie /usr/share/doc/mysql-server-5.1/README."
"Debian"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Sollen MySQL-Verbindungen von Rechnern mit Debian »Sarge« oder älter "
#~ "unterstützt werden?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Alte Versionen der MySQL-Clients für Debian speicherten Passwörter nicht "
#~ "sehr sicher. Dies wurde verbessert, allerdings werden Clients (z. B. PHP) "
#~ "von Hosts mit Debian 3.1 Sarge sich nicht mehr mit MySQL-Konten verbinden "
#~ "können, die neu angelegt werden oder deren Passwort geändert wird. Siehe "
#~ "auch /usr/share/doc/mysql-server-5.1/README.Debian."
# mysql-dfsg-5 translation to spanish
# Copyright (C) 2005-2007 Software in the Public Interest, SPI Inc.
# This file is distributed under the same license as the XXXX package.
#
# Changes:
# - Initial translation
# Jesus Aneiros, 2006
# - Updated
# Javier Fernandez-Sanguino, 2006-2007
# - Revision
# Nacho Barrientos Arias
# Fernando Cerezal
# David Martínez Moreno
# Ricardo Mones
# Carlos Galisteo
# Javier Fernandez-Sanguino
#
#
# Traductores, si no conoce el formato PO, merece la pena leer la
# documentación de gettext, especialmente las secciones dedicadas a este
# formato, por ejemplo ejecutando:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'
#
# Equipo de traducción al español, por favor lean antes de traducir
# los siguientes documentos:
#
# - El proyecto de traducción de Debian al español
# http://www.debian.org/intl/spanish/
# especialmente las notas y normas de traducción en
# http://www.debian.org/intl/spanish/notas
#
# - La guía de traducción de po's de debconf:
# /usr/share/doc/po-debconf/README-trans
# o http://www.debian.org/intl/l10n/po-debconf/README-trans
#
# Si tiene dudas o consultas sobre esta traducción consulte con el último
# traductor (campo Last-Translator) y ponga en copia a la lista de
# traducción de Debian al español (<debian-l10n-spanish@lists.debian.org>)
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1_5.0.24-3\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-05-28 22:21+0200\n"
"Last-Translator: Javier Fernández-Sanguino <jfs@debian.org>\n"
"Language-Team: Debian l10 Spanish <debian-l10n-spanish@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "¿Desea realmente continuar con la desactualización?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
"Existe un archivo con el nombre /var/lib/mysql/debian-*.flag en este sistema."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Este fichero indica que se instaló previamente una versión superior del "
"paquete mysql-server."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"No se puede garantizar que la versión que está instalando pueda usar la base "
"de datos actual."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Nota importante para los usuarios de NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Deben añadirse las siguientes entradas para usuarios y grupos en el sistema "
"para poder utilizar MySQL:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"También debería comprobar los permisos y el propietario del directorio /var/"
"lib/mysql:"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "¿Desea eliminar todas las bases de datos MySQL?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"El directorio /var/lib/mysql contiene bases de datos MySQL que van a "
"eliminarse."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Debería mantener los datos si tiene planificado instalar una versión de "
"MySQL más reciente o si hay un paquete «mysql-server» distinto que los está "
"utilizando."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "¿Debería ejecutarse el servidor MySQL al iniciarse el sistema?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"El servidor MySQL puede iniciarse en el momento de arranque del sistema o "
"manualmente si escribe la orden «/etc/init.d/mysql start»."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Nueva contraseña para el usuario «root» de MySQL:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Se recomienda que configure una contraseña para el usuario "
"«root» (administrador) de MySQL, aunque no es obligatorio."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "No se modificará la contraseña si deja el espacio en blanco."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nueva contraseña para el usuario «root» de MySQL:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "No se pudo fijar la contraseña para el usuario «root» de MySQL"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Se produjo un error mientras intentaba fijar la contraseña para el usuario "
"administrador de MySQL. Esto puede haber sucedido porque la cuenta ya tenía "
"una contraseña o porque se produjo un error de comunicación con el servidor "
"MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
"Debería comprobar la contraseña de la cuenta después de la instalación del "
"paquete."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Consulte /usr/share/doc/mysql-server-5.1/README.Debian para más información."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "¡No se puede actualizar si ya hay tablas ISAM!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Las versiones recientes de MySQL ya no soportan el antiguo formato de "
#~ "tabla ISAM. Antes de realizar la actualización es necesario convertir sus "
#~ "tablas a por ejemplo, MyISAM, usando «mysql_convert_table_format» o «ALTER "
#~ "TABLE x ENGINE=MyISAM». Se va a interrumpir ahora la instalación de mysql-"
#~ "server-5.1. Si aún así su mysql-server-4.1 se elimina aún así, puede "
#~ "reinstalarlo para convertir ese tipo de tablas."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "¿Soportar las conexiones MySQL establecidadas desde sistemas que ejecutan "
#~ "Debian Sarge o versiones anteriores?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "No era muy segura la forma en la que se almacenaban las contraseñas en "
#~ "versiones anteriores del cliente de MySQL en Debian. Este problema se ha "
#~ "mejorado posteriormente con el inconveniente, sin embargo, de que "
#~ "clientes (por ejemplo, PHP) en sistemas que ejecutan Debian 3.1 «Sarge» no "
#~ "podrán conectarse a cuentas que son nuevas o a las que se le haya "
#~ "cambiado la contraseña."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Para utilizar mysql debe instalar un usuario y grupo equivalente al "
#~ "siguiente y asegurarse de que /var/lib/mysql tiene los permisos correctos "
#~ "(los valores del «uid» y del «gid» pueden ser diferentes)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr ""
#~ "¿Eliminar las bases de datos utilizadas por todas las versiones de MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "No se hará ningún cambio en la cuenta si no introduce una contraseña."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Debería confirmar que la contraseña está correctamente protegida con una "
#~ "contraseña cuando termine la instalación (consulte el fichero README."
#~ "Debian si desea más información)."
#~ msgid "Install Hints"
#~ msgstr "Sugerencias para la instalación"
#~ msgid ""
#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
#~ "have manually be restored."
#~ msgstr ""
#~ "Al actualizar a la versión de MySQL 3.23, la vrsión proporcionada en "
#~ "Debian Woody, se eliminan de manera accidental, los enlaces simbólicos a «/"
#~ "var/lib/mysql» o «/var/log/mysql» y tienen que restaurarse manualmente."
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "Sólo se instalará MySQL si tiene un nombre de equipo que no sea una "
#~ "dirección IP y pueda resolverse a través del archivo /etc/hosts. Por "
#~ "ejemplo, si la orden «hostname» devuelve «MiNombreEquipo» entonces deberá "
#~ "existir una línea «10.0.0.1 MiNombreEquipo» en dicho archivo."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Se creará un nuevo usuario «debian-sys-maint». Esta cuenta de mysql se "
#~ "utilizará en los scripts de inicio y parada y en los scripts «cron». No la "
#~ "elimine."
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "¡Por favor, recuerde crear una CONTRASEÑA para el usuario «root» de MySQL! "
#~ "¡Si utiliza /root/.my.cnf debe escribir las líneas «user» y «password» en "
#~ "dicho archivo, no incluya sólo la contraseña!"
#~ msgid ""
#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
#~ "by all MySQL versions, not necessarily only the one you are about to "
#~ "purge?"
#~ msgstr ""
#~ "¿Debería eliminar el árbol de directorio /var/lib/mysql completo? Tenga "
#~ "en cuenta que lo utilizan todas las versiones de MySQL y no sólo la que "
#~ "está a punto de purgar."
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Piarres BEobide <pi@beobide.net>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1_5.0.26-3-debconf_eu\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-02-19 09:33+0100\n"
"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
"Language-Team: Euskara <Librezale@librezale.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 0.10.1\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid "Do you really want to downgrade?"
msgid "Really proceed with downgrade?"
msgstr "Benetan bertsio zaharragora itzuli nahi duzu?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid ""
#| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#| "that a mysql-server package with a higher version has been installed "
#| "before. It can not be guaranteed that this version can use its data."
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Oharra: /var/lib/mysql/debian-*.flag dago.. Honek aurretik bertsio "
"berriagoko mysql-zerbitzari bat instalatu dela adierazten du. Ezin da "
"ziurtatu bertsio honek datu horiek erabili ahal izango dituenik."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "NIS/YP erabiltzaileentzat ohar garrantzitsua!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
#, fuzzy
#| msgid ""
#| "The script is about to remove the data directory /var/lib/mysql. If it is "
#| "planned to just install a higher MySQL version or if a different mysql-"
#| "server package is already using it, the data should be kept."
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Script-a /var/lib/mysql data direktorioa ezabatzera doa. MySQL bertsio "
"berriago bat instalatu behar bada edo beste mysql-server pakete bat berau "
"erabiltzen ari bada, datuak mantendu egingo dira."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "Sistema abiaraztean MySQL abiarazi behar al da?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid ""
#| "The MySQL can start automatically on boot time or only if you manually "
#| "type '/etc/init.d/mysql start'."
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL abiaraztean automatikoki abiarazi daiteke edo eskuz /etc/init.d/mysql "
"start' eginaz."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "New password for the MySQL \"root\" user:"
msgstr "MySQL \"root\" erabiltzailearen pasahitz berria:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid ""
#| "It is highly recommended that you set a password for the MySQL "
#| "administrative \"root\" user."
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Oso gomendagarria da MySQL administratzaile \"root\" erabiltzaileari "
"pasahitz bat ezartzea."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "MySQL \"root\" erabiltzailearen pasahitz berria:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid "Unable to set password for MySQL \"root\" user"
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Ezinda MySQL \"root\" erabiltzailearen pasahitza ezarri"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "It seems an error occurred while setting the password for the MySQL "
#| "administrative user. This may have happened because the user already has "
#| "a password, or because there was a problem communicating with the MySQL "
#| "server."
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Dirudienez errore bat gertatu da MySQL administratzaile kontuaren pasahitza "
"ezartzean. Hau erabiltzaileak dagoeneko pasahitz bat duelako edo MySQL "
"zerbitzariarekiko konexioan erroreak daudelako gertatu daiteke."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Debian \"sarge\" edo zaharragoak erabiltzen duten ostalarietatik MySQL "
#~ "konexioak onartu?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Pasahitzak biltegiratzeko modua ez da oso ziurra. Hau hobetua izan da "
#~ "baina Debian 3.1 Sarge erabiltzaileak ezingo dira kontu berri edo "
#~ "pasahitza aldatu duten kontuetara konektatu. Begiratu /usr/share/doc/"
#~ "mysql-server-5.1/README.Debian argibide gehiagorako."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Mysql erabili ahal izateko beharrezko erabiltzaile eta taldea sortu eta /"
#~ "var/lib/mysql-ek beharrezko baimenak dituela ziurtatu behar duzu (uid/gid-"
#~ "a ezberdina izan daiteke)"
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "MySQL bertsio guztiek erabilitako databaseak ezabatu?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr "Ez baduzu pasahitzik ezartzen ez da aldaketarik egingo kontuan."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Instalazio amaitzean, kontua pasahitzez babesturik dagoela ziurtatu "
#~ "beharko zenuke (README.Debian irakurri xehetasun gehiagotarako)"
# translation of fr.po to French
# Translators, if you are not familiar with the PO format, gettext
# documentation is worth reading, especially sections dedicated to
# this format, e.g. by running:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'
#
# Some information specific to po-debconf are available at
# /usr/share/doc/po-debconf/README-trans
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
#
# Developers do not need to manually edit POT or PO files.
#
# Christian Perrier <bubulle@debian.org>, 2004, 2006, 2007.
msgid ""
msgstr ""
"Project-Id-Version: fr\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-04-19 22:43+0200\n"
"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"debian.org>\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: Plural-Forms: nplurals=2; plural=n>1;\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "Faut-il vraiment revenir à la version précédente ?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr "Un fichier /var/lib/mysql/debian-*.flag est présent sur ce système."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Cela indique qu'une version plus récente du paquet mysql-server a été "
"précédemment installée."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr "Il n'est pas garanti que cette version puisse en utiliser les données."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Note importante pour les utilisateurs NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Pour pouvoir utiliser MySQL, les utilisateurs et les groupes suivants "
"doivent être ajoutés au système :"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"Vous devez également vérifier le propriétaire et les permissions du "
"répertoire /var/lib/mysql :"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "Faut-il supprimer toutes les bases de données MySQL ?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"Le répertoire /var/lib/mysql qui contient les bases de données de MySQL va "
"être supprimé."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Si vous prévoyez d'installer une version plus récente de MySQL ou si un "
"autre paquet mysql-server les utilise déjà, vous devriez les conserver."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "Faut-il lancer MySQL au démarrage ?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL peut être lancé soit au démarrage, soit en entrant la commande « /etc/"
"init.d/mysql start »."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Nouveau mot de passe du superutilisateur de MySQL :"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Il est très fortement recommandé d'établir un mot de passe pour le compte "
"d'administration de MySQL (« root »)."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "Si ce champ est laissé vide, le mot de passe ne sera pas changé."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nouveau mot de passe du superutilisateur de MySQL :"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr ""
"Impossible de changer le mot de passe de l'utilisateur « root » de MySQL"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Une erreur s'est produite lors du changement de mot de passe du compte "
"d'administration. Un mot de passe existait peut-être déjà ou il n'a pas été "
"possible de communiquer avec le serveur MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
"Vous devriez vérifier le mot de passe de ce compte après l'installation du "
"paquet."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Veuillez consulter le fichier /usr/share/doc/mysql-server-5.1/README.Debian "
"pour plus d'informations."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Gérer les connexions d'hôtes qui utilisent les versions Debian « sarge » "
#~ "ou antérieures  ?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "La méthode de stockage des mots de passe n'était pas très sûre dans les "
#~ "version précédentes de ce paquet. Cette méthode a été améliorée mais les "
#~ "modifications empêchent la connexion avec de nouveaux comptes ou des "
#~ "comptes dont le mot de passe a été modifié, pour les clients (p. ex. PHP) "
#~ "depuis des hôtes qui utilisent Debian 3.1 « sarge »."
# Galician translation of mysql-dfsg-5.1's debconf templates
# This file is distributed under the same license as the mysql-dfsg-5.1 package.
# Jacobo Tarrio <jtarrio@debian.org>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-04-20 09:44+0200\n"
"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "¿Quere pasar a unha versión anterior?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr "Neste sistema hai un ficheiro chamado /var/lib/mysql/debian-*.flag."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Este ficheiro indica que antes se instalou un paquete mysql-server cunha "
"versión superior."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"Non se pode garantir que a versión que está a instalar poida empregar as "
"bases de datos actuais."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Nota importante para os usuarios de NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Para empregar MySQL deberían engadirse ao sistema as seguintes entradas de "
"usuarios e grupos:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"Tamén debería comprobar os permisos e o propietario do directorio /var/lib/"
"mysql:"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "¿Eliminar tódalas bases de datos de MySQL?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"Hase eliminar o directorio /var/lib/mysql, que contén as bases de datos de "
"MySQL."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Se está a eliminar o paquete MySQL para instalar despois unha versión máis "
"recente ou se xa hai un paquete mysql-server diferente a empregalo, debería "
"conservar os datos."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "¿Iniciar o servidor MySQL co ordenador?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"Pódese iniciar automaticamente o servidor MySQL ao iniciar o ordenador, ou "
"manualmente coa orde \"/etc/init.d/mysql start\"."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Novo contrasinal para o usuario \"root\" de MySQL:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Aínda que non é obrigatorio, recoméndase encarecidamente que estableza un "
"contrasinal para o usuario administrativo \"root\" de MySQL."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "Se deixa o campo en branco, non se ha cambiar o contrasinal."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Novo contrasinal para o usuario \"root\" de MySQL:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Non se puido establecer o contrasinal do usuario \"root\" de MySQL"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Houbo un erro ao establecer o contrasinal do usuario administrativo de "
"MySQL. Puido ocorrer porque o usuario xa teña un contrasinal ou debido a un "
"problema de comunicacións co servidor MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "You should check the account's password after tha package installation."
msgid "You should check the account's password after the package installation."
msgstr "Debería comprobar o contrasinal da conta trala instalación do paquete."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Consulte o ficheiro /usr/share/doc/mysql-server-5.1/README.Debian para máis "
"información."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "¿Soportar as conexións a MySQL de máquinas que empreguen Debian \"sarge\" "
#~ "ou anterior?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Nas versións antigas dos clientes MySQL de Debian, os contrasinais non se "
#~ "armacenaban de xeito seguro. Isto mellorouse desde aquela; nembargantes, "
#~ "os clientes (tales coma PHP) das máquinas que executen Debian 3.1 Sarge "
#~ "non se han poder conectar a contas recentes ou a contas nas que se "
#~ "cambiara o contrasinal."
# Italian (it) translation of debconf templates for mysql-dfsg-5.1
# Copyright (C) 2006 Software in the Public Interest
# This file is distributed under the same license as the mysql-dfsg-5.1 package.
# Luca Monducci <luca.mo@tiscali.it>, 2006, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1 5.0.38 italian debconf templates\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-04-22 15:43+0200\n"
"Last-Translator: Luca Monducci <luca.mo@tiscali.it>\n"
"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "Procedere realmente con l'abbassamento di versione?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
"Su questo sistema esiste un file con nome /var/lib/mysql/debian-*.flag."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Quel file indica che in precedenza è stata installata una versione superiore "
"del pacchetto mysql-server."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"Non è garantito che la versione che si sta installando sia in grado di usare "
"i database presenti."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Nota importante per gli utenti NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Per usare MySQL i seguenti utenti e gruppi devono essere aggiunti al sistema:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"Inoltre si devono verificare i permessi e il proprietario della directory /"
"var/lib/mysql:"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "Eliminare tutti i database MySQL?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"La directory /var/lib/mysql contenente i database di MySQL sta per essere "
"eliminata."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Se si rimuove il pacchetto MySQL per poi installare una versione più recente "
"oppure se sono già in uso da un altro pacchetto mysql-server, i dati non "
"devono essere eliminati."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "Lanciare il server MySQL all'avvio?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"Il server MySQL può essere lanciato automaticamente all'avvio del sistema "
"oppure manualmente con il comando «/etc/init.d/mysql start»."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Nuova password per l'utente «root» di MySQL:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Sebbene non sia obbligatoria, si raccomanda d'impostare una password per "
"l'utente d'amministrazione «root» di MySQL."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "Se questo campo è lasciato vuoto, la password non viene cambiata."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nuova password per l'utente «root» di MySQL:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Impossibile impostare la password per l'utente «root» di MySQL"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Si è verificato un errore durante l'impostazione della password per l'utente "
"d'amministrazione di MySQL. Questo può essere accaduto perché l'utente ha "
"già una password oppure a causa di un problema di connessione con il server "
"MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "You should check the account's password after tha package installation."
msgid "You should check the account's password after the package installation."
msgstr ""
"Al termine dell'installazione si deve verificare la password dell'account."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Per maggiori informazioni si consulti il file /usr/share/doc/mysql-server-"
"5.1/README.Debian."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Supporto a connessioni MySQL da macchine con Debian «sarge» o antecedente"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Nelle precedenti versioni dei client MySQL su Debian le password non "
#~ "erano memorizzate in modo sicuro. Questo è stato migliorato ma i client "
#~ "(per esempio PHP) presenti su una macchina con Debian 3.1 Sarge non sono "
#~ "più in grado di connettersi a un nuovo account né ad account le cui "
#~ "password siano state cambiate."
#
# Translators, if you are not familiar with the PO format, gettext
# documentation is worth reading, especially sections dedicated to
# this format, e.g. by running:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'
#
# Some information specific to po-debconf are available at
# /usr/share/doc/po-debconf/README-trans
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
#
# Developers do not need to manually edit POT or PO files.
#
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1 5.0.32-6\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-02-18 22:25+0900\n"
"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid "Do you really want to downgrade?"
msgid "Really proceed with downgrade?"
msgstr "本当にダウングレードしますか?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid ""
#| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#| "that a mysql-server package with a higher version has been installed "
#| "before. It can not be guaranteed that this version can use its data."
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"警告: /var/lib/mysql/debian-*.flag ファイルが存在しています。これは、以前によ"
"り新しいバージョンの mysql-server パッケージがインストールされていたことを示"
"します。データをこのバージョンで使えるかどうか、保証できません。"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "NIS/YP ユーザへ重要な注意!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
#, fuzzy
#| msgid ""
#| "The script is about to remove the data directory /var/lib/mysql. If it is "
#| "planned to just install a higher MySQL version or if a different mysql-"
#| "server package is already using it, the data should be kept."
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"このスクリプトはデータのディレクトリ /var/lib/mysql を削除するためのもので"
"す。単に新しいバージョンの MySQL をインストールしようとしている、あるいは別"
"の mysql-server パッケージを既に使っている場合、データは保持する必要がありま"
"す。"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "MySQL をシステム起動時に開始しますか?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid ""
#| "The MySQL can start automatically on boot time or only if you manually "
#| "type '/etc/init.d/mysql start'."
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL の起動方法について、システム起動時に自動的に開始するか、あるいは '/etc/"
"init.d/mysql start' と手で入力した時のみ起動するかを選べます。"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "New password for the MySQL \"root\" user:"
msgstr "MySQL の \"root\" ユーザに対する新しいパスワード:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid ""
#| "It is highly recommended that you set a password for the MySQL "
#| "administrative \"root\" user."
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"MySQL を管理する \"root\" ユーザのパスワードを設定することを強くお勧めしま"
"す。"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "MySQL の \"root\" ユーザに対する新しいパスワード:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid "Unable to set password for MySQL \"root\" user"
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "MySQL の \"root\" ユーザのパスワードを設定できません"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "It seems an error occurred while setting the password for the MySQL "
#| "administrative user. This may have happened because the user already has "
#| "a password, or because there was a problem communicating with the MySQL "
#| "server."
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"MySQL の管理者ユーザに対してパスワードを設定しようとした際、エラーが発生した"
"ようです。これは既に管理者ユーザにパスワードが設定されていたか、MySQL サーバ"
"との接続に問題があったためだと思われます。"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "See /usr/share/doc/mysql-server-5.1/README.Debian for more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"詳細は /usr/share/doc/mysql-server-5.1/README.Debian を参照してください。"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "ISAM テーブルがある場合はアップグレードできません!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "MySQL の最近のバージョンでは以前の ISAM テーブル形式は利用できなくなってい"
#~ "ます。そのため、例えば \"mysql_convert_table_format\" あるいは \"ALTER "
#~ "TABLE x ENGINE=MyISAM\" としてアップグレード前に MyISAM にコンバートするこ"
#~ "となどが必要です。mysql-server-5.1 のインストールを中断します。以前の "
#~ "mysql-server-4.1 が削除されてしまった場合であっても、テーブルをコンバート"
#~ "するために再インストールをしてください。"
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Debian \"Sarge\" あるいはそれよりも古いバージョンが稼働しているホストから"
#~ "の MySQL 接続をサポートしますか?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "パスワードの保存方法は、あまり安全な方法で行われていませんでした。これは改"
#~ "善されましたが、Debian 3.1 Sarge が稼働しているホストからクライアント "
#~ "(PHP など) が新しいアカウントやパスワードが変更されたアカウントには接続で"
#~ "きなくなるという欠点もでています。詳細については /usr/share/doc/mysql-"
#~ "server-5.1/README.Debian を参照してください。"
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "mysql を利用するには 以下のユーザとグループを作成し、/var/lib/mysql が正し"
#~ "い権限になっているかどうかを確認する必要があります (おそらく uid/gid が違"
#~ "います)。"
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "全バージョンの MySQL で利用されているデータベースを削除しますか?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "パスワードを入力しない場合、アカウントに対して変更は加えられません。"
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "インストールが終了した際、アカウントがパスワードできちんと保護されているか"
#~ "どうかを確認してください (詳細については README.Debian を参照してくださ"
#~ "い)。"
#~ msgid "Install Hints"
#~ msgstr "インストールのヒント"
#~ msgid ""
#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
#~ "have manually be restored."
#~ msgstr ""
#~ "Debian Woody でリリースされた MySQL 3.23 からのアップグレードでは、/var/"
#~ "lib/mysql あるいは /var/log/mysql の代わりにシンボリックリンクは偶然にも削"
#~ "除されてしまっているので、手動でのリストアが必要になります。"
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "MySQL は /etc/hosts ファイル経由で解決できる「数字のみで構成されてない」ホ"
#~ "スト名の場合のみ、インストールされます。つまり、\"hostname\" コマンドが "
#~ "\"myhostname\" を返すなら、\"10.0.0.1 myhostname\" という行が /etc/hosts "
#~ "ファイルにあるはずです。"
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "新規に mysql ユーザとして \"debian-sys-maint\" が作成されます。この mysql "
#~ "アカウントは start/stop 時と cron スクリプトで利用されます。消さないでくだ"
#~ "さい。"
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "MySQL の root ユーザに対して「パスワードの設定」を忘れないでください! /"
#~ "root/.my.cnf を使っている場合、このファイル中の \"user\" 行と \"password"
#~ "\" 行を記述してください。決してパスワードだけではいけません!"
#~ msgid ""
#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
#~ "by all MySQL versions, not necessarily only the one you are about to "
#~ "purge?"
#~ msgstr ""
#~ "これから purge しようとしているバージョンだけでは無く、全てのバージョンの "
#~ "MySQL が /var/lib/mysql ディレクトリを使用しています。このディレクトリを完"
#~ "全に削除しますか?"
#~ msgid "Update Hints"
#~ msgstr "更新のヒント"
#~ msgid ""
#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
#~ "script is not supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "まれに、つまりは新しいメジャーバージョンにおいて、特権システムが改善されま"
#~ "す。これを行うには、mysql_fix_privilege_table を手動で実行する必要がありま"
#~ "す。スクリプトは、どのようなユーザに対しても、以前に保持していた以上の権限"
#~ "を与えるようにはなっていません。"
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "http://www.mysql.com/doc/ja/Upgrade.html も参照してください"
# translation of mysql_nb.po to Norwegian Bokmål
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Bjørn Steensrud <bjornst@powertech.no>, 2007.
msgid ""
msgstr ""
"Project-Id-Version: mysql_nb\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-02-18 12:13+0100\n"
"Last-Translator: Bjørn Steensrud <bjornst@powertech.no>\n"
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid "Do you really want to downgrade?"
msgid "Really proceed with downgrade?"
msgstr "Er du sikker på at du vil nedgradere?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid ""
#| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#| "that a mysql-server package with a higher version has been installed "
#| "before. It can not be guaranteed that this version can use its data."
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"ADVARSEL: Fila /var/lib/mysql/debian-*.flag finnes. Dette viser at en mysql-"
"server-pakke med et høyere versjonsnummer har vært installert før. Det kan "
"ikke garanteres at denne versjonen kan bruke data fra den høyere versjonen."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "Viktig merknad for NIS/YP-brukere!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
#, fuzzy
#| msgid ""
#| "The script is about to remove the data directory /var/lib/mysql. If it is "
#| "planned to just install a higher MySQL version or if a different mysql-"
#| "server package is already using it, the data should be kept."
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Dette skriptet skal til å fjerne data-mappa /var/lib/mysql. Denne mappa bør "
"beholdes hvis det bare skal installeres en høyere MySQL-versjon, eller hvis "
"en annen mysql-server-pakke allerede bruker den."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "Skal MySQL startes ved maskinoppstart?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid ""
#| "The MySQL can start automatically on boot time or only if you manually "
#| "type '/etc/init.d/mysql start'."
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL kan startes automatisk når maskinen starter, eller bare hvis du "
"skriver «/etc/init.d/mysql start»."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "New password for the MySQL \"root\" user:"
msgstr "Nytt passord for MySQLs «root»-bruker:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid ""
#| "It is highly recommended that you set a password for the MySQL "
#| "administrative \"root\" user."
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Det anbefales sterkt at du oppgir et passord for den administrative «root»-"
"brukeren i MySQl."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nytt passord for MySQLs «root»-bruker:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid "Unable to set password for MySQL \"root\" user"
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Klarer ikke angi passord for MySQLs «root»-bruker"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "It seems an error occurred while setting the password for the MySQL "
#| "administrative user. This may have happened because the user already has "
#| "a password, or because there was a problem communicating with the MySQL "
#| "server."
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Det ser ut til at det oppsto en feil mens det ble satt et passord for MySQLs "
"administrative bruker. Dette kan være fordi brukeren allerede har et "
"passord, eller fordi det var et kommunikasjonsproblem med MySQL-tjeneren."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Skal MySQL-tilkoblinger støttes fra vertsmaskiner som kjører Debian "
#~ "«sarge» eller eldre?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Passord ble tidligere lagret på en lite sikker måte. Dette er nå "
#~ "forbedret, med den ulempen at klienter (f.eks. PHP) fra verter som kjører "
#~ "Debian 3.1 Sarge ikke vil kunne koble til en konto som er ny eller har "
#~ "fått endret passordet. Se /usr/share/doc/mysql-server-5.1/README.Debian."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "For å bruke MySQL må du installere en bruker og gruppe tilsvarende den "
#~ "nedenfor og se til at /var/lib/mysql har riktige rettigheter (uid/gid kan "
#~ "være forskjellig)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Skal databasene brukt av alle MySQL-versjoner fjernes?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Hvis du ikke oppgir et passord blir det ikke gjort noen endringer med "
#~ "kontoen."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Når installasjonen er ferdig bør det sjekkes at kontoen er ordentlig "
#~ "beskyttet med et passord (mer informasjon finnes i README.Debian)."
# Dutch mysql-dfsg-5.1 po-debconf translation,
# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the mysql-dfsg-5.1 package.
# Vincent Zweije <zweije@xs4all.nl>, 2006.
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1 5.0.30-1\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2006-02-19 10:20+0100\n"
"Last-Translator: Thijs Kinkhorst <thijs@debian.org>\n"
"Language-Team: Debian-Dutch <debian-l10n-dutch@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid "Do you really want to downgrade?"
msgid "Really proceed with downgrade?"
msgstr "Wilt u echt een oude versie herstellen?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid ""
#| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#| "that a mysql-server package with a higher version has been installed "
#| "before. It can not be guaranteed that this version can use its data."
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Waarschuwing: waarschijnlijk is een hogere versie van het mysql-server "
"pakket geïnstalleerd geweest (het bestand /var/lib/mysql/debian-*.flag "
"bestaat). Er is geen garantie dat de gegevensbestanden, bewerkt met die "
"hogere versie, kunnen worden gebruikt met de versie van mysql die u nu "
"installeert."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "Belangrijke opmerking voor gebruikers van NIS/YP!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
#, fuzzy
#| msgid ""
#| "The script is about to remove the data directory /var/lib/mysql. If it is "
#| "planned to just install a higher MySQL version or if a different mysql-"
#| "server package is already using it, the data should be kept."
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Het script staat op het punt de datamap /var/lib/mysql te verwijderen. Als "
"het plan alleen maar is om een hogere MySQL versie te installeren, of als "
"een ander mysql-serverpakket de datamap al gebruikt, dan zou de data moeten "
"worden behouden."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "Moet MySQL starten als de computer start?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid ""
#| "The MySQL can start automatically on boot time or only if you manually "
#| "type '/etc/init.d/mysql start'."
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL kan automatisch starten bij het starten van de computer, of slechts "
"wanneer u '/etc/init.d/mysql start' handmatig uitvoert."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "New password for the MySQL \"root\" user:"
msgstr "Nieuw wachtwoord voor de MySQL \"root\"-gebruiker:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid ""
#| "It is highly recommended that you set a password for the MySQL "
#| "administrative \"root\" user."
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Het wordt sterk aangeraden een wachtwoord in te stellen voor de "
"administratieve MySQL \"root\"-gebruiker."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nieuw wachtwoord voor de MySQL \"root\"-gebruiker:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid "Unable to set password for MySQL \"root\" user"
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Kan het wachtwoord voor de MySQL \"root\"-gebruiker niet instellen"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "It seems an error occurred while setting the password for the MySQL "
#| "administrative user. This may have happened because the user already has "
#| "a password, or because there was a problem communicating with the MySQL "
#| "server."
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Er lijkt een fout te zijn opgetreden bij het instellen van het wachtwoord "
"van de MySQL administratieve gebruiker. Dat kan komen doordat de gebruiker "
"al een wachtwoord heeft, of omdat er een probleem was bij het communiceren "
"met de MySQL server."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Moet u MySQL-verbindingen accepteren van computers die Debian \"sarge\" "
#~ "of ouder draaien?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "De wijze waarop wachtwoorden werden bewaard was niet erg veilig. Dit is "
#~ "verbeterd, maar helaas zullen programma's van computers die Debian 3.1 "
#~ "Sarge draaien, geen verbinding meer kunnen maken met accounts die nieuw "
#~ "zijn, of waarvan het wachtwoord is gewijzigd. Zie /usr/share/doc/mysql-"
#~ "server-5.1/README.Debian."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Om mysql te gebruiken dient u een gebruiker en groep aan te maken, "
#~ "gelijkwaardig aan onderstaand voorbeeld, en u dient ervoor te zorgen dat /"
#~ "var/lib/mysql de bijbehorende toegangsrechten heeft (uid en gid mogen "
#~ "anders zijn)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Databases verwijderen die door alle MySQL versies worden gebruikt?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Indien u geen wachtwoord opgeeft zal het account niet worden gewijzigd."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Wanneer de installatie klaar is, dient u te verifiëren dat het account "
#~ "netjes beschermd is met een wachtwoord (zie README.Debian voor meer "
#~ "informatie)."
# Portuguese translation for mysql-dfsg-5.1's debconf messages
# Copyright (C) 2006 Miguel Figueiredo <elmig@debianpt.org>
# This file is distributed under the same license as the mysql-dfsg-5.1 package.
# Miguel Figueiredo <elmig@debianpt.org>
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-05-05 21:01+0100\n"
"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
"Language-Team: Portuguese <traduz@debianpt.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "Deseja mesmo fazer downgrade?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr "Existe um ficheiro chamado /var/lib/mysql/debian-*.flag neste sistema."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"Tal ficheiro significa que anteriormente foi instalado um pacote mysql-"
"server com um número de versão superior."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"Não existe nenhuma garantia que a versão que está actualmente a instalar "
"seja capaz de utilizar as bases de dados actuais."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Nota importante para utilizadores de NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Para utilizar o MySQL, têm de ser acrescentadas as seguintes entradas para "
"os utilizadores e grupos:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"Deve também verificar as permissões e o dono do directório /var/lib/mysql :"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "Remover todas as bases de dados MySQL?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"O directório /var/lib/mysql que contém as bases de dados MySQL está prestes "
"a ser removido."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Se está a remover o pacote MySQL de modo a posteriormente instalar uma "
"versão mais recente ou se um pacote mysq-server já está os está a utilizar, "
"os dados devem ser mantidos."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "Iniciar o servidor MySQL no arranque?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"O MySQL pode ser automaticamente lançado no arranque ou manualmente através "
"do comando '/etc/init.d/mysql start'."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Nova palavra-passe para o utilizador \"root\" do MySQL:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Embora não seja mandatório, É fortemente recomendado que defina uma palavra-"
"passe para o utilizador administrativo \"root\" do MySQL."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
"Se esse campo for deixado em branco, a palavra-passe não irá ser alterada."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nova palavra-passe para o utilizador \"root\" do MySQL:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr ""
"Não foi possível definir a palavra-passe para o utilizador \"root\" do MySQL"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Ocorreu um erro enquanto era definida a palavra-passe para o utilizador "
"administrativo do MySQL. Isto pode ter acontecido porque a cona já tem uma "
"palavra-passe, ou porque ocorreu um problema ao comunicação com o servidor "
"MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "You should check the account's password after tha package installation."
msgid "You should check the account's password after the package installation."
msgstr ""
"Você deve verificar a palavra-passe da conta após a instalação do pacote."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Para mais informação por favor leia o ficheiro /usr/share/doc/mysql-server-"
"5.1/README.Debian."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Não é possível actualizar se estiverem presentes tabelas ISAM!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "As versões recentes de MySQL já não podem utilizar o antigo formato de "
#~ "tabelas ISAM e é por isso necessário converter as suas tabelas pra e.g. "
#~ "MyISAM antes da actualização, utilizando \"mysql_convert_table_format\" "
#~ "ou \"ALTER TABLE x ENGINE=MyISAM\". A instalação de mysql-server-5.1 irá "
#~ "agora ser cancelada. Se o seu antigo mysql-server-4.1 for removido apenas "
#~ "reinstale para converter essas tabelas."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Suportar ligações MySQL de máquinas que corram Debian \"sarge\" ou mais "
#~ "antigos?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Nas versões antigas de clientes de MySQL em Debian, as palavras-passe não "
#~ "eram guardadas de forma segura. Isto foi melhorado desde aí, no entanto "
#~ "os clientes (como o PHP) de máquinas que corram Debian 3.1 Sarge não irão "
#~ "conseguir ligar-se a contas novas ou cuja palavra-passe foi alterada."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Para utilizar mysql e instalar um utilizador e grupo equivalentes para o "
#~ "seguinte e assegurar-se que /var/lib/mysql têm as permissões correctas (o "
#~ "uid/gid podem ser diferentes)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Remover as bases de dados utilizadas por todas as versões de MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Se não disponibilizar uma password não serão feitas alterações nesta "
#~ "conta."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Quando terminar a instalação, deve verificar se a conta está devidamente "
#~ "protegida com uma password (para mais informações veja README.Debian)."
# Brazilian Portuguese (pt_BR) debconf template translation for
# Debian's mysql-dfsg source package.
# Debian-BR Project <debian-l10n-portuguese@lists.debian.org>
# André Luís Lopes, <andrelop@debian.org> , 2004
# André Luís Lopes, <andrelop@debian.org> , 2006
# André Luís Lopes, <andrelop@debian.org> , 2007
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-04-21 15:59-0300\n"
"Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"pt_BR utf-8\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr "Realmente proceder com o rebaixamento de versão?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr "Um arquivo de nome /var/lib/mysql/debian-*.flag existe no sistema."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"A presença de um arquivo como este é uma indicação de que um pacote mysql-"
"server com um número de versão mais alto já foi instalado anteriormente."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
"Não há garantias de que a versão que você está instalando no momento "
"conseguirá utilizar as bases de dados existentes."
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr "Aviso importante para usuários NIS/YP"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
"Para utilizar o MySQL, as seguintes entradas para usuários e grupos devem "
"ser adicionadas ao sistema:"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
"Você deverá também checar as permissões e o dono do diretório /var/lib/mysql:"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr "Remover todas as bases de dados do MySQL?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
"O diretório /var/lib/mysql, o qual contém as bases de dados do MySQL, está "
"prestes a ser removido."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Caso você esteja removendo o pacote MySQL para posteriormente instalar uma "
"versão mais recente ou, caso uma versão diferente do pacote mysql-server "
"esteja sendo utilizada, os dados deverão ser mantidos."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr "Iniciar o servidor MySQL junto a inicialização da máquina?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"O servidor MySQL pode ser iniciado automaticamente junto a inicialização da "
"máquina ou manualmente com o comando '/etc/init.d/mysql start'."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr "Nova senha para o usuário \"root\" do MySQL:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Apesar de não ser mandatório, é altamente recomendado que você defina uma "
"senha para o usuário administrativo \"root\" do MySQL."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr "Caso este campo seja deixado em branco, a senha não sera mudada."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for the MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nova senha para o usuário \"root\" do MySQL:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Impossível definir senha para o usuário \"root\" do MySQL"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Um erro ocorreu durante a definição da senha para o usuário administrativo "
"do MySQL. Isso pode ter acontecido devido a esse usuário já possuir uma "
"senha definida ou devido a ocorrência de um problema de comunicação com o "
"servidor MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "You should check the account's password after tha package installation."
msgid "You should check the account's password after the package installation."
msgstr "Você deverá checar a senha dessa conta após a instalação deste pacote."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for "
#| "more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
"Por favor, leia o arquivo /usr/share/doc/mysql-server-5.1/README.Debian para "
"maiores informações."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Suportar conexões MySQL originadas de hosts executando o Debian \"sarge\" "
#~ "ou mais antigos ?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Em versões antigas dos clientes MySQL no Debian, as senhas não eram "
#~ "armazenadas de forma segura. Isto foi corrigido desde então, porém, "
#~ "clientes (como o PHP) em hosts executando o Debian 3.1 Sarge não serão "
#~ "capazes de conectar em contas recentes ou contas as quais as senhas "
#~ "tenham sido modificadas."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Para utilizar o MySQL, você deve instalar um usuário e um grupo "
#~ "equivalentes ao usuário e grupo a seguir para se certificar de que o "
#~ "diretório /var/lib/mysql possua as permissões correctas (o uid/gid podem "
#~ "ser diferentes)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Remover as bases de dados utilizadas por todas as versões do MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Caso você não forneça uma senha, nenhuma mudança será feita na conta."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Quando a instalação finalizar, você deverá verificar se a conta está "
#~ "apropriadamente protegida com uma senha (consulte o arquivo README.Debian "
#~ "para maiores informações)."
#~ msgid "internal"
#~ msgstr "interno"
#~ msgid "Only internally used."
#~ msgstr "Somente utilizado internamente."
#, fuzzy
#~ msgid "Update Hints"
#~ msgstr "Dicas de atualização"
#, fuzzy
#~ msgid ""
#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
#~ "script is not supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "Raramente, por exemplo, em novas versões maiores, o sistema de "
#~ "privilégios é melhorado. Para fazer uso disso, o script "
#~ "mysql_fix_privilege_tables deve ser executado manualmente. O script não "
#~ "atribuirá a nenhum usuário mais direitos do que os mesmos já possuíam "
#~ "anteriormente."
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Por favor, leia http://www.mysql.com/doc/en/Upgrade.html"
#, fuzzy
#~ msgid "Install Hints"
#~ msgstr "Dicas de instalação"
#, fuzzy
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "O MySQL será instalado somente caso você possua um nome de host NÃO "
#~ "NUMÉRICO que possa ser resolvido através do arquivo /etc/hosts, ou seja, "
#~ "caso o comando \"hostname\" retorne \"myhostname\", uma linha como "
#~ "\"10.0.0.1 myhostname\" deverá existir no arquivo /etc/hosts."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Um novo usuário MySQL de nome \"debian-sys-maint\" será criado. Essa "
#~ "conta MySQL é utilizada pelos scripts de inicialização/parada e pelos "
#~ "scripts cron. Não remova esse usuário."
#, fuzzy
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Por favor, lembre-se de definir uma SENHA para o usuário root do MySQL ! "
#~ "Caso você utilize um arquivo /root/.my.cnf, sempre inclua as linhas \"user"
#~ "\" e \"password\" nesse arquivo, nunca somente a senha ! Consulte o "
#~ "arquivo /usr/share/doc/mysql-server/README.Debian para mais informações."
#~ msgid ""
#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
#~ "mysql-server package?"
#~ msgstr ""
#~ "Todas as base de dados sob o diretório /var/lib/mysql devem ser removidas "
#~ "quando você remover o pacote pacote mysql-server ?"
#~ msgid ""
#~ "Networking is disabled by default for security reasons. You can enable it "
#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
#~ msgstr ""
#~ "O suporte ao funcionamento em rede está desativado por padrão por "
#~ "questões de segurança. Você poderá ativá-lo comentando a opção 'skip-"
#~ "networking' no arquivo /etc/mysql/my.cnf."
#~ msgid "security and update notice"
#~ msgstr "aviso de segurança e actualização"
#~ msgid ""
#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
#~ "remove everything including the configuration) somewhen? (default is not)"
#~ msgstr ""
#~ "Devo remover tudo abaixo de /var/lib/mysql quando fizer o purge do pacote "
#~ "mysql-server com o comando \"dpkg --purge mysql-server\" (ou seja, "
#~ "remover tudo incluíndo a configuração)? (o padrão é não remover)"
#~ msgid "Make MySQL reachable via network?"
#~ msgstr "Fazer com que o MySQL seja acessível via rede?"
#~ msgid ""
#~ "Should MySQL listen on a network reachable TCP port? This is not "
#~ "necessary for use on a single computer and could be a security problem."
#~ msgstr ""
#~ "O MySQL deve aguardar ligações numa porta TCP acessível via rede? Isto "
#~ "não é necessário para uso num único computador e pode ser um problema de "
#~ "segurança."
#~ msgid "Enable chroot mode?"
#~ msgstr "Activar o modo chroot?"
#~ msgid ""
#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
#~ "that users cannot modify any files outside this directory. This improves "
#~ "resistence against crackers, too, as they are not able to modify system "
#~ "files."
#~ msgstr ""
#~ "O MySQL é capaz de se prender no diretório /var/lib/mysql_jail, assim os "
#~ "utilizadores não poderão modificar ficheiros fora deste directório. Isto "
#~ "aumenta também a resistência contra crackers, pois eles não poderão "
#~ "modificar arquivos de sistema."
#~ msgid "Please run mysql_fix_privilege_tables !"
#~ msgstr "Por favor execute mysql_fix_privilege_tables !"
#~ msgid ""
#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
#~ "other than root and mysql with mysql."
#~ msgstr ""
#~ "Permissões seguras para o diretório /var/lib/mysql serão asseguradas "
#~ "substituíndo GIDs diferentes de root e mysql por mysql."
#~ msgid ""
#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
#~ msgstr ""
#~ "Instruções sobre como activar o suporte de SSL estão disponíveis no "
#~ "directório /usr/share/doc/mysql-server/."
#, fuzzy
#~ msgid "mysql_fix_privileges_tables should be executed"
#~ msgstr "mysql_fix_privileges_tables será executado"
#, fuzzy
#~ msgid ""
#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
#~ "system. To make use of it, some new fields must be added to the tables "
#~ "in the \"mysql\" database. This will not happen automatically."
#~ msgstr ""
#~ "As últimas versões do MySQL possuem um sistema de privilégios melhorado e "
#~ "mais refinado. Para utilizá-lo, alguns novos campos devem ser adicionados "
#~ "as tabelas na base de dados \"mysql\". Isto é feito pelo script "
#~ "mysql_fix_privileges_tables durante esta actualização independente do "
#~ "servidor estar a correr ou não !"
#~ msgid ""
#~ "This script is not supposed to give any user more rights that he had "
#~ "before, if you encounter such a case, please contact me."
#~ msgstr ""
#~ "Este script não deverá fornecer mais direitos a um utilizador além dos "
#~ "quais ele já possua anteriormente. SE encontrar um caso desses, por favor "
#~ "entre em contacto com o mantainer deste pacote Debian."
# Romanian translation of mysql-dfsg.
# Copyright (C) 2006 THE mysql-dfsg'S COPYRIGHT HOLDER
# This file is distributed under the same license as the mysql-dfsg package.
#
# Stan Ioan-Eugen <stan.ieugen@gmail.com>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: po-debconf://mysql-dfsg\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2006-12-20 21:27+0200\n"
"Last-Translator: stan ioan-eugen <stan.ieugen@gmail.com>\n"
"Language-Team: romanian <debian-l10n-romanian@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid "Do you really want to downgrade?"
msgid "Really proceed with downgrade?"
msgstr "Sunteţi sigur că doriţi să instalaţi o versiune mai veche?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid ""
#| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#| "that a mysql-server package with a higher version has been installed "
#| "before. It can not be guaranteed that this version can use its data."
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"AVERTISMENT: Fişierul /var/lib/mysql/debian-*.flag există. Acest lucru "
"indică faptul că anterior a fost instalată o versiune nouă a pachetului "
"mysql-server. Nu se poate garanta că versiunea instalată acum poate folosi "
"datele versiunii instalate anterior."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "Notă importantă pentru utilizatorii NIS/YP!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
#, fuzzy
#| msgid ""
#| "The script is about to remove the data directory /var/lib/mysql. If it is "
#| "planned to just install a higher MySQL version or if a different mysql-"
#| "server package is already using it, the data should be kept."
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Scriptul urmează să şteargă directorul de date /var/lib/mysql. Dacă plănuiţi "
"doar să instalaţi o versiune nouă MySQL sau datele sunt folosite de către un "
"alt pachet mysql-server, atunci ar trebui păstraţi datele."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "Doriţi ca MySQL să pornească la initializarea sistemului?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid ""
#| "The MySQL can start automatically on boot time or only if you manually "
#| "type '/etc/init.d/mysql start'."
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL poate porni automat la iniţializarea sistemului sau doar dacă rulaţi "
"comanda „/etc/init.d/mysql start”."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "New password for the MySQL \"root\" user:"
msgstr "Noua parolă pentru utilizatorul „root” al MySQL:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid ""
#| "It is highly recommended that you set a password for the MySQL "
#| "administrative \"root\" user."
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Este recomandat să stabiliţi o parolă pentru utilizatorul administrativ "
"„root” al MySQL."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Noua parolă pentru utilizatorul „root” al MySQL:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid "Unable to set password for MySQL \"root\" user"
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Nu s-a putut stabili parola pentru utilizatorul „root” al MySQL"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "It seems an error occurred while setting the password for the MySQL "
#| "administrative user. This may have happened because the user already has "
#| "a password, or because there was a problem communicating with the MySQL "
#| "server."
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Se pare că a intervenit o eroare în stabilirea parolei pentru utilizatorul "
"administrativ al MySQL. Acest lucru se poate întâmpla dacă utilizatorul are "
"deja o parolă, sau a existat o problemă în comunicarea cu serverul MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Nu se poate face actualizarea dacă sunt prezente tabele ISAM!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Versiunile recente MySQL nu mai pot folosi vechiul format de tabele ISAM "
#~ "şieste necesar să convertiţi tabelele dumneavoastră de ex. la formatul "
#~ "MyISAM înainte de a face actualizarea folosind comanda "
#~ "„mysql_convert_table_format” sau „ALTER TABLE x ENGINE=MyISAM”. "
#~ "Instalarea mysql-server-5.1 va eşua. În caz că ştergeţiversiunea "
#~ "anterioară mysql-server-4.1 va trebui reinstalată pentru a converti "
#~ "tabelele."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Suportaţi conexiuni MySQL de la staţii ce rulează sistemul Debian „sarge” "
#~ "sau mai vechi?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Modul în care erau păstrate parolele nu era foarte sigur. Acest lucru a "
#~ "fost îmbunătăţitcu dezajantajul că clienţii (de ex. PHP) de pe staţii ce "
#~ "rulează sistemul Debian 3.1 Sargenu se vor putea conecta la conturi noi "
#~ "sau ale căror parole au fost schimbate. Citiţi /usr/share/doc/mysql-"
#~ "server-5.1/README.Debian."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Pentru a folosi mysql trebuie să adăugaţi un utilizator şi grup "
#~ "echivalent şi să vă asiguraţi că /var/lib/mysql are permisiunile "
#~ "stabilite corect (uid/gid pot aveavalori diferite)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd:\tmysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group:\tmysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql:\tdrwxr-xr-x\tmysql\tmysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Doriţi să ştergeţi bazele de date folosite de toate versiune MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Dacă nu introduceţi nici o parolă, nici o schimbare nu va fi luată în "
#~ "considerare."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "După finalizarea instalării, ar trebui să verificaţi dacă contul este "
#~ "protejat cu o parolă (citiţi fişierul README.Debian pentru informaţii "
#~ "suplimentare)."
# translation of mysql-dfsg-5.1_5.0.32-6_ru.po to Russian
# Russian messages:
# Translators, if you are not familiar with the PO format, gettext
# documentation is worth reading, especially sections dedicated to
# this format, e.g. by running:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'#
# Some information specific to po-debconf are available at
# /usr/share/doc/po-debconf/README-trans
# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
# Developers do not need to manually edit POT or PO files.
# Ilgiz Kalmetev <translator@ilgiz.pp.ru>, 2003.
# Yuriy Talakan' <yt@amur.elektra.ru>, 2005, 2006.
# Yuriy Talakan' <yt@drsk.ru>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1_5.0.32-6_ru\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-02-19 11:28+0900\n"
"Last-Translator: Yuriy Talakan' <yt@drsk.ru>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9.1\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid "Do you really want to downgrade?"
msgid "Really proceed with downgrade?"
msgstr "Вы действительно желаете понизить версию?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid ""
#| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#| "that a mysql-server package with a higher version has been installed "
#| "before. It can not be guaranteed that this version can use its data."
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"ВНИМАНИЕ: Найден файл /var/lib/mysql/debian-*.flag. Это означает, что ранее "
"был установлен пакет mysql-server более высокой версии. Невозможно "
"гарантировать, что текущая версия сможет использовать его данные."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "Важное замечание для пользователей NIS/YP!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
#, fuzzy
#| msgid ""
#| "The script is about to remove the data directory /var/lib/mysql. If it is "
#| "planned to just install a higher MySQL version or if a different mysql-"
#| "server package is already using it, the data should be kept."
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Сценарий собирается удалить директорию данных /var/lib/mysql. Если "
"планируется установить новую версию MySQL или есть другие пакеты mysql-"
"server, использующие эту директорию, то данные надо сохранить."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "Запускать MySQL при загрузке системы?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid ""
#| "The MySQL can start automatically on boot time or only if you manually "
#| "type '/etc/init.d/mysql start'."
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL может запускаться при загрузке системы, либо только если вы вручную "
"введете команду '/etc/init.d/mysql start'. "
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "New password for the MySQL \"root\" user:"
msgstr "Новый пароль для MySQL пользователя \"root\":"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid ""
#| "It is highly recommended that you set a password for the MySQL "
#| "administrative \"root\" user."
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Крайне рекомендуется установить пароль для административного MySQL "
"пользователя \"root\"."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Новый пароль для MySQL пользователя \"root\":"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid "Unable to set password for MySQL \"root\" user"
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Невозможно задать пароль MySQL пользователю \"root\""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "It seems an error occurred while setting the password for the MySQL "
#| "administrative user. This may have happened because the user already has "
#| "a password, or because there was a problem communicating with the MySQL "
#| "server."
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"В процессе задания пароля административного MySQL пользователя произошла "
"ошибка. Это могло произойти если у пользователя уже был задан пароль, или "
"из-за проблем соединения с сервером MySQL."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Нужна поддержка подключений к MySQL с машин, работающих под Debian \"sarge"
#~ "\" или старше?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Метод хранения пароля был не очень безопасен. Это было сделано из-за "
#~ "того, клиенты (например, PHP) с машин, работающих под Debian 3.1 Sarge не "
#~ "смогут подключиться к учетной записи если она новая, или пароль был "
#~ "изменен. См. /usr/share/doc/mysql-server-5.1/README.Debian."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Чтобы использовать mysql, Вы должны установить эквивалентные пользователя "
#~ "и группу, как указано ниже и убедиться, что /var/lib/mysql имеет "
#~ "правильные права (uid/gid могут отличаться)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Удалить базы данных, используемые всеми версиями MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr "Если вы не зададите пароль, то учетная запись не будет изменена."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Когда установка завершится, вы должны убедиться, что учетная запись "
#~ "защищена паролем (подробную информацию см. в README.Debian)."
# Translators, if you are not familiar with the PO format, gettext
# documentation is worth reading, especially sections dedicated to
# this format, e.g. by running:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'
# Some information specific to po-debconf are available at
# /usr/share/doc/po-debconf/README-trans
# or http://www.debian.org/intl/l10n/po-debconf/README-trans
# Developers do not need to manually edit POT or PO files.
# , fuzzy
#
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-5.1 5.0.21-3\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2007-02-18 14:48+0100\n"
"Last-Translator: Andreas Henriksson <andreas@fatal.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Swedish\n"
"X-Poedit-Country: SWEDEN\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid "Do you really want to downgrade?"
msgid "Really proceed with downgrade?"
msgstr "Vill du verkligen nedgradera?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
#, fuzzy
#| msgid ""
#| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#| "that a mysql-server package with a higher version has been installed "
#| "before. It can not be guaranteed that this version can use its data."
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
"VARNING: Filen /var/lib/mysql/debian-*.flag existerar. Detta betyder att "
"paketet mysql-server med hgre versionsnummer har installerats tidigare. Det "
"kan inte garanteras att denna version kan anvnda dess data."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "Viktig notering fr NIS/YP-anvndare!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
#, fuzzy
#| msgid ""
#| "The script is about to remove the data directory /var/lib/mysql. If it is "
#| "planned to just install a higher MySQL version or if a different mysql-"
#| "server package is already using it, the data should be kept."
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
"Scriptet kommer strax ta bort data-katalogen /var/lib/mysql. Om det "
"planerade var att bara installera en hgre MySQL-version eller om ett annan "
"mysql-server paket redan anvnde det, skall datan sparas."
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "Ska MySQL startas nr systemet startar upp?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid ""
#| "The MySQL can start automatically on boot time or only if you manually "
#| "type '/etc/init.d/mysql start'."
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL kan startas nr systemet startas upp eller endast om du manuellt "
"skriver '/etc/init.d/mysql start'."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "New password for the MySQL \"root\" user:"
msgstr "Nytt lsenord fr MySQLs \"root\"-anvndare:"
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
#, fuzzy
#| msgid ""
#| "It is highly recommended that you set a password for the MySQL "
#| "administrative \"root\" user."
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
"Det r starkt rekommenderat att du stter ett lsenord fr MySQLs "
"administrativa \"root\"-anvndare."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
#, fuzzy
#| msgid "New password for MySQL \"root\" user:"
msgid "Repeat password for the MySQL \"root\" user:"
msgstr "Nytt lsenord fr MySQLs \"root\"-anvndare:"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid "Unable to set password for MySQL \"root\" user"
msgid "Unable to set password for the MySQL \"root\" user"
msgstr "Lyckades inte stta lsenord fr MySQLs \"root\"-anvndare"
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "It seems an error occurred while setting the password for the MySQL "
#| "administrative user. This may have happened because the user already has "
#| "a password, or because there was a problem communicating with the MySQL "
#| "server."
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
"Det verkar som ett fel uppstod nr det skulle sttas ett lsenord fr MySQLs "
"administrativa anvndare. Detta kan ha skett fr att anvndaren redan har "
"ett lsenord satt, eller p grund av problem med att kommunicera med MySQL-"
"servern."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
#, fuzzy
#| msgid ""
#| "See /usr/share/doc/mysql-server-5.1/README.Debian for more information."
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr "Se /usr/share/doc/mysql-server-5.1/README.Debian fr mer information."
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Kan inte uppgradera om ISAM-tabeller finns!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Senaste versionerna av MySQL kan inte lngre anvnda gamla ISAM-"
#~ "tabellformatet och det r ndvndigt att konvertera dina tabeller till "
#~ "exempelvis MyISAM fre uppgradering med \"mysql_convert_table_format\" "
#~ "eller \"ALTER TABLE x ENGINE=MyISAM\". Installationen av mysql-server-5.1 "
#~ "kommer nu att avbrytas. Om ditt gamla mysql-server-4.1-paket tas bort r "
#~ "det bara att installera om det fr att konvertera de tabellerna."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Behver du MySQL-anslutningar frn system som kr Debian \"Sarge\" eller "
#~ "ldre?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Sttet som lsenorden lagrades p var inte srskilt skert. Detta har "
#~ "frbttrats p bekostnad av att klienter (t.ex. PHP) frn system som kr "
#~ "Debian 3.1 Sarge inte kan ansluta till konton som r nya eller vars "
#~ "lsenord har ndrats. Se /usr/share/doc/mysql-server-5.1/README.Debian."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Fr att anvnda MySQL mste du installera en motsvarande anvndare och "
#~ "grupp till fljande och se till att /var/lib/mysql har korrekta "
#~ "rttigheter satta (uid/gid kan vara olika)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Ta bort databaserna som anvnds av alla MySQL-versioner?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Om du inte anger ett lsenord kommer inga ndringar att gras fr kontot."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Nr installationen r klar, br du kontrollera s att kontot r riktigt "
#~ "skyddat av ett lsenord (ls README.Debian fr mer information)."
#~ msgid "Update Hints"
#~ msgstr "Uppdateringstips"
#~ msgid ""
#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
#~ "corrupted! This script also enhances the privilege tables but is not "
#~ "supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "Du mste kra \"mysql_upgrade\" efter uppgraderingen, annars kan "
#~ "tabellerna vara skadade! Detta skript utkar ven privilegietabellerna "
#~ "men r inte tnkte att ge ngon anvndare mer befogenhet n vad han hade "
#~ "tidigare,"
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Ls ven http://www.mysql.com/doc/en/Upgrade.html"
#~ msgid "Install Hints"
#~ msgstr "Installationstips"
#~ msgid ""
#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
#~ "have manually be restored."
#~ msgstr ""
#~ "Vid uppgraderingar frn MySQL 3.23 som skickades med Debian Woody har "
#~ "symboliska lnkar i /var/lib/mysql eller /var/log/mysql av misstag tagits "
#~ "bort och mste manuellt terskapas."
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "MySQL kan endast installeras om du har ett icke-numeriskt vrdnamn som "
#~ "kan sls upp via filen /etc/hosts. Exempelvis om kommandot \"hostname\" "
#~ "returnerar \"mittnamn\" s br det finnas en rad som liknar \"10.0.0.1 "
#~ "mittnamn\"."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "En ny MySQL-anvndare kallad \"debian-sys-maint\" kommer att skapas. "
#~ "Detta MySQL-konto anvnds fr start/stopp och cron-skript. Ta inte bort "
#~ "det."
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Tnk p att stta ett LSENORD fr MySQL:s root-anvndare! Om du "
#~ "anvnder /root/.my.cnf, skriv d alltid en \"user\"-rad och en \"password"
#~ "\"-rad i den, aldrig med endast lsenordet!"
#~ msgid ""
#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
#~ "by all MySQL versions, not necessarily only the one you are about to "
#~ "purge?"
#~ msgstr ""
#~ "Ska jag ta bort hela katalogtrdet i /var/lib/mysql som anvnds av alla "
#~ "MySQL-versioner och inte bara fr den som du nu kommer att rensa ut?"
#~ msgid ""
#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
#~ "script is not supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "Sllan, exempelvis i nya strre versioner, har behrighetssystemet "
#~ "frbttrats. Fr att anvnda det mste skriptet "
#~ "mysql_fix_privilege_tables kras manuellt. Skriptet r inte tnkt att ge "
#~ "ngon anvndare hgre behrighet n han hade tidigare."
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid "Important note for NIS/YP users"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid "Start the MySQL server on boot?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
msgid "Repeat password for the MySQL \"root\" user:"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
# Turkish translation of mysql-server.
# This file is distributed under the same license as the mysql-server package.
# Gürkan Aslan <gurkan@iaslan.com>, 2004
#
msgid ""
msgstr ""
"Project-Id-Version: mysql-dfsg-4.1\n"
"Report-Msgid-Bugs-To: mysql-dfsg-5.1@packages.debian.org\n"
"POT-Creation-Date: 2009-07-18 08:18+0200\n"
"PO-Revision-Date: 2004-06-05 08:53+0300\n"
"Last-Translator: Gürkan Aslan <gurkan@iaslan.com>\n"
"Language-Team: Turkish <debian-l10n-turkish@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "Really proceed with downgrade?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"Such file is an indication that a mysql-server package with a higher version "
"has been installed earlier."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:2001
msgid ""
"There is no guarantee that the version you're currently installing will be "
"able to use the current databases."
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
#, fuzzy
#| msgid "Important note for NIS/YP users!"
msgid "Important note for NIS/YP users"
msgstr "NIS/YP kullanıcıları için önemli not!"
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"To use MySQL, the following entries for users and groups should be added to "
"the system:"
msgstr ""
#. Type: note
#. Description
#: ../mysql-server-5.1.templates:3001
msgid ""
"You should also check the permissions and the owner of the /var/lib/mysql "
"directory:"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid "Remove all MySQL databases?"
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"The /var/lib/mysql directory which contains the MySQL databases is about to "
"be removed."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:4001
msgid ""
"If you're removing the MySQL package in order to later install a more recent "
"version or if a different mysql-server package is already using it, the data "
"should be kept."
msgstr ""
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
#| msgid "Should MySQL start on boot?"
msgid "Start the MySQL server on boot?"
msgstr "MySQL açılış sırasında başlatılsın mı?"
#. Type: boolean
#. Description
#: ../mysql-server-5.1.templates:5001
#, fuzzy
msgid ""
"The MySQL server can be launched automatically at boot time or manually with "
"the '/etc/init.d/mysql start' command."
msgstr ""
"MySQL açılış sırasında veya '/etc/init.d/mysql start' komutunu vermeniz "
"halinde elle başlatılabilir. Eğer açılışta otomatik olarak başlatılmasını "
"istiyorsanız burada 'evet'i seçin."
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "New password for the MySQL \"root\" user:"
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid ""
"While not mandatory, it is highly recommended that you set a password for "
"the MySQL administrative \"root\" user."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:6001
msgid "If that field is left blank, the password will not be changed."
msgstr ""
#. Type: password
#. Description
#: ../mysql-server-5.1.templates:7001
msgid "Repeat password for the MySQL \"root\" user:"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "Unable to set password for the MySQL \"root\" user"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"An error occurred while setting the password for the MySQL administrative "
"user. This may have happened because the account already has a password, or "
"because of a communication problem with the MySQL server."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid "You should check the account's password after the package installation."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:8001
msgid ""
"Please read the /usr/share/doc/mysql-server-5.1/README.Debian file for more "
"information."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "Password input error"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:9001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid "NDB Cluster seems to be in use"
msgstr ""
#. Type: error
#. Description
#: ../mysql-server-5.1.templates:10001
msgid ""
"MySQL-5.1 has orphaned NDB Cluster support. Please migrate to the new mysql-"
"cluster package and remove all lines starting with \"ndb\" from all config "
"files below /etc/mysql/."
msgstr ""
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Mysql'i kullanmak için aşağıdakiyle eşdeğer bir kullanıcı ve grup "
#~ "tanımlamalı, ve /var/lib/mysql izinlerinin uygun şekilde ayarlandığından "
#~ "emin olmalısınız (uid/gid farklı olabilir)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#, fuzzy
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Lütfen http://www.mysql.com/doc/en/Upgrade.html belgesini okuyun"
#, fuzzy
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "MySQL sadece /etc/hosts dosyası yoluyla çözülebilir NUMERİK OLMAYAN bir "
#~ "makine adına sahipseniz kurulacaktır. Örneğin, eğer \"hostname\" komutu "
#~ "\"makinem\" ismini döndürüyorsa, bu dosya içinde \"10.0.0.1 makinem\" "
#~ "gibi bir satır olmalıdır."
#, fuzzy
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Yeni mysql kullanıcısı \"debian-sys-maint\" yaratılacak. Bu hesap, "
#~ "başlangıç betiklerinde ve cron içinde kullanılıyor. Bu hesabı silmeyin."
#, fuzzy
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Lütfen MySQL root kullanıcısı için bir PAROLA girmeyi unutmayın! Eğer /"
#~ "root/.my.cnf kullanıyorsanız, \"user\" ve \"password\" satırlarını her "
#~ "zaman buraya ekleyin, sadece parolayı değil! Daha fazla bilgi için /usr/"
#~ "share/doc/mysql-server/README.Debian dosyasını okuyun."
#, fuzzy
#~ msgid ""
#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
#~ "mysql-server package?"
#~ msgstr ""
#~ "mysql-server paketi kaldırıldıktan sonra bütün veritabanları silinsin mi?"
#~ msgid ""
#~ "Networking is disabled by default for security reasons. You can enable it "
#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
#~ msgstr ""
#~ "Ağ, öntanımlı olarak güvenlik gerekçeleriyle devre dışı bırakıldı. Bu "
#~ "özelliği /etc/mysql/my.cnf dosyası içindeki \"skip-networking\" "
#~ "seçeneğini kaldırarak etkinleştirebilirsiniz."
#~ msgid "security and update notice"
#~ msgstr "güvenlik ve güncelleme duyurusu"
#~ msgid ""
#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
#~ "remove everything including the configuration) somewhen? (default is not)"
#~ msgstr ""
#~ "mysql-server paketini temizlemek için \"dpkg --purge mysql-server\" "
#~ "komutunu kullandığınızda (yani yapılandırma dahil herşeyi silmek) /var/"
#~ "lib/mysql altındaki herşeyi sileyim mi? (öntanımlı cevap hayır'dır)."
#~ msgid "Please run mysql_fix_privilege_tables !"
#~ msgstr "Lütfen mysql_fix_privilege_tables komutunu çalıştırın!"
#~ msgid ""
#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
#~ "other than root and mysql with mysql."
#~ msgstr ""
#~ "/var/lib/mysql'in izinlerinin güvenli olmasını sağlamak amacıyla, buna "
#~ "ait GID'leri root ve mysql'den farklı olacak şekilde değiştireceğim."
#~ msgid ""
#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
#~ msgstr ""
#~ "SSL desteğini nasıl etkinleştirebileceğinize ilişkin talimatlar /usr/"
#~ "share/doc/mysql-server/ içinde."
#~ msgid "mysql_fix_privileges_tables will be executed"
#~ msgstr "mysql_fix_privileges_tables çalıştırılacak"
#~ msgid ""
#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
#~ "system. To make use of it, some new fields must be added to the tables "
#~ "in the \"mysql\" database. This is done by the "
#~ "mysql_fix_privilege_tables script during this upgrade regardless of if "
#~ "the server is currently running or not!"
#~ msgstr ""
#~ "En son MySQL sürümleri zenginleştirilmiş, daha ayrıntılandırılmış bir "
#~ "ayrıcalık (privilege) sistemine sahiptir. Yeni sistemi kullanmak için, "
#~ "\"mysql\" veritabanındaki tablolara bazı yeni alanlar eklenmelidir. Bu "
#~ "işlem, sunucunun çalışıp çalışmamasına bağlı olmaksızın "
#~ "mysql_fix_privilege_tables betiği tarafından bu yükseltme sırasında "
#~ "yapılır."
#~ msgid ""
#~ "This script is not supposed to give any user more rights that he had "
#~ "before, if you encounter such a case, please contact me."
#~ msgstr ""
#~ "Bu betiğin hiç bir kullanıcıya öncekinden daha fazla hak kazandırmadığı "
#~ "varsayılıyor. Eğer bunun aksinde bir durumla karşılaşırsanız, lütfen "
#~ "benimle bağlantıya geçin."
#~ msgid "Make MySQL reachable via network?"
#~ msgstr "MySQL network üzerinden ulaşılabilir olsun mu?"
#~ msgid ""
#~ "Should MySQL listen on a network reachable TCP port? This is not "
#~ "necessary for use on a single computer and could be a security problem."
#~ msgstr ""
#~ "MySQL ağ üzerinde ulaşılabilen bir TCP portunu dinlesin mi? Tek olan bir "
#~ "bilgisayar için bu ayar gerekli değildir ve bir güvenlik sorunu "
#~ "oluşturabilir."
#~ msgid "Enable chroot mode?"
#~ msgstr "chroot kipi etkinleştirilsin mi?"
#~ msgid ""
#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
#~ "that users cannot modify any files outside this directory. This improves "
#~ "resistence against crackers, too, as they are not able to modify system "
#~ "files."
#~ msgstr ""
#~ "MySQL kendini /var/lib/mysql_jail dizinine hapsederek kullanıcıların bu "
#~ "dizin dışındaki hiç bir dosyayı değiştirmemesini sağlayabilir. Bu "
#~ "düzenleme, sistem dosyalarını değiştirmelerini engelleyeceğinden, "
#~ "cracker'lara karşı dayanıklılığı arttırır."
#!/usr/bin/make -f
export DH_VERBOSE=1
PACKAGE=mysql-dfsg-5.1
include /usr/share/dpatch/dpatch.make
TMP=$(CURDIR)/debian/tmp/
ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
ARCH_OS = $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEBVERSION = $(shell dpkg-parsechangelog | awk '/^Version: / { print $$2 }' | sed 's/^.*-//' )
DEB_SOURCE_PACKAGE ?= $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':'))
DEB_VERSION ?= $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
DEB_NOEPOCH_VERSION ?= $(shell echo $(DEB_VERSION) | cut -d: -f2-)
DEB_UPSTREAM_VERSION ?= $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//')
DEB_UPSTREAM_VERSION_MAJOR_MINOR := $(shell echo $(DEB_UPSTREAM_VERSION) | sed -r -n 's/^([0-9]+\.[0-9]+).*/\1/p')
DISTRIBUTION = $(shell echo "MySQL Community Server (GPL), XtraDB $(BB_PERCONA_VERSION), Revision $(BB_PERCONA_REVISION)")
MAKE_J = -j$(shell if [ -f /proc/cpuinfo ] ; then grep -c processor.* /proc/cpuinfo ; else echo 1 ; fi)
ifeq (${MAKE_J}, -j0)
MAKE_J = -j1
endif
MAKE_TEST_TARGET=test-force
ifneq ($(findstring $(DEB_BUILD_OPTIONS),fulltest),)
# make test-bt is the testsuite run by the MySQL build team
# before a release, but it is long
MAKE_TEST_TARGET=test-bt
endif
USE_ASSEMBLER=--enable-assembler
#ifneq ($(findstring $(ARCH), alpha amd64 arm armel ia64 i386 hppa mipsel powerpc s390 sparc),)
# TESTSUITE_FAIL_CMD=true
#else
TESTSUITE_FAIL_CMD=exit 1
#endif
# This causes seg11 crashes if LDAP is used for groups in /etc/nsswitch.conf
# so it is disabled by default although, according to MySQL, it brings >10%
# performance gain if enabled. See #299382.
ifeq ($(STATIC_MYSQLD), 1)
USE_STATIC_MYSQLD=--with-mysqld-ldflags=-all-static
endif
configure: patch configure-stamp
configure-stamp:
@echo "RULES.configure-stamp"
dh_testdir
ifneq ($(ARCH_OS),hurd)
if [ ! -d /proc/self ]; then echo "/proc IS NEEDED" 1>&2; exit 1; fi
endif
sh -c 'PATH=$${MYSQL_BUILD_PATH:-"/bin:/usr/bin"} \
CC=$${MYSQL_BUILD_CC:-gcc} \
CFLAGS=$${MYSQL_BUILD_CFLAGS:-"-O3 -DBIG_JOINS=1 ${FORCE_FPIC_CFLAGS}"} \
CXX=$${MYSQL_BUILD_CXX:-g++} \
CXXFLAGS=$${MYSQL_BUILD_CXXFLAGS:-"-O3 -DBIG_JOINS=1 -felide-constructors -fno-exceptions -fno-rtti ${FORCE_FPIC_CFLAGS}"} \
./configure \
--build=${DEB_BUILD_GNU_TYPE} \
--host=${DEB_HOST_GNU_TYPE} \
\
--prefix=/usr \
--exec-prefix=/usr \
--libexecdir=/usr/sbin \
--datadir=/usr/share \
--localstatedir=/var/lib/mysql \
--includedir=/usr/include \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
\
--with-server-suffix="-$(DEBVERSION)" \
--with-comment="($(DISTRIBUTION))" \
--with-system-type="debian-linux-gnu" \
\
--enable-shared \
--enable-static \
--enable-thread-safe-client \
$(USE_ASSEMBLER) \
--enable-local-infile \
$(FORCE_FPIC) \
--with-fast-mutexes \
--with-big-tables \
--with-unix-socket-path=/var/run/mysqld/mysqld.sock \
--with-mysqld-user=mysql \
--with-libwrap \
$(USE_STATIC_MYSQLD) \
--with-ssl \
--without-docs \
--with-extra-charsets=all \
--with-plugins=max-no-ndb \
\
--without-embedded-server \
--with-embedded-privilege-control'
# --sysconfdir=/etc/mysql -- Appends /etc/mysql after ~/ in the my.cnf search patch!
#
# --with-debug
touch configure-stamp
build: build-stamp
build-stamp: configure
dh_testdir
$(MAKE) $(MAKE_J)
ifeq ($(findstring $(DEB_BUILD_OPTIONS),nocheck),)
if [ ! -f testsuite-stamp ] ; then \
$(MAKE) $(MAKE_TEST_TARGET) || $(TESTSUITE_FAIL_CMD) ; \
fi
endif
touch testsuite-stamp
touch build-stamp
clean: clean-patched unpatch
rm -rf debian/patched
clean-patched:
@echo "RULES.clean-patched"
dh_testdir
dh_testroot
rm -f configure-stamp
rm -f build-stamp
rm -f testsuite-stamp
[ ! -f Makefile ] || $(MAKE) clean
[ ! -d mysql-test/var ] || rm -rf mysql-test/var
# We like to see how long this is neccessary
@echo "CRUFT BEGIN"
@find -type l -print0 | xargs --no-run-if-empty -0 rm -v
@find -name .deps -type d -print0 | xargs --no-run-if-empty -0 rm -rfv
@rm -vrf ndb/docs/.doxy* ndb/docs/*html ndb/docs/*pdf innobase/autom4te.cache
@for i in \
readline/Makefile \
sql-bench/Makefile \
scripts/make_win_binary_distribution \
scripts/mysqlbug \
sql/gen_lex_hash \
sql/lex_hash.h \
strings/ctype_autoconf.c \
config.log \
config.cache \
; \
do \
rm -vf $$i; \
done
@echo "CRUFT END"
debconf-updatepo
dh_clean -v
install:
install: build
@echo "RULES.install"
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# some self written manpages which hopefully
# gets overwritten sooner or later with upstreams
mkdir -p $(TMP)/usr/share/man/man1/
mkdir -p $(TMP)/usr/share/man/man8/
cp debian/additions/*.1 $(TMP)/usr/share/man/man1/
mkdir -p $(TMP)/etc/mysql/conf.d/
cp debian/additions/mysqld_safe_syslog.cnf $(TMP)/etc/mysql/conf.d/
ln -s mysqlmanager.1 $(TMP)/usr/share/man/man1/mysqlmanager-pwgen.1
ln -s mysqlmanager.1 $(TMP)/usr/share/man/man1/mysqlmanagerc.1
# make install (trailing slash needed for innobase)
$(MAKE) install DESTDIR=$(TMP)/
# After installing, remove rpath to make lintian happy.
set +e; \
find ./debian/tmp/ -type f -print0 \
| xargs -0 --no-run-if-empty chrpath -k 2>/dev/null \
| fgrep RPATH= \
| cut -d: -f 1 \
| xargs --no-run-if-empty chrpath -d; \
set -e
# libmysqlclient: move shared libraries (but not the rest like libheap.a & co)
mv $(TMP)/usr/lib/mysql/libmysqlclient* $(TMP)/usr/lib
perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libmysqlclient.la
perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libmysqlclient_r.la
# Check if our beloved versioned symbols are really there
if [ "`objdump -T $(TMP)/usr/lib/libmysqlclient.so.16.0.0 | grep -c libmysqlclient_16`" -lt 500 ]; then \
echo "ERROR: versioned symbols are absent"; \
exit 1; \
fi
# libmysqlclient-dev: forgotten header file since 3.23.25?
cp include/my_config.h $(TMP)/usr/include/mysql/
cp include/my_dir.h $(TMP)/usr/include/mysql/
# mysql-common: We now provide our own config file.
install -d $(TMP)/etc/mysql
install -m 0644 debian/additions/my.cnf $(TMP)/etc/mysql/my.cnf
# mysql-client
install -m 0755 debian/additions/mysqlreport $(TMP)/usr/bin/
install -m 0755 debian/additions/innotop/innotop $(TMP)/usr/bin/
install -m 0644 debian/additions/innotop/innotop.1 $(TMP)/usr/share/man/man1/
install -m 0644 -D debian/additions/innotop/InnoDBParser.pm $(TMP)/usr/share/perl5/InnoDBParser.pm
# mysql-server
install -m 0755 scripts/mysqld_safe $(TMP)/usr/bin/mysqld_safe
mkdir -p $(TMP)/usr/share/doc/mysql-server-5.1/examples
mv $(TMP)/usr/share/mysql/*cnf $(TMP)/usr/share/doc/mysql-server-5.1/examples/
rm -vf $(TMP)/usr/share/mysql/mi_test_all* \
$(TMP)/usr/share/mysql/mysql-log-rotate \
$(TMP)/usr/share/mysql/mysql.server \
$(TMP)/usr/share/mysql/binary-configure
nm -n sql/mysqld |gzip -9 > $(TMP)/usr/share/doc/mysql-server-5.1/mysqld.sym.gz
install -m 0755 debian/additions/echo_stderr $(TMP)/usr/share/mysql/
install -m 0755 debian/additions/debian-start $(TMP)/etc/mysql/
install -m 0755 debian/additions/debian-start.inc.sh $(TMP)/usr/share/mysql/
# lintian overrides
mkdir -p $(TMP)/usr/share/lintian/overrides/
cp debian/mysql-common.lintian-overrides $(TMP)/usr/share/lintian/overrides/mysql-common
cp debian/mysql-server-5.1.lintian-overrides $(TMP)/usr/share/lintian/overrides/mysql-server-5.1
cp debian/mysql-client-5.1.lintian-overrides $(TMP)/usr/share/lintian/overrides/mysql-client-5.1
# For 5.0 -> 5.1 transition
d=$(TMP)/usr/share/mysql-common/internal-use-only/; \
mkdir -p $$d; \
cp debian/mysql-server-5.1.mysql.init $$d/_etc_init.d_mysql; \
cp debian/mysql-server-5.1.mysql-server.logrotate $$d/_etc_logrotate.d_mysql-server; \
cp debian/additions/debian-start $$d/_etc_mysql_debian-start;
dh_movefiles
# Build architecture-independent files here.
binary-indep: build install
@echo "RULES.binary-indep"
dh_testdir -i
dh_testroot -i
dh_installdebconf -i
dh_installdocs -i
dh_installexamples -i
dh_installmenu -i
dh_installlogrotate -i
dh_installinit -i
dh_installcron -i
dh_installman -i
dh_installinfo -i
dh_installlogcheck -i
dh_installchangelogs -i
dh_link -i
dh_compress -i
dh_fixperms -i
dh_installdeb -i
dh_perl -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
# Build architecture-dependent files here.
binary-arch: build install
@echo "RULES.binary-arch"
dh_testdir
dh_testroot
dh_installdebconf -a
dh_installdocs -a
dh_installexamples -a
dh_installmenu -a
dh_installlogrotate -a --name mysql-server
# Start mysql in runlevel 19 before 20 where apache, proftpd etc gets
# started which might depend on a running database server.
dh_installinit -a --name=mysql -- defaults 19 21
dh_installcron -a --name mysql-server
dh_installman -a
dh_installinfo -a
dh_installlogcheck -a
dh_installchangelogs -a
dh_strip -a
dh_link -a # .so muss nach .so.1.2.3 installier werden!
dh_compress -a
dh_fixperms -a
dh_makeshlibs -a
dh_makeshlibs -plibmysqlclient16 -V'libmysqlclient16 (>= 5.1.21-1)'
dh_installdeb -a
dh_perl -a
dh_shlibdeps -a -l debian/libmysqlclient16/usr/lib -L libmysqlclient16
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
binary: binary-indep binary-arch
get-orig-source:
@wget -nv -T10 -t3 \
-O /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz \
http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-$(DEB_UPSTREAM_VERSION_MAJOR_MINOR)/mysql-$(DEB_UPSTREAM_VERSION).tar.gz
@tar xfz /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz -C /tmp
@rm -rf /tmp/mysql-$(DEB_UPSTREAM_VERSION)/Docs
@rm -rf /tmp/mysql-$(DEB_UPSTREAM_VERSION)/debian
@mv /tmp/mysql-$(DEB_UPSTREAM_VERSION) /tmp/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig
@cd /tmp ; tar czf $(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig
@rm -f /tmp/mysql-$(DEB_UPSTREAM_VERSION).tar.gz
@rm -rf /tmp/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig
.PHONY: clean clean-patched configure build binary binary-indep binary-arch install patch unpatch
# vim: ts=8
maintainer-script-lacks-debhelper-token debian/mysql-server-5.1.postinst
maintainer-script-lacks-debhelper-token debian/mysql-server-5.1.postrm
version=3
opts="uversionmangle=s/-(rc|beta)/$1/" \
ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/www.mysql.com/Downloads/MySQL-5.1/mysql-([\d\.]*(?:-beta|-rc)?).tar.gz debian
#############################################################################
#
# This is the spec file for the distribution specific RPM files
#
##############################################################################
##############################################################################
# Some common macro definitions
##############################################################################
# Required arguments
# mysqlversion - e.g. 5.1.37
# pluginversion - Version of InnoDB plugin taken as the basis, e.g. 1.0.3
# redhatversion - 5 or 4
# xtradbversion - The XtraDB release, eg. 6
# gotrevision - bzr revision of the sources the package is built of
%define mysql_vendor Percona, Inc
%{!?redhatversion:%define redhatversion 5}
%define distribution rhel%{redhatversion}
%define release %{xtradbversion}.%{distribution}
%define mysqld_user mysql
%define mysqld_group mysql
%define mysqldatadir /var/lib/mysql
%define see_base For a description of MySQL see the base MySQL RPM or http://www.mysql.com
# ------------------------------------------------------------------------------
# Meta information, don't remove!
# ------------------------------------------------------------------------------
# norootforbuild
# ------------------------------------------------------------------------------
# On SuSE 9 no separate "debuginfo" package is built. To enable basic
# debugging on that platform, we don't strip binaries on SuSE 9. We
# disable the strip of binaries by redefining the RPM macro
# "__os_install_post" leaving out the script calls that normally does
# this. We do this in all cases, as on platforms where "debuginfo" is
# created, a script "find-debuginfo.sh" will be called that will do
# the strip anyway, part of separating the executable and debug
# information into separate files put into separate packages.
#
# Some references (shows more advanced conditional usage):
# http://www.redhat.com/archives/rpm-list/2001-November/msg00257.html
# http://www.redhat.com/archives/rpm-list/2003-February/msg00275.html
# http://www.redhat.com/archives/rhl-devel-list/2004-January/msg01546.html
# http://lists.opensuse.org/archive/opensuse-commit/2006-May/1171.html
# ------------------------------------------------------------------------------
%define __os_install_post /usr/lib/rpm/brp-compress
# ------------------------------------------------------------------------------
# We don't package all files installed into the build root by intention -
# See BUG#998 for details.
# ------------------------------------------------------------------------------
%define _unpackaged_files_terminate_build 0
# ------------------------------------------------------------------------------
# RPM build tools now automatically detects Perl module dependencies. This
# detection gives problems as it is broken in some versions, and it also
# give unwanted dependencies from mandatory scripts in our package.
# Might not be possible to disable in all RPM tool versions, but here we
# try. We keep the "AutoReqProv: no" for the "test" sub package, as disabling
# here might fail, and that package has the most problems.
# See http://fedoraproject.org/wiki/Packaging/Perl#Filtering_Requires:_and_Provides
# http://www.wideopen.com/archives/rpm-list/2002-October/msg00343.html
# ------------------------------------------------------------------------------
%undefine __perl_provides
%undefine __perl_requires
##############################################################################
# Command line handling
##############################################################################
# ----------------------------------------------------------------------
# use "rpmbuild --with yassl" or "rpm --define '_with_yassl 1'" (for RPM 3.x)
# to build with yaSSL support (off by default)
# ----------------------------------------------------------------------
%{?_with_yassl:%define YASSL_BUILD 1}
%{!?_with_yassl:%define YASSL_BUILD 0}
# ----------------------------------------------------------------------
# use "rpmbuild --without libgcc" or "rpm --define '_without_libgcc 1'" (for RPM 3.x)
# to include libgcc (as libmygcc) (on by default)
# ----------------------------------------------------------------------
%{!?_with_libgcc: %{!?_without_libgcc: %define WITH_LIBGCC 1}}
%{?_with_libgcc:%define WITH_LIBGCC 1}
%{?_without_libgcc:%define WITH_LIBGCC 0}
# On SuSE 9 no separate "debuginfo" package is built. To enable basic
# debugging on that platform, we don't strip binaries on SuSE 9. We
# disable the strip of binaries by redefining the RPM macro
# "__os_install_post" leaving out the script calls that normally does
# this. We do this in all cases, as on platforms where "debuginfo" is
# created, a script "find-debuginfo.sh" will be called that will do
# the strip anyway, part of separating the executable and debug
# information into separate files put into separate packages.
#
# Some references (shows more advanced conditional usage):
# http://www.redhat.com/archives/rpm-list/2001-November/msg00257.html
# http://www.redhat.com/archives/rpm-list/2003-February/msg00275.html
# http://www.redhat.com/archives/rhl-devel-list/2004-January/msg01546.html
# http://lists.opensuse.org/archive/opensuse-commit/2006-May/1171.html
%define __os_install_post /usr/lib/rpm/brp-compress
%define server_suffix -percona
%define package_suffix -percona
%define ndbug_comment MySQL Community Server (GPL), XtraDB %{xtradbversion}, Revision %{gotrevision}
%define debug_comment MySQL Community Server - Debug (GPL), XtraDB %{xtradbversion}, Revision %{gotrevision}
%define commercial 0
%define EMBEDDED_BUILD 0
%define PARTITION_BUILD 1
%define CLUSTER_BUILD 0
%define COMMUNITY_BUILD 1
%define INNODB_BUILD 1
%define PERCONA_PLUGIN_BUILD 1
%define MARIA_BUILD 0
%define NORMAL_TEST_MODE test-bt
%define DEBUG_TEST_MODE test-bt-debug
%define BUILD_DEBUG 0
%if %{COMMUNITY_BUILD}
%define cluster_package_prefix -cluster
%else
%define cluster_package_prefix -
%endif
%define lic_type GNU GPL v2
%define lic_files COPYING README
%define src_dir mysql-%{mysqlversion}
Source1: percona-xtradb-%{pluginversion}-%{xtradbversion}.tar.gz
Patch1: percona-support.patch
%define perconaxtradbplugin percona-xtradb-%{pluginversion}-%{xtradbversion}.tar.gz
##############################################################################
# Main spec file section
##############################################################################
Name: MySQL%{package_suffix}
Summary: MySQL: a very fast and reliable SQL database server
Group: Applications/Databases
Version: %{mysqlversion}
Release: %{release}
Distribution: Red Hat Enterprise Linux %{redhatversion}
License: Copyright 2000-2008 MySQL AB, 2008 %{mysql_vendor} All rights reserved. Use is subject to license terms. Under %{lic_type} license as shown in the Description field.
Source: %{src_dir}.tar.gz
URL: http://www.percona.com/
Packager: %{mysql_vendor} MySQL Development Team <mysql-dev@percona.com>
Vendor: %{mysql_vendor}
Provides: msqlormysql MySQL-server mysql
BuildRequires: gperf perl readline-devel gcc-c++ ncurses-devel zlib-devel libtool automake autoconf time ccache
# Think about what you use here since the first step is to
# run a rm -rf
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# From the manual
%description
The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
and robust SQL (Structured Query Language) database server. MySQL Server
is intended for mission-critical, heavy-load production systems as well
as for embedding into mass-deployed software. MySQL is a trademark of
%{mysql_vendor}
The MySQL software has Dual Licensing, which means you can use the MySQL
software free of charge under the GNU General Public License
(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
licenses from %{mysql_vendor} if you do not wish to be bound by the terms of
the GPL. See the chapter "Licensing and Support" in the manual for
further info.
The MySQL web site (http://www.mysql.com/) provides the latest
news and information about the MySQL software. Also please see the
documentation and the manual for more information.
##############################################################################
# Sub package definition
##############################################################################
%package -n MySQL-server%{package_suffix}
Summary: %{ndbug_comment} for Red Hat Enterprise Linux %{redhatversion}
Group: Applications/Databases
Requires: chkconfig coreutils shadow-utils grep procps
Provides: msqlormysql mysql-server mysql MySQL MySQL-server
Obsoletes: MySQL mysql mysql-server MySQL-server MySQL-server-community
%description -n MySQL-server%{package_suffix}
The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
and robust SQL (Structured Query Language) database server. MySQL Server
is intended for mission-critical, heavy-load production systems as well
as for embedding into mass-deployed software. MySQL is a trademark of
%{mysql_vendor}
The MySQL software has Dual Licensing, which means you can use the MySQL
software free of charge under the GNU General Public License
(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
licenses from %{mysql_vendor} if you do not wish to be bound by the terms of
the GPL. See the chapter "Licensing and Support" in the manual for
further info.
The MySQL web site (http://www.mysql.com/) provides the latest
news and information about the MySQL software. Also please see the
documentation and the manual for more information.
For commercial support please contact Percona at http://www.percona.com/contacts.html
This package includes the MySQL server binary
%if %{INNODB_BUILD}
(configured including InnoDB)
%endif
as well as related utilities to run and administer a MySQL server.
If you want to access and work with the database, you have to install
package "MySQL-client%{package_suffix}" as well!
# ------------------------------------------------------------------------------
%package -n MySQL-client%{package_suffix}
Summary: MySQL - Client
Group: Applications/Databases
Obsoletes: mysql-client MySQL-client MySQL-client-community
Provides: mysql-client MySQL-client
%description -n MySQL-client%{package_suffix}
This package contains the standard MySQL clients and administration tools.
%{see_base}
# ------------------------------------------------------------------------------
%package -n MySQL-test%{package_suffix}
Requires: mysql-client perl
Summary: MySQL - Test suite
Group: Applications/Databases
Provides: mysql-test MySQL-test
Obsoletes: mysql-test MySQL-test MySQL-test-community
AutoReqProv: no
%description -n MySQL-test%{package_suffix}
This package contains the MySQL regression test suite.
%{see_base}
# ------------------------------------------------------------------------------
%package -n MySQL-devel%{package_suffix}
Summary: MySQL - Development header files and libraries
Group: Applications/Databases
Provides: mysql-devel MySQL-devel
Obsoletes: mysql-devel MySQL-devel MySQL-devel-community
%description -n MySQL-devel%{package_suffix}
This package contains the development header files and libraries
necessary to develop MySQL client applications.
%{see_base}
# ------------------------------------------------------------------------------
%package -n MySQL-shared%{package_suffix}
Summary: MySQL - Shared libraries
Group: Applications/Databases
Provides: mysql-shared MySQL-shared
# Obsoletes below to correct old missing Provides:/Obsoletes
Obsoletes: mysql-shared MySQL-shared-standard MySQL-shared-pro
Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl
Obsoletes: MySQL-shared-pro-gpl-cert MySQL-shared MySQL-shared-community
%description -n MySQL-shared%{package_suffix}
This package contains the shared libraries (*.so*) which certain
languages and applications need to dynamically load and use MySQL.
# ------------------------------------------------------------------------------
%if %{EMBEDDED_BUILD}
%package -n MySQL-embedded%{package_suffix}
Requires: mysql-devel
Summary: MySQL - Embedded library
Group: Applications/Databases
Provides: mysql-embedded MySQL-embedded
Obsoletes: mysql-embedded MySQL-embedded
Obsoletes: MySQL-embedded-classic MySQL-embedded-pro MySQL-embedded-community
%description -n MySQL-embedded%{package_suffix}
This package contains the MySQL server as an embedded library.
The embedded MySQL server library makes it possible to run a
full-featured MySQL server inside the client application.
The main benefits are increased speed and more simple management
for embedded applications.
The API is identical for the embedded MySQL version and the
client/server version.
%endif
%if %{PERCONA_PLUGIN_BUILD}
%package -n Percona-XtraDB-%{pluginversion}-%{xtradbversion}
Requires: mysql-devel
Summary: Percona XtraDB Storage engine for MySQL
Group: Applications/Databases
Provides: percona-xtradb-plugin Percona-XtraDB-plugin
Obsoletes: percona-xtradb-plugin Percona-XtraDB-plugin
%description -n Percona-XtraDB-%{pluginversion}-%{xtradbversion}
This package contains the Percona-XtraDB storage engine for MySQL server.
An enhanced version of the InnoDB storage engine, including all
of InnoDB's robust, reliable ACID-compliant design and advanced
MVCC architecture, and builds on that solid foundation with more
features, more tunability, more metrics, and more scalability.
In particular, it is designed to scale better on many cores,
to use memory more efficiently, and to be more convenient and useful.
The new features are especially designed to reduce the need for
awkward workarounds to many of InnoDB's limitations. We choose
features and fixes based on customer requests and on our best
judgment as a high-performance consulting company.
%endif
##############################################################################
#
##############################################################################
%prep
%setup -n %{src_dir}
if [ "%{redhatversion}" = "5" ] ; then
tar xfz $RPM_SOURCE_DIR/%{perconaxtradbplugin} -C storage/innobase --strip-components=1
else
tar xfz $RPM_SOURCE_DIR/%{perconaxtradbplugin} -C storage/innobase --strip-path=1
fi
%patch1 -p1
cd storage/innobase && bash -x ./setup.sh
##############################################################################
# The actual build
##############################################################################
%build
BuildMySQL() {
# Get flags from environment. RPM_OPT_FLAGS seems not to be set anywhere.
CFLAGS=${CFLAGS:-$RPM_OPT_FLAGS}
CXXFLAGS=${CXXFLAGS:-$RPM_OPT_FLAGS}
# Evaluate current setting of $DEBUG
if [ $DEBUG -gt 0 ] ; then
OPT_COMMENT='--with-comment="%{debug_comment}"'
OPT_DEBUG='--with-debug'
CFLAGS=`echo " $CFLAGS " | \
sed -e 's/ -O[0-9]* / /' -e 's/ -unroll2 / /' -e 's/ -ip / /' \
-e 's/^ //' -e 's/ $//'`
CXXFLAGS=`echo " $CXXFLAGS " | \
sed -e 's/ -O[0-9]* / /' -e 's/ -unroll2 / /' -e 's/ -ip / /' \
-e 's/^ //' -e 's/ $//'`
else
OPT_COMMENT='--with-comment="%{ndbug_comment}"'
OPT_DEBUG=''
fi
echo "BUILD =================="
echo $*
# The --enable-assembler simply does nothing on systems that does not
# support assembler speedups.
sh -c "CFLAGS=\"$CFLAGS\" \
CXXFLAGS=\"$CXXFLAGS\" \
AM_CPPFLAGS=\"$AM_CPPFLAGS\" \
LDFLAGS=\"$LDFLAGS\" \
./configure \
$* \
--enable-assembler \
--enable-local-infile \
--with-mysqld-user=%{mysqld_user} \
--with-unix-socket-path=/var/lib/mysql/mysql.sock \
--with-pic \
--prefix=/ \
%if %{CLUSTER_BUILD}
--with-extra-charsets=all \
%else
--with-extra-charsets=complex \
%endif
%if %{YASSL_BUILD}
--with-ssl \
%else
--without-ssl \
%endif
--exec-prefix=%{_exec_prefix} \
--libexecdir=%{_sbindir} \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir} \
--datadir=%{_datadir} \
--localstatedir=%{mysqldatadir} \
--infodir=%{_infodir} \
--includedir=%{_includedir} \
--mandir=%{_mandir} \
--enable-thread-safe-client \
%if %{?ndbug_comment:1}0
$OPT_COMMENT \
%endif
$OPT_DEBUG \
%if %{commercial}
--with-libedit \
%else
--with-readline \
%endif
; make "
}
# end of function definition "BuildMySQL"
BuildServer() {
BuildMySQL "--enable-shared \
%if %{?server_suffix:1}0
--with-server-suffix='%{server_suffix}' \
%endif
%if %{CLUSTER_BUILD}
--with-plugin-ndbcluster \
%else
--without-plugin-ndbcluster \
%endif
%if %{MARIA_BUILD}
--with-plugin-maria \
--with-maria-tmp-tables \
%else
--without-plugin-maria \
%endif
%if %{INNODB_BUILD}
--with-plugin-innobase \
--without-plugin-innodb_plugin \
%else
--without-plugin-innobase \
--without-plugin-innodb_plugin \
%endif
%if %{PARTITION_BUILD}
--with-plugin-partition \
%else
--without-plugin-partition \
%endif
--with-plugin-csv \
--with-plugin-archive \
--with-plugin-blackhole \
--with-plugin-federated \
%if %{EMBEDDED_BUILD}
--with-embedded-server \
%else
--without-embedded-server \
%endif
--without-bench \
--with-zlib-dir=bundled \
--with-big-tables"
if [ -n "$MYSQL_CONFLOG_DEST" ] ; then
cp -fp config.log "$MYSQL_CONFLOG_DEST"
fi
#if [ -f sql/.libs/mysqld ] ; then
# nm --numeric-sort sql/.libs/mysqld > sql/mysqld.sym
#else
# nm --numeric-sort sql/mysqld > sql/mysqld.sym
#fi
}
# end of function definition "BuildServer"
RBR=$RPM_BUILD_ROOT
MBD=$RPM_BUILD_DIR/%{src_dir}
# Clean up the BuildRoot first
[ "$RBR" != "/" ] && [ -d $RBR ] && rm -rf $RBR;
mkdir -p $RBR%{_libdir}/mysql $RBR%{_sbindir}
# Use gcc for C and C++ code (to avoid a dependency on libstdc++ and
# including exceptions into the code
if [ -z "$CXX" -a -z "$CC" ] ; then
export CC="gcc" CXX="gcc"
fi
if [ "%{redhatversion}" = "5" ] ; then
export CFLAGS="-static-libgcc -O2 -fno-omit-frame-pointer -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -mtune=generic"
export CXXFLAGS="-static-libgcc -O2 -fno-omit-frame-pointer -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -mtune=generic"
fi
if [ "%{redhatversion}" != "5" ] ; then
export CFLAGS="-static-libgcc -O2 -g -fno-omit-frame-pointer -pipe "
export CXXFLAGS="-static-libgcc -O2 -g -fno-omit-frame-pointer -pipe "
fi
# Create the shared libs seperately to avoid a dependency for the client utilities
DEBUG=0
BuildMySQL "--enable-shared"
# Install shared libraries
cp -av libmysql/.libs/*.so* $RBR/%{_libdir}
cp -av libmysql_r/.libs/*.so* $RBR/%{_libdir}
mkdir -p $RBR%{_libdir}/mysql/plugin
cp -av storage/innobase/.libs/*.so* $RBR%{_libdir}/mysql/plugin
cp -av storage/innobase/scripts/install_innodb_plugins.sql $RBR%{_libdir}/mysql/plugin
pushd $RBR%{_libdir}/mysql
tar cfz percona-xtradb-%{pluginversion}-%{xtradbversion}-%{mysqlversion}.$RPM_ARCH.tar.gz plugin
mv percona-xtradb-%{pluginversion}-%{xtradbversion}-%{mysqlversion}.$RPM_ARCH.tar.gz %{_topdir}
popd
##############################################################################
# Include libgcc.a in the devel subpackage (BUG 4921)
%if %{WITH_LIBGCC}
libgcc=`$CC $CFLAGS --print-libgcc-file`
install -m 644 "$libgcc" $RBR%{_libdir}/mysql/libmygcc.a
%endif
##############################################################################
# Now create a debug server
%if %{BUILD_DEBUG}
DEBUG=1
make clean
( BuildServer ) # subshell, so that CFLAGS + CXXFLAGS are modified only locally
if [ "$MYSQL_RPMBUILD_TEST" != "no" ] ; then
MTR_BUILD_THREAD=auto make %{DEBUG_TEST_MODE}
fi
# Get the debug server and its .sym file from the build tree
#if [ -f sql/.libs/mysqld ] ; then
# cp sql/.libs/mysqld $RBR%{_sbindir}/mysqld-debug
#else
# cp sql/mysqld $RBR%{_sbindir}/mysqld-debug
#fi
#cp libmysqld/libmysqld.a $RBR%{_libdir}/mysql/libmysqld-debug.a
#cp sql/mysqld.sym $RBR%{_libdir}/mysql/mysqld-debug.sym
%endif
# Now, the default server
DEBUG=0
make clean
BuildServer
if [ "$MYSQL_RPMBUILD_TEST" != "no" ] ; then
MTR_BUILD_THREAD=auto make %{NORMAL_TEST_MODE}
fi
# Now, build plugin
#BUILDSO=0
#make clean
#BuildServer
#if [ "$MYSQL_RPMBUILD_TEST" != "no" ] ; then
# MTR_BUILD_THREAD=auto make %{NORMAL_TEST_MODE}
#fi
%install
RBR=$RPM_BUILD_ROOT
MBD=$RPM_BUILD_DIR/%{src_dir}
# Ensure that needed directories exists
install -d $RBR%{_sysconfdir}/{logrotate.d,init.d}
install -d $RBR%{mysqldatadir}/mysql
install -d $RBR%{_datadir}/mysql-test
install -d $RBR%{_datadir}/mysql/SELinux/RHEL4
install -d $RBR%{_includedir}
install -d $RBR%{_libdir}
install -d $RBR%{_mandir}
install -d $RBR%{_sbindir}
install -d $RBR%{_libdir}/mysql/plugin
make DESTDIR=$RBR benchdir_root=%{_datadir} install
# install symbol files ( for stack trace resolution)
#install -m644 $MBD/sql/mysqld.sym $RBR%{_libdir}/mysql/mysqld.sym
# Install logrotate and autostart
install -m644 $MBD/support-files/mysql-log-rotate \
$RBR%{_sysconfdir}/logrotate.d/mysql
install -m755 $MBD/support-files/mysql.server \
$RBR%{_sysconfdir}/init.d/mysql
# in RPMs, it is unlikely that anybody should use "sql-bench"
rm -fr $RBR%{_datadir}/sql-bench
# Create a symlink "rcmysql", pointing to the init.script. SuSE users
# will appreciate that, as all services usually offer this.
ln -s %{_sysconfdir}/init.d/mysql $RBR%{_sbindir}/rcmysql
# Touch the place where the my.cnf config file and mysqlmanager.passwd
# (MySQL Instance Manager password file) might be located
# Just to make sure it's in the file list and marked as a config file
touch $RBR%{_sysconfdir}/my.cnf
touch $RBR%{_sysconfdir}/mysqlmanager.passwd
# Install SELinux files in datadir
install -m600 $MBD/support-files/RHEL4-SElinux/mysql.{fc,te} \
$RBR%{_datadir}/mysql/SELinux/RHEL4
##############################################################################
# Post processing actions, i.e. when installed
##############################################################################
%pre -n MySQL-server%{package_suffix}
# Check if we can safely upgrade. An upgrade is only safe if it's from one
# of our RPMs in the same version family.
installed=`rpm -q --whatprovides mysql-server 2> /dev/null`
if [ $? -eq 0 -a -n "$installed" ]; then
vendor=`rpm -q --queryformat='%{VENDOR}' "$installed" 2>&1`
version=`rpm -q --queryformat='%{VERSION}' "$installed" 2>&1`
myvendor='%{mysql_vendor}'
myversion='%{mysqlversion}'
old_family=`echo $version | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
new_family=`echo $myversion | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
[ -z "$vendor" ] && vendor='<unknown>'
[ -z "$old_family" ] && old_family="<unrecognized version $version>"
[ -z "$new_family" ] && new_family="<bad package specification: version $myversion>"
error_text=
# if [ "$vendor" != "$myvendor" ]; then
# error_text="$error_text
#The current MySQL server package is provided by a different
#vendor ($vendor) than $myvendor. Some files may be installed
#to different locations, including log files and the service
#startup script in %{_sysconfdir}/init.d/.
#"
# fi
if [ "$old_family" != "$new_family" ]; then
error_text="$error_text
Upgrading directly from MySQL $old_family to MySQL $new_family may not
be safe in all cases. A manual dump and restore using mysqldump is
recommended. It is important to review the MySQL manual's Upgrading
section for version-specific incompatibilities.
"
fi
if [ -n "$error_text" ]; then
cat <<HERE >&2
******************************************************************
A MySQL server package ($installed) is installed.
$error_text
A manual upgrade is required.
- Ensure that you have a complete, working backup of your data and my.cnf
files
- Shut down the MySQL server cleanly
- Remove the existing MySQL packages. Usually this command will
list the packages you should remove:
rpm -qa | grep -i '^mysql-'
You may choose to use 'rpm --nodeps -ev <package-name>' to remove
the package which contains the mysqlclient shared library. The
library will be reinstalled by the MySQL-shared-compat package.
- Install the new MySQL packages supplied by $myvendor
- Ensure that the MySQL server is started
- Run the 'mysql_upgrade' program
This is a brief description of the upgrade process. Important details
can be found in the MySQL manual, in the Upgrading section.
******************************************************************
HERE
exit 1
fi
fi
# Shut down a previously installed server first
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
%{_sysconfdir}/init.d/mysql stop > /dev/null 2>&1
echo "Giving mysqld 5 seconds to exit nicely"
sleep 5
fi
%post -n MySQL-server%{package_suffix}
mysql_datadir=%{mysqldatadir}
# ----------------------------------------------------------------------
# Create data directory
# ----------------------------------------------------------------------
mkdir -p $mysql_datadir/{mysql,test}
# ----------------------------------------------------------------------
# Make MySQL start/shutdown automatically when the machine does it.
# ----------------------------------------------------------------------
if [ -x /sbin/chkconfig ] ; then
/sbin/chkconfig --add mysql
fi
# ----------------------------------------------------------------------
# Create a MySQL user and group. Do not report any problems if it already
# exists.
# ----------------------------------------------------------------------
groupadd -r %{mysqld_group} 2> /dev/null || true
useradd -M -r -d $mysql_datadir -s /bin/bash -c "MySQL server" -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true
# The user may already exist, make sure it has the proper group nevertheless (BUG#12823)
usermod -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true
# ----------------------------------------------------------------------
# Change permissions so that the user that will run the MySQL daemon
# owns all database files.
# ----------------------------------------------------------------------
chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
# ----------------------------------------------------------------------
# Initiate databases
# ----------------------------------------------------------------------
%{_bindir}/mysql_install_db --rpm --user=%{mysqld_user}
# ----------------------------------------------------------------------
# FIXME upgrade databases if needed would go here - but it cannot be
# automated yet
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# Change permissions again to fix any new files.
# ----------------------------------------------------------------------
chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
# ----------------------------------------------------------------------
# Fix permissions for the permission database so that only the user
# can read them.
# ----------------------------------------------------------------------
chmod -R og-rw $mysql_datadir/mysql
# ----------------------------------------------------------------------
# install SELinux files - but don't override existing ones
# ----------------------------------------------------------------------
SETARGETDIR=/etc/selinux/targeted/src/policy
SEDOMPROG=$SETARGETDIR/domains/program
SECONPROG=$SETARGETDIR/file_contexts/program
if [ -f /etc/redhat-release ] && \
(grep -q "Red Hat Enterprise Linux .. release 4" /etc/redhat-release \
|| grep -q "CentOS release 4" /etc/redhat-release) ; then
echo
echo
echo 'Notes regarding SELinux on this platform:'
echo '========================================='
echo
echo 'The default policy might cause server startup to fail because it is '
echo 'not allowed to access critical files. In this case, please update '
echo 'your installation. '
echo
echo 'The default policy might also cause inavailability of SSL related '
echo 'features because the server is not allowed to access /dev/random '
echo 'and /dev/urandom. If this is a problem, please do the following: '
echo
echo ' 1) install selinux-policy-targeted-sources from your OS vendor'
echo ' 2) add the following two lines to '$SEDOMPROG/mysqld.te':'
echo ' allow mysqld_t random_device_t:chr_file read;'
echo ' allow mysqld_t urandom_device_t:chr_file read;'
echo ' 3) cd to '$SETARGETDIR' and issue the following command:'
echo ' make load'
echo
echo
fi
if [ -x sbin/restorecon ] ; then
sbin/restorecon -R var/lib/mysql
fi
# Restart in the same way that mysqld will be started normally.
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
%{_sysconfdir}/init.d/mysql start
echo "Giving mysqld 2 seconds to start"
sleep 2
fi
# Allow mysqld_safe to start mysqld and print a message before we exit
sleep 2
%if %{CLUSTER_BUILD}
%post -n MySQL%{cluster_package_prefix}storage%{package_suffix}
# Create cluster directory if needed
mkdir -p /var/lib/mysql-cluster
%endif
%preun -n MySQL-server%{package_suffix}
if [ $1 = 0 ] ; then
# Stop MySQL before uninstalling it
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
%{_sysconfdir}/init.d/mysql stop > /dev/null
# Don't start it automatically anymore
if [ -x /sbin/chkconfig ] ; then
/sbin/chkconfig --del mysql
fi
fi
fi
# We do not remove the mysql user since it may still own a lot of
# database files.
# ----------------------------------------------------------------------
# Clean up the BuildRoot after build is done
# ----------------------------------------------------------------------
%clean
[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
##############################################################################
# Files section
##############################################################################
%files -n MySQL-server%{package_suffix}
%defattr(-,root,root,0755)
%doc %{lic_files}
%doc support-files/my-*.cnf
%if %{CLUSTER_BUILD}
%doc support-files/ndb-*.ini
%endif
%doc %attr(644, root, root) %{_infodir}/mysql.info*
%if %{INNODB_BUILD}
%doc %attr(644, root, man) %{_mandir}/man1/innochecksum.1*
%endif
%doc %attr(644, root, man) %{_mandir}/man1/my_print_defaults.1*
%doc %attr(644, root, man) %{_mandir}/man1/myisam_ftdump.1*
%doc %attr(644, root, man) %{_mandir}/man1/myisamchk.1*
%doc %attr(644, root, man) %{_mandir}/man1/myisamlog.1*
%doc %attr(644, root, man) %{_mandir}/man1/myisampack.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_convert_table_format.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_fix_extensions.1*
%doc %attr(644, root, man) %{_mandir}/man8/mysqld.8*
%doc %attr(644, root, man) %{_mandir}/man1/mysqld_multi.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqld_safe.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_fix_privilege_tables.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_install_db.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_secure_installation.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_setpermission.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_upgrade.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlhotcopy.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlman.1*
%doc %attr(644, root, man) %{_mandir}/man8/mysqlmanager.8*
%doc %attr(644, root, man) %{_mandir}/man1/mysql.server.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqltest.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_tzinfo_to_sql.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_zap.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlbug.1*
%doc %attr(644, root, man) %{_mandir}/man1/perror.1*
%doc %attr(644, root, man) %{_mandir}/man1/replace.1*
%doc %attr(644, root, man) %{_mandir}/man1/resolve_stack_dump.1*
%doc %attr(644, root, man) %{_mandir}/man1/resolveip.1*
%ghost %config(noreplace,missingok) %{_sysconfdir}/my.cnf
%ghost %config(noreplace,missingok) %{_sysconfdir}/mysqlmanager.passwd
%if %{INNODB_BUILD}
%attr(755, root, root) %{_bindir}/innochecksum
%endif
%attr(755, root, root) %{_bindir}/my_print_defaults
%attr(755, root, root) %{_bindir}/myisam_ftdump
%attr(755, root, root) %{_bindir}/myisamchk
%attr(755, root, root) %{_bindir}/myisamlog
%attr(755, root, root) %{_bindir}/myisampack
%attr(755, root, root) %{_bindir}/mysql_convert_table_format
%attr(755, root, root) %{_bindir}/mysql_fix_extensions
%attr(755, root, root) %{_bindir}/mysql_fix_privilege_tables
%attr(755, root, root) %{_bindir}/mysql_install_db
%attr(755, root, root) %{_bindir}/mysql_secure_installation
%attr(755, root, root) %{_bindir}/mysql_setpermission
%attr(755, root, root) %{_bindir}/mysql_tzinfo_to_sql
%attr(755, root, root) %{_bindir}/mysql_upgrade
%attr(755, root, root) %{_bindir}/mysql_zap
%attr(755, root, root) %{_bindir}/mysqlbug
%attr(755, root, root) %{_bindir}/mysqld_multi
%attr(755, root, root) %{_bindir}/mysqld_safe
%attr(755, root, root) %{_bindir}/mysqldumpslow
%attr(755, root, root) %{_bindir}/mysqlhotcopy
%attr(755, root, root) %{_bindir}/mysqltest
%attr(755, root, root) %{_bindir}/perror
%attr(755, root, root) %{_bindir}/replace
%attr(755, root, root) %{_bindir}/resolve_stack_dump
%attr(755, root, root) %{_bindir}/resolveip
%attr(755, root, root) %{_sbindir}/mysqld
%if %{BUILD_DEBUG}
%attr(755, root, root) %{_sbindir}/mysqld-debug
%endif
%attr(755, root, root) %{_sbindir}/mysqlmanager
%attr(755, root, root) %{_sbindir}/rcmysql
#%attr(644, root, root) %{_libdir}/mysql/mysqld.sym
%if %{BUILD_DEBUG}
#%attr(644, root, root) %{_libdir}/mysql/mysqld-debug.sym
%endif
%attr(644, root, root) %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysql
%attr(755, root, root) %{_sysconfdir}/init.d/mysql
%attr(755, root, root) %{_datadir}/mysql/
%files -n MySQL-client%{package_suffix}
%defattr(-, root, root, 0755)
%attr(755, root, root) %{_bindir}/msql2mysql
%attr(755, root, root) %{_bindir}/mysql
%attr(755, root, root) %{_bindir}/mysql_find_rows
%attr(755, root, root) %{_bindir}/mysql_waitpid
%attr(755, root, root) %{_bindir}/mysqlaccess
%attr(755, root, root) %{_bindir}/mysqladmin
%attr(755, root, root) %{_bindir}/mysqlbinlog
%attr(755, root, root) %{_bindir}/mysqlcheck
%attr(755, root, root) %{_bindir}/mysqldump
%attr(755, root, root) %{_bindir}/mysqlimport
%attr(755, root, root) %{_bindir}/mysqlshow
%attr(755, root, root) %{_bindir}/mysqlslap
%doc %attr(644, root, man) %{_mandir}/man1/msql2mysql.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_find_rows.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_waitpid.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlaccess.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqladmin.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlbinlog.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlcheck.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqldump.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlimport.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlshow.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1*
%post -n MySQL-shared%{package_suffix}
/sbin/ldconfig
%postun -n MySQL-shared%{package_suffix}
/sbin/ldconfig
%if %{CLUSTER_BUILD}
%files -n MySQL%{cluster_package_prefix}storage%{package_suffix}
%defattr(-,root,root,0755)
%attr(755, root, root) %{_sbindir}/ndbd
%doc %attr(644, root, man) %{_mandir}/man8/ndbd.8*
%files -n MySQL%{cluster_package_prefix}management%{package_suffix}
%defattr(-,root,root,0755)
%attr(755, root, root) %{_sbindir}/ndb_mgmd
%doc %attr(644, root, man) %{_mandir}/man8/ndb_mgmd.8*
%files -n MySQL%{cluster_package_prefix}tools%{package_suffix}
%defattr(-,root,root,0755)
%attr(755, root, root) %{_bindir}/ndb_config
%attr(755, root, root) %{_bindir}/ndb_desc
%attr(755, root, root) %{_bindir}/ndb_error_reporter
%attr(755, root, root) %{_bindir}/ndb_mgm
%attr(755, root, root) %{_bindir}/ndb_restore
%attr(755, root, root) %{_bindir}/ndb_select_all
%attr(755, root, root) %{_bindir}/ndb_select_count
%attr(755, root, root) %{_bindir}/ndb_show_tables
%attr(755, root, root) %{_bindir}/ndb_size.pl
%attr(755, root, root) %{_bindir}/ndb_test_platform
%attr(755, root, root) %{_bindir}/ndb_waiter
%doc %attr(644, root, man) %{_mandir}/man1/ndb_config.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_desc.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_error_reporter.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_mgm.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_restore.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_select_all.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_select_count.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_show_tables.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_size.pl.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_waiter.1*
%files -n MySQL%{cluster_package_prefix}extra%{package_suffix}
%defattr(-,root,root,0755)
%attr(755, root, root) %{_bindir}/ndb_delete_all
%attr(755, root, root) %{_bindir}/ndb_drop_index
%attr(755, root, root) %{_bindir}/ndb_drop_table
%attr(755, root, root) %{_sbindir}/ndb_cpcd
%doc %attr(644, root, man) %{_mandir}/man1/ndb_delete_all.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_drop_index.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_drop_table.1*
%doc %attr(644, root, man) %{_mandir}/man1/ndb_cpcd.1*
%endif
%files -n MySQL-devel%{package_suffix}
%defattr(-, root, root, 0755)
%if %{commercial}
%else
%doc EXCEPTIONS-CLIENT
%endif
%doc %attr(644, root, man) %{_mandir}/man1/comp_err.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql_config.1*
%attr(755, root, root) %{_bindir}/mysql_config
%dir %attr(755, root, root) %{_libdir}/mysql
%{_includedir}/mysql
%{_datadir}/aclocal/mysql.m4
%{_libdir}/mysql/libdbug.a
%{_libdir}/mysql/libheap.a
%if %{WITH_LIBGCC}
%{_libdir}/mysql/libmygcc.a
%endif
%{_libdir}/mysql/libmyisam.a
%{_libdir}/mysql/libmyisammrg.a
%{_libdir}/mysql/libmysqlclient.a
%{_libdir}/mysql/libmysqlclient.la
%{_libdir}/mysql/libmysqlclient_r.a
%{_libdir}/mysql/libmysqlclient_r.la
%{_libdir}/mysql/libmystrings.a
%{_libdir}/mysql/libmysys.a
%{_libdir}/mysql/libvio.a
%{_libdir}/mysql/libz.a
%{_libdir}/mysql/libz.la
%if %{CLUSTER_BUILD}
%{_libdir}/mysql/libndbclient.a
%{_libdir}/mysql/libndbclient.la
%endif
%files -n MySQL-shared%{package_suffix}
%defattr(-, root, root, 0755)
# Shared libraries (omit for architectures that don't support them)
%{_libdir}/*.so*
%files -n MySQL-test%{package_suffix}
%defattr(-, root, root, 0755)
%{_datadir}/mysql-test
%attr(755, root, root) %{_bindir}/mysql_client_test
%doc %attr(644, root, man) %{_mandir}/man1/mysql_client_test.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql-stress-test.pl.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysql-test-run.pl.1*
%files -n Percona-XtraDB-%{pluginversion}-%{xtradbversion}
%defattr(-, root, root, 0755)
%attr(644, root, root) %{_libdir}/mysql/plugin/ha_innodb.so*
%attr(644, root, root) %{_libdir}/mysql/plugin/install_innodb_plugins.sql
##############################################################################
# The spec file changelog only includes changes made to the spec file
# itself - note that they must be ordered by date (important when
# merging BK trees)
##############################################################################
%changelog
* Tue Jan 05 2010 Aleksandr Kuzminsky <aleksandr.kuzminsky@percona.com>
- Corrected emails
- -m64 is removed from CFLAGS
* Tue Apr 21 2009 Aleksandr Kuzminsky <aleksandr.kuzminsky@percona.com>
- Adoption for XtraDB Storage Engine
* Fri Nov 07 2008 Joerg Bruehe <joerg@mysql.com>
- Modify CFLAGS and CXXFLAGS such that a debug build is not optimized.
This should cover both gcc and icc flags. Fixes bug#40546.
* Mon Aug 18 2008 Joerg Bruehe <joerg@mysql.com>
- Get rid of the "warning: Installed (but unpackaged) file(s) found:"
Some generated files aren't needed in RPMs:
- the "sql-bench/" subdirectory
Some files were missing:
- /usr/share/aclocal/mysql.m4 ("devel" subpackage)
- Manuals for embedded tests ("test" subpackage)
- Manual "mysqlbug" ("server" subpackage)
- Manual "mysql_find_rows" ("client" subpackage)
* Wed Jun 11 2008 Kent Boortz <kent@mysql.com>
- Removed the Example storage engine, it is not to be in products
* Fri Apr 04 2008 Daniel Fischer <df@mysql.com>
- Added Cluster+InnoDB product
* Mon Mar 31 2008 Kent Boortz <kent@mysql.com>
- Made the "Federated" storage engine an option
* Tue Mar 11 2008 Joerg Bruehe <joerg@mysql.com>
- Cleanup: Remove manual file "mysql_tableinfo.1".
* Mon Feb 18 2008 Timothy Smith <tim@mysql.com>
- Require a manual upgrade if the alread-installed mysql-server is
from another vendor, or is of a different major version.
* Fri Dec 14 2007 Joerg Bruehe <joerg@mysql.com>
- Add the "%doc" directive for all man pages and other documentation;
also, some re-ordering to reduce differences between spec files.
* Fri Dec 14 2007 Joerg Bruehe <joerg@mysql.com>
- Added "client/mysqlslap" (bug#32077)
* Wed Oct 31 2007 Joerg Bruehe <joerg@mysql.com>
- Explicitly handle InnoDB using its own variable and "--with"/"--without"
options, because the "configure" default is "yes".
Also, fix the specification of "community" to include "partitioning".
* Mon Sep 03 2007 Kent Boortz <kent@mysql.com>
- Let libmygcc be included unless "--without libgcc" is given.
* Sun Sep 02 2007 Kent Boortz <kent@mysql.com>
- Changed SSL flag given to configure to "--with-ssl"
- Removed symbolic link "safe_mysqld"
- Removed script and man page for "mysql_explain_log"
- Removed scripts "mysql_tableinfo" and "mysql_upgrade_shell"
- Removed "comp_err" from list to install
- Removed duplicates of "libndbclient.a" and "libndbclient.la"
* Tue Jul 17 2007 Joerg Bruehe <joerg@mysql.com>
- Add the man page for "mysql-stress-test.pl" to the "test" RPM
(consistency in fixing bug#21023, the script is handled by "Makefile.am")
* Wed Jul 11 2007 Daniel Fischer <df@mysql.com>
- Change the way broken SELinux policies on RHEL4 and CentOS 4
are handled to be more likely to actually work
* Thu Jun 05 2007 kent Boortz <kent@mysql.com>
- Enabled the CSV engine in all builds
* Thu May 3 2007 Mads Martin Joergensen <mmj@mysql.com>
- Spring cleanup
* Thu Apr 19 2007 Mads Martin Joergensen <mmj@mysql.com>
- If sbin/restorecon exists then run it
* Wed Apr 18 2007 Kent Boortz <kent@mysql.com>
- Packed unpacked files
/usr/sbin/ndb_cpcd
/usr/bin/mysql_upgrade_shell
/usr/bin/innochecksum
/usr/share/man/man1/ndb_cpcd.1.gz
/usr/share/man/man1/innochecksum.1.gz
/usr/share/man/man1/mysql_fix_extensions.1.gz
/usr/share/man/man1/mysql_secure_installation.1.gz
/usr/share/man/man1/mysql_tableinfo.1.gz
/usr/share/man/man1/mysql_waitpid.1.gz
- Commands currently not installed but that has man pages
/usr/share/man/man1/make_win_bin_dist.1.gz
/usr/share/man/man1/make_win_src_distribution.1.gz
/usr/share/man/man1/mysql-stress-test.pl.1.gz
/usr/share/man/man1/ndb_print_backup_file.1.gz
/usr/share/man/man1/ndb_print_schema_file.1.gz
/usr/share/man/man1/ndb_print_sys_file.1.gz
* Thu Mar 22 2007 Joerg Bruehe <joerg@mysql.com>
- Add "comment" options to the test runs, for better log analysis.
* Wed Mar 21 2007 Joerg Bruehe <joerg@mysql.com>
- Add even more man pages.
* Fri Mar 16 2007 Joerg Bruehe <joerg@mysql.com>
- Build the server twice, once as "mysqld-debug" and once as "mysqld";
test them both, and include them in the resulting file.
- Consequences of the fix for bug#20166:
Remove "mysql_create_system_tables",
new "mysql_fix_privilege_tables.sql" is included implicitly.
* Wed Mar 14 2007 Daniel Fischer <df@mysql.com>
- Adjust compile options some more and change naming of community
cluster RPMs to explicitly say 'cluster'.
* Mon Mar 12 2007 Daniel Fischer <df@mysql.com>
- Adjust compile options and other settings for 5.0 community builds.
* Fri Mar 02 2007 Joerg Bruehe <joerg@mysql.com>
- Add several man pages which are now created.
* Mon Jan 29 2007 Mads Martin Joergensen <mmj@mysql.com>
- Make sure SELinux works correctly. Files from Colin Charles.
* Fri Jan 05 2007 Kent Boortz <kent@mysql.com>
- Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
correct "libgcc.a" path is returned for the 32/64 bit architecture.
* Tue Dec 19 2006 Joerg Bruehe <joerg@mysql.com>
- The man page for "mysqld" is now in section 8.
* Thu Dec 14 2006 Joerg Bruehe <joerg@mysql.com>
- Include the new man pages for "my_print_defaults" and "mysql_tzinfo_to_sql"
in the server RPM.
- The "mysqlmanager" man page was relocated to section 8, reflect that.
* Fri Nov 17 2006 Mads Martin Joergensen <mmj@mysql.com>
- Really fix obsoletes/provides for community -> this
- Make it possible to not run test by setting
MYSQL_RPMBUILD_TEST to "no"
* Wed Nov 15 2006 Joerg Bruehe <joerg@mysql.com>
- Switch from "make test*" to explicit calls of the test suite,
so that "report features" can be used.
* Wed Nov 15 2006 Kent Boortz <kent@mysql.com>
- Added "--with cluster" and "--define cluster{_gpl}"
* Tue Oct 24 2006 Mads Martin Joergensen <mmj@mysql.com>
- Shared need to Provide/Obsolete mysql-shared
* Mon Oct 23 2006 Mads Martin Joergensen <mmj@mysql.com>
- Run sbin/restorecon after db init (Bug#12676)
* Thu Jul 06 2006 Joerg Bruehe <joerg@mysql.com>
- Correct a typing error in my previous change.
* Tue Jul 04 2006 Joerg Bruehe <joerg@mysql.com>
- Use the Perl script to run the tests, because it will automatically check
whether the server is configured with SSL.
* Wed Jun 28 2006 Joerg Bruehe <joerg@mysql.com>
- Revert all previous attempts to call "mysql_upgrade" during RPM upgrade,
there are some more aspects which need to be solved before this is possible.
For now, just ensure the binary "mysql_upgrade" is delivered and installed.
* Wed Jun 28 2006 Joerg Bruehe <joerg@mysql.com>
- Move "mysqldumpslow" from the client RPM to the server RPM (bug#20216).
* Wed Jun 21 2006 Joerg Bruehe <joerg@mysql.com>
- To run "mysql_upgrade", we need a running server;
start it in isolation and skip password checks.
* Sat May 23 2006 Kent Boortz <kent@mysql.com>
- Always compile for PIC, position independent code.
* Fri Apr 28 2006 Kent Boortz <kent@mysql.com>
- Install and run "mysql_upgrade"
* Sat Apr 01 2006 Kent Boortz <kent@mysql.com>
- Allow to override $LDFLAGS
* Fri Jan 06 2006 Lenz Grimmer <lenz@mysql.com>
- added a MySQL-test subpackage (BUG#16070)
* Tue Dec 27 2005 Joerg Bruehe <joerg@mysql.com>
- Some minor alignment with the 4.1 version
* Wed Dec 14 2005 Rodrigo Novo <rodrigo@mysql.com>
- Cosmetic changes: source code location & rpm packager
- Protect "nm -D" against libtool weirdness
- Add libz.a & libz.la to the list of files for subpackage -devel
- moved --with-zlib-dir=bundled out of BuildMySQL, as it doesn't makes
sense for the shared package
* Tue Nov 22 2005 Joerg Bruehe <joerg@mysql.com>
- Extend the file existence check for "init.d/mysql" on un-install
to also guard the call to "insserv"/"chkconfig".
* Wed Nov 16 2005 Lenz Grimmer <lenz@mysql.com>
- added mysql_client_test to the "client" subpackage (BUG#14546)
* Tue Nov 15 2005 Lenz Grimmer <lenz@mysql.com>
- changed default definitions to build a standard GPL release when not
defining anything else
- install the shared libs more elegantly by using "make install"
* Wed Oct 19 2005 Kent Boortz <kent@mysql.com>
- Made yaSSL support an option (off by default)
* Wed Oct 19 2005 Kent Boortz <kent@mysql.com>
- Enabled yaSSL support
* Thu Oct 13 2005 Lenz Grimmer <lenz@mysql.com>
- added a usermod call to assign a potential existing mysql user to the
correct user group (BUG#12823)
- added a separate macro "mysqld_group" to be able to define the
user group of the mysql user seperately, if desired.
* Fri Oct 1 2005 Kent Boortz <kent@mysql.com>
- Copy the config.log file to location outside
the build tree
* Fri Sep 30 2005 Lenz Grimmer <lenz@mysql.com>
- don't use install-strip to install the binaries (strip segfaults on
icc-compiled binaries on IA64)
* Thu Sep 22 2005 Lenz Grimmer <lenz@mysql.com>
- allow overriding the CFLAGS (needed for Intel icc compiles)
- replace the CPPFLAGS=-DBIG_TABLES with "--with-big-tables" configure option
* Fri Aug 19 2005 Joerg Bruehe <joerg@mysql.com>
- Protect against failing tests.
* Thu Aug 04 2005 Lenz Grimmer <lenz@mysql.com>
- Fixed the creation of the mysql user group account in the postinstall
section (BUG 12348)
* Fri Jul 29 2005 Lenz Grimmer <lenz@mysql.com>
- Fixed external RPM Requirements to better suit the target distribution
(BUG 12233)
* Fri Jul 15 2005 Lenz Grimmer <lenz@mysql.com>
- create a "mysql" user group and assign the mysql user account to that group
in the server postinstall section. (BUG 10984)
* Wed Jun 01 2005 Lenz Grimmer <lenz@mysql.com>
- use "mysqldatadir" variable instead of hard-coding the path multiple times
- use the "mysqld_user" variable on all occasions a user name is referenced
- removed (incomplete) Brazilian translations
- removed redundant release tags from the subpackage descriptions
* Fri May 27 2005 Lenz Grimmer <lenz@mysql.com>
- fixed file list (removed libnisam.a and libmerge.a from the devel subpackage)
- force running the test suite
* Wed Apr 20 2005 Lenz Grimmer <lenz@mysql.com>
- Enabled the "blackhole" storage engine for the Max RPM
* Wed Apr 13 2005 Lenz Grimmer <lenz@mysql.com>
- removed the MySQL manual files (html/ps/texi) - they have been removed
from the MySQL sources and are now available seperately.
* Mon Apr 4 2005 Petr Chardin <petr@mysql.com>
- old mysqlmanager, mysqlmanagerc and mysqlmanager-pwger renamed into
mysqltestmanager, mysqltestmanager and mysqltestmanager-pwgen respectively
* Fri Mar 18 2005 Lenz Grimmer <lenz@mysql.com>
- Disabled RAID in the Max binaries once and for all (it has finally been
removed from the source tree)
* Sun Feb 20 2005 Petr Chardin <petr@mysql.com>
- Install MySQL Instance Manager together with mysqld, touch mysqlmanager
password file
* Mon Feb 14 2005 Lenz Grimmer <lenz@mysql.com>
- Fixed the compilation comments and moved them into the separate build sections
for Max and Standard
* Mon Feb 7 2005 Tomas Ulin <tomas@mysql.com>
- enabled the "Ndbcluster" storage engine for the max binary
- added extra make install in ndb subdir after Max build to get ndb binaries
- added packages for ndbcluster storage engine
* Fri Jan 14 2005 Lenz Grimmer <lenz@mysql.com>
- replaced obsoleted "BuildPrereq" with "BuildRequires" instead
* Thu Jan 13 2005 Lenz Grimmer <lenz@mysql.com>
- enabled the "Federated" storage engine for the max binary
* Tue Jan 04 2005 Petr Chardin <petr@mysql.com>
- ISAM and merge storage engines were purged. As well as appropriate
tools and manpages (isamchk and isamlog)
* Thu Dec 31 2004 Lenz Grimmer <lenz@mysql.com>
- enabled the "Archive" storage engine for the max binary
- enabled the "CSV" storage engine for the max binary
- enabled the "Example" storage engine for the max binary
* Thu Aug 26 2004 Lenz Grimmer <lenz@mysql.com>
- MySQL-Max now requires MySQL-server instead of MySQL (BUG 3860)
* Fri Aug 20 2004 Lenz Grimmer <lenz@mysql.com>
- do not link statically on IA64/AMD64 as these systems do not have
a patched glibc installed
* Tue Aug 10 2004 Lenz Grimmer <lenz@mysql.com>
- Added libmygcc.a to the devel subpackage (required to link applications
against the the embedded server libmysqld.a) (BUG 4921)
* Mon Aug 09 2004 Lenz Grimmer <lenz@mysql.com>
- Added EXCEPTIONS-CLIENT to the "devel" package
* Thu Jul 29 2004 Lenz Grimmer <lenz@mysql.com>
- disabled OpenSSL in the Max binaries again (the RPM packages were the
only exception to this anyway) (BUG 1043)
* Wed Jun 30 2004 Lenz Grimmer <lenz@mysql.com>
- fixed server postinstall (mysql_install_db was called with the wrong
parameter)
* Thu Jun 24 2004 Lenz Grimmer <lenz@mysql.com>
- added mysql_tzinfo_to_sql to the server subpackage
- run "make clean" instead of "make distclean"
* Mon Apr 05 2004 Lenz Grimmer <lenz@mysql.com>
- added ncurses-devel to the build prerequisites (BUG 3377)
* Thu Feb 12 2004 Lenz Grimmer <lenz@mysql.com>
- when using gcc, _always_ use CXX=gcc
- replaced Copyright with License field (Copyright is obsolete)
* Tue Feb 03 2004 Lenz Grimmer <lenz@mysql.com>
- added myisam_ftdump to the Server package
* Tue Jan 13 2004 Lenz Grimmer <lenz@mysql.com>
- link the mysql client against libreadline instead of libedit (BUG 2289)
* Mon Dec 22 2003 Lenz Grimmer <lenz@mysql.com>
- marked /etc/logrotate.d/mysql as a config file (BUG 2156)
* Fri Dec 13 2003 Lenz Grimmer <lenz@mysql.com>
- fixed file permissions (BUG 1672)
* Thu Dec 11 2003 Lenz Grimmer <lenz@mysql.com>
- made testing for gcc3 a bit more robust
* Fri Dec 05 2003 Lenz Grimmer <lenz@mysql.com>
- added missing file mysql_create_system_tables to the server subpackage
* Fri Nov 21 2003 Lenz Grimmer <lenz@mysql.com>
- removed dependency on MySQL-client from the MySQL-devel subpackage
as it is not really required. (BUG 1610)
* Fri Aug 29 2003 Lenz Grimmer <lenz@mysql.com>
- Fixed BUG 1162 (removed macro names from the changelog)
- Really fixed BUG 998 (disable the checking for installed but
unpackaged files)
* Tue Aug 05 2003 Lenz Grimmer <lenz@mysql.com>
- Fixed BUG 959 (libmysqld not being compiled properly)
- Fixed BUG 998 (RPM build errors): added missing files to the
distribution (mysql_fix_extensions, mysql_tableinfo, mysqldumpslow,
mysql_fix_privilege_tables.1), removed "-n" from install section.
* Wed Jul 09 2003 Lenz Grimmer <lenz@mysql.com>
- removed the GIF Icon (file was not included in the sources anyway)
- removed unused variable shared_lib_version
- do not run automake before building the standard binary
(should not be necessary)
- add server suffix '-standard' to standard binary (to be in line
with the binary tarball distributions)
- Use more RPM macros (_exec_prefix, _sbindir, _libdir, _sysconfdir,
_datadir, _includedir) throughout the spec file.
- allow overriding CC and CXX (required when building with other compilers)
* Fri May 16 2003 Lenz Grimmer <lenz@mysql.com>
- re-enabled RAID again
* Wed Apr 30 2003 Lenz Grimmer <lenz@mysql.com>
- disabled MyISAM RAID (--with-raid) - it throws an assertion which
needs to be investigated first.
* Mon Mar 10 2003 Lenz Grimmer <lenz@mysql.com>
- added missing file mysql_secure_installation to server subpackage
(BUG 141)
* Tue Feb 11 2003 Lenz Grimmer <lenz@mysql.com>
- re-added missing pre- and post(un)install scripts to server subpackage
- added config file /etc/my.cnf to the file list (just for completeness)
- make sure to create the datadir with 755 permissions
* Mon Jan 27 2003 Lenz Grimmer <lenz@mysql.com>
- removed unused CC and CXX variables
- CFLAGS and CXXFLAGS should honor RPM_OPT_FLAGS
* Fri Jan 24 2003 Lenz Grimmer <lenz@mysql.com>
- renamed package "MySQL" to "MySQL-server"
- fixed Copyright tag
- added mysql_waitpid to client subpackage (required for mysql-test-run)
* Wed Nov 27 2002 Lenz Grimmer <lenz@mysql.com>
- moved init script from /etc/rc.d/init.d to /etc/init.d (the majority of
Linux distributions now support this scheme as proposed by the LSB either
directly or via a compatibility symlink)
- Use new "restart" init script action instead of starting and stopping
separately
- Be more flexible in activating the automatic bootup - use insserv (on
older SuSE versions) or chkconfig (Red Hat, newer SuSE versions and
others) to create the respective symlinks
* Wed Sep 25 2002 Lenz Grimmer <lenz@mysql.com>
- MySQL-Max now requires MySQL >= 4.0 to avoid version mismatches
(mixing 3.23 and 4.0 packages)
* Fri Aug 09 2002 Lenz Grimmer <lenz@mysql.com>
- Turn off OpenSSL in MySQL-Max for now until it works properly again
- enable RAID for the Max binary instead
- added compatibility link: safe_mysqld -> mysqld_safe to ease the
transition from 3.23
* Thu Jul 18 2002 Lenz Grimmer <lenz@mysql.com>
- Reworked the build steps a little bit: the Max binary is supposed
to include OpenSSL, which cannot be linked statically, thus trying
to statically link against a special glibc is futile anyway
- because of this, it is not required to make yet another build run
just to compile the shared libs (saves a lot of time)
- updated package description of the Max subpackage
- clean up the BuildRoot directory afterwards
* Mon Jul 15 2002 Lenz Grimmer <lenz@mysql.com>
- Updated Packager information
- Fixed the build options: the regular package is supposed to
include InnoDB and linked statically, while the Max package
should include BDB and SSL support
* Fri May 03 2002 Lenz Grimmer <lenz@mysql.com>
- Use more RPM macros (e.g. infodir, mandir) to make the spec
file more portable
- reorganized the installation of documentation files: let RPM
take care of this
- reorganized the file list: actually install man pages along
with the binaries of the respective subpackage
- do not include libmysqld.a in the devel subpackage as well, if we
have a special "embedded" subpackage
- reworked the package descriptions
* Mon Oct 8 2001 Monty
- Added embedded server as a separate RPM
* Fri Apr 13 2001 Monty
- Added mysqld-max to the distribution
* Tue Jan 2 2001 Monty
- Added mysql-test to the bench package
* Fri Aug 18 2000 Tim Smith <tim@mysql.com>
- Added separate libmysql_r directory; now both a threaded
and non-threaded library is shipped.
* Wed Sep 28 1999 David Axmark <davida@mysql.com>
- Added the support-files/my-example.cnf to the docs directory.
- Removed devel dependency on base since it is about client
development.
* Wed Sep 8 1999 David Axmark <davida@mysql.com>
- Cleaned up some for 3.23.
* Thu Jul 1 1999 David Axmark <davida@mysql.com>
- Added support for shared libraries in a separate sub
package. Original fix by David Fox (dsfox@cogsci.ucsd.edu)
- The --enable-assembler switch is now automatically disables on
platforms there assembler code is unavailable. This should allow
building this RPM on non i386 systems.
* Mon Feb 22 1999 David Axmark <david@detron.se>
- Removed unportable cc switches from the spec file. The defaults can
now be overridden with environment variables. This feature is used
to compile the official RPM with optimal (but compiler version
specific) switches.
- Removed the repetitive description parts for the sub rpms. Maybe add
again if RPM gets a multiline macro capability.
- Added support for a pt_BR translation. Translation contributed by
Jorge Godoy <jorge@bestway.com.br>.
* Wed Nov 4 1998 David Axmark <david@detron.se>
- A lot of changes in all the rpm and install scripts. This may even
be a working RPM :-)
* Sun Aug 16 1998 David Axmark <david@detron.se>
- A developers changelog for MySQL is available in the source RPM. And
there is a history of major user visible changed in the Reference
Manual. Only RPM specific changes will be documented here.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment