Giter VIP home page Giter VIP logo

mysql-utilities's Introduction

MySQL Utilities 1.6

This is a release of MySQL Utilities, the dual-license, complete 
database modeling, administration and development program for MySQL. 
For the avoidance of doubt, this particular copy of the software is 
released under the version 2 of the GNU General Public License. 
MySQL Utilities is brought to you by the MySQL team at Oracle.

Copyright (c) 2010, 2016 Oracle and/or its affiliates. All rights reserved.

For more information on MySQL Utilities, visit
  http://www.mysql.com/products/enterprise/utilities.html
For more downloads and the source of MySQL Utilities, visit
  http://dev.mysql.com/downloads/utilities

License information can be found in the LICENSE.txt file.

This distribution may include materials developed by third
parties. For license and attribution notices for these
materials, please refer to the documentation that accompanies
this distribution. A copy of the license/notices is also 
reproduced below. 

GPLv2 Disclaimer
For the avoidance of doubt, except that if any license choice
other than GPL or LGPL is available it will apply instead, 
Oracle elects to use only the General Public License version 2 
(GPLv2) at this time for any software where a choice of GPL 
license versions is made available with the language indicating 
that GPLv2 or any later version may be used, or where a choice 
of which version of the GPL is applied is otherwise unspecified.

********************************************************************

Third-Party Component Notices

*********************************************************************

%%The following software may be included in this product:
Python

Use of any of this software is governed by the terms of the license below:

Python 2.7 license

This is the official license for the Python 2.7 release:

A. HISTORY OF THE SOFTWARE
==========================

Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
as a successor of a language called ABC.  Guido remains Python's
principal author, although it includes many contributions from others.

In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the
software.

In May 2000, Guido and the Python core development team moved to
BeOpen.com to form the BeOpen PythonLabs team.  In October of the same
year, the PythonLabs team moved to Digital Creations (now Zope
Corporation, see http://www.zope.com).  In 2001, the Python Software
Foundation (PSF, see http://www.python.org/psf/) was formed, a
non-profit organization created specifically to own Python-related
Intellectual Property.  Zope Corporation is a sponsoring member of
the PSF.

All Python releases are Open Source (see http://www.opensource.org for
the Open Source Definition).  Historically, most, but not all, Python
releases have also been GPL-compatible; the table below summarizes
the various releases.

    Release         Derived     Year        Owner       GPL-
                    from                                compatible? (1)

    0.9.0 thru 1.2              1991-1995   CWI         yes
    1.3 thru 1.5.2  1.2         1995-1999   CNRI        yes
    1.6             1.5.2       2000        CNRI        no
    2.0             1.6         2000        BeOpen.com  no
    1.6.1           1.6         2001        CNRI        yes (2)
    2.1             2.0+1.6.1   2001        PSF         no
    2.0.1           2.0+1.6.1   2001        PSF         yes
    2.1.1           2.1+2.0.1   2001        PSF         yes
    2.2             2.1.1       2001        PSF         yes
    2.1.2           2.1.1       2002        PSF         yes
    2.1.3           2.1.2       2002        PSF         yes
    2.2.1           2.2         2002        PSF         yes
    2.2.2           2.2.1       2002        PSF         yes
    2.2.3           2.2.2       2003        PSF         yes
    2.3             2.2.2       2002-2003   PSF         yes
    2.3.1           2.3         2002-2003   PSF         yes
    2.3.2           2.3.1       2002-2003   PSF         yes
    2.3.3           2.3.2       2002-2003   PSF         yes
    2.3.4           2.3.3       2004        PSF         yes
    2.3.5           2.3.4       2005        PSF         yes
    2.4             2.3         2004        PSF         yes
    2.4.1           2.4         2005        PSF         yes
    2.4.2           2.4.1       2005        PSF         yes
    2.4.3           2.4.2       2006        PSF         yes
    2.4.4           2.4.3       2006        PSF         yes
    2.5             2.4         2006        PSF         yes
    2.5.1           2.5         2007        PSF         yes
    2.5.2           2.5.1       2008        PSF         yes
    2.5.3           2.5.2       2008        PSF         yes
    2.6             2.5         2008        PSF         yes
    2.6.1           2.6         2008        PSF         yes
    2.6.2           2.6.1       2009        PSF         yes
    2.6.3           2.6.2       2009        PSF         yes
    2.6.4           2.6.3       2009        PSF         yes
    2.6.5           2.6.4       2010        PSF         yes
    2.7             2.6         2010        PSF         yes

Footnotes:

(1) GPL-compatible doesn't mean that we're distributing Python under
    the GPL.  All Python licenses, unlike the GPL, let you distribute
    a modified version without making your changes open source.  The
    GPL-compatible licenses make it possible to combine Python with
    other software that is released under the GPL; the others don't.

(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
    because its license has a choice of law clause.  According to
    CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
    is "not incompatible" with the GPL.

Thanks to the many outside volunteers who have worked under Guido's
direction to make these releases possible.


B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
===============================================================

PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------

1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.

2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python
alone or in any derivative version prepared by Licensee.

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.

4. PSF is making Python available to Licensee on an "AS IS"
basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee.  This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.

8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
-------------------------------------------

BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1

1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
Individual or Organization ("Licensee") accessing and otherwise using
this software in source or binary form and its associated
documentation ("the Software").

2. Subject to the terms and conditions of this BeOpen Python License
Agreement, BeOpen hereby grants Licensee a non-exclusive,
royalty-free, world-wide license to reproduce, analyze, test, perform
and/or display publicly, prepare derivative works, distribute, and
otherwise use the Software alone or in any derivative version,
provided, however, that the BeOpen Python License is retained in the
Software, alone or in any derivative version prepared by Licensee.

3. BeOpen is making the Software available to Licensee on an "AS IS"
basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

5. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

6. This License Agreement shall be governed by and interpreted in all
respects by the law of the State of California, excluding conflict of
law provisions.  Nothing in this License Agreement shall be deemed to
create any relationship of agency, partnership, or joint venture
between BeOpen and Licensee.  This License Agreement does not grant
permission to use BeOpen trademarks or trade names in a trademark
sense to endorse or promote products or services of Licensee, or any
third party.  As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the
permissions granted on that web page.

7. By copying, installing or otherwise using the software, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
---------------------------------------

1. This LICENSE AGREEMENT is between the Corporation for National
Research Initiatives, having an office at 1895 Preston White Drive,
Reston, VA 20191 ("CNRI"), and the Individual or Organization
("Licensee") accessing and otherwise using Python 1.6.1 software in
source or binary form and its associated documentation.

2. Subject to the terms and conditions of this License Agreement, CNRI
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 1.6.1
alone or in any derivative version, provided, however, that CNRI's
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
1995-2001 Corporation for National Research Initiatives; All Rights
Reserved" are retained in Python 1.6.1 alone or in any derivative
version prepared by Licensee.  Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement.  This Agreement together with
Python 1.6.1 may be located on the Internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013.  This
Agreement may also be obtained from a proxy server on the Internet
using the following URL: http://hdl.handle.net/1895.22/1013".

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 1.6.1 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 1.6.1.

4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. This License Agreement shall be governed by the federal
intellectual property law of the United States, including without
limitation the federal copyright law, and, to the extent such
U.S. federal law does not apply, by the law of the Commonwealth of
Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based
on Python 1.6.1 that incorporate non-separable material that was
previously distributed under the GNU General Public License (GPL), the
law of the Commonwealth of Virginia shall govern this License
Agreement only as to issues arising under or with respect to
Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this
License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between CNRI and Licensee.  This
License Agreement does not grant permission to use CNRI trademarks or
trade name in a trademark sense to endorse or promote products or
services of Licensee, or any third party.

8. By clicking on the "ACCEPT" button where indicated, or by copying,
installing or otherwise using Python 1.6.1, Licensee agrees to be
bound by the terms and conditions of this License Agreement.

        ACCEPT


CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
--------------------------------------------------

Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands.  All rights reserved.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


Additional Conditions for this Windows binary build
---------------------------------------------------

This program is linked with and uses Microsoft Distributable Code,
copyrighted by Microsoft Corporation. The Microsoft Distributable Code
includes the following files:

msvcr90.dll
msvcp90.dll
msvcm90.dll

If you further distribute programs that include the Microsoft
Distributable Code, you must comply with the restrictions on
distribution specified by Microsoft. In particular, you must require
distributors and external end users to agree to terms that protect the
Microsoft Distributable Code at least as much as Microsoft's own
requirements for the Distributable Code. See Microsoft's documentation
(included in its developer tools and on its website at microsoft.com)
for specific details.

Redistribution of the Windows binary build of the Python interpreter
complies with this agreement, provided that you do not:

- alter any copyright, trademark or patent notice in Microsoft's
Distributable Code;

- use Microsoft's trademarks in your programs' names or in a way that
suggests your programs come from or are endorsed by Microsoft;

- distribute Microsoft's Distributable Code to run on a platform other
than Microsoft operating systems, run-time technologies or application
platforms; or

- include Microsoft Distributable Code in malicious, deceptive or
unlawful programs.

These restrictions apply only to the Microsoft Distributable Code as
defined above, not to Python itself or any programs running on the
Python interpreter. The redistribution of the Python interpreter and
libraries is governed by the Python Software License included with this
file, or by other licenses as marked.


This copy of Python includes a copy of bzip2, which is licensed under the following terms:


--------------------------------------------------------------------------

This program, "bzip2", the associated library "libbzip2", and all
documentation, are copyright (C) 1996-2007 Julian R Seward.  All
rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

2. The origin of this software must not be misrepresented; you must 
   not claim that you wrote the original software.  If you use this 
   software in a product, an acknowledgment in the product 
   documentation would be appreciated but is not required.

3. Altered source versions must be plainly marked as such, and must
   not be misrepresented as being the original software.

4. The name of the author may not be used to endorse or promote 
   products derived from this software without specific prior written 
   permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Julian Seward, [email protected]
bzip2/libbzip2 version 1.0.5 of 10 December 2007

--------------------------------------------------------------------------

This copy of Python includes a copy of Berkeley DB, which is licensed under the following terms:

/*-
 * $Id: LICENSE,v 12.9 2008/02/07 17:12:17 mark Exp $
 */

The following is the license that applies to this copy of the Berkeley DB
software.  For a license to use the Berkeley DB software under conditions
other than those described here, or to purchase support for this software,
please contact Oracle at [email protected].

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
/*
 * Copyright (c) 1990,2008 Oracle.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Redistributions in any form must be accompanied by information on
 *    how to obtain complete source code for the DB software and any
 *    accompanying software that uses the DB software.  The source code
 *    must either be included in the distribution or be available for no
 *    more than the cost of distribution plus a nominal fee, and must be
 *    freely redistributable under reasonable conditions.  For an
 *    executable file, complete source code means the source code for all
 *    modules it contains.  It does not include source code for modules or
 *    files that typically accompany the major components of the operating
 *    system on which the executable file runs.
 *
 * THIS SOFTWARE IS PROVIDED BY ORACLE ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
 * NON-INFRINGEMENT, ARE DISCLAIMED.  IN NO EVENT SHALL ORACLE BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
/*
 * Copyright (c) 1990, 1993, 1994, 1995
 *  The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */
/*
 * Copyright (c) 1995, 1996
 *  The President and Fellows of Harvard University.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
/***
 * ASM: a very small and fast Java bytecode manipulation framework
 * Copyright (c) 2000-2005 INRIA, France Telecom
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the copyright holders nor the names of its
 *    contributors may be used to endorse or promote products derived from
 *    this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */

This copy of Python includes a copy of Tcl, which is licensed under the following terms:

This software is copyrighted by the Regents of the University of
California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
Corporation and other parties.  The following terms apply to all files
associated with the software unless explicitly disclaimed in
individual files.

The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement,
license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors
and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where
they apply.

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.

GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
in the software and related documentation as defined in the Federal 
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs.  Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
terms specified in this license. 

This copy of Python includes a copy of Tk, which is licensed under the following terms:

This software is copyrighted by the Regents of the University of
California, Sun Microsystems, Inc., and other parties.  The following
terms apply to all files associated with the software unless explicitly
disclaimed in individual files.

The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement,
license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors
and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where
they apply.

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.

GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
in the software and related documentation as defined in the Federal 
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs.  Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
terms specified in this license.

This copy of Python includes a copy of Tix, which is licensed under the following terms:

Copyright (c) 1993-1999 Ioi Kim Lam.
Copyright (c) 2000-2001 Tix Project Group.
Copyright (c) 2004 ActiveState

This software is copyrighted by the above entities
and other parties.  The following terms apply to all files associated
with the software unless explicitly disclaimed in individual files.

The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement,
license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors
and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where
they apply.

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.

GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
in the software and related documentation as defined in the Federal 
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs.  Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
terms specified in this license. 

----------------------------------------------------------------------

Parts of this software are based on the Tcl/Tk software copyrighted by
the Regents of the University of California, Sun Microsystems, Inc.,
and other parties. The original license terms of the Tcl/Tk software
distribution is included in the file docs/license.tcltk.

Parts of this software are based on the HTML Library software
copyrighted by Sun Microsystems, Inc. The original license terms of
the HTML Library software distribution is included in the file
docs/license.html_lib.

*****************************************************************

mysql-utilities's People

Contributors

akojima avatar bkandasa avatar hramilison avatar isrgomez avatar kboortz avatar nmariz avatar peeyushgupta avatar snarkedi avatar vishchaud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mysql-utilities's Issues

mysqlprocgrep ERROR: Unread result found

Here it it,

without "--kill-connection" it's working ok,

[root@node1 ~]# mysqlprocgrep --server=root:123456@localhost --match-command=Query --age=40s
WARNING: Using a password on the command line interface can be insecure.
+------------------------+-------+-------+------------+-------+----------+-------+-------------+-----------------------+
| Connection | Id | User | Host | Db | Command | Time | State | Info |
+------------------------+-------+-------+------------+-------+----------+-------+-------------+-----------------------+
| root:@localhost:3306 | 1670 | root | localhost | None | Query | 554 | User sleep | select sleep(100000) |
| root:
@localhost:3306 | 1671 | root | localhost | None | Query | 521 | User sleep | select sleep(10000) |
+------------------------+-------+-------+------------+-------+----------+-------+-------------+-----------------------+

And I tried to kill the connection,it produced error

[root@node1 ~]# mysqlprocgrep --server=root:123456@localhost --match-command=Query --age=40s --kill-connection
WARNING: Using a password on the command line interface can be insecure.
ERROR: Unread result found

Data compare and maximum length of a table name

My table name has 60 characters,
MysqlDbCompare concatenates the table name with the prefix "compare_" (cf mysql/utilities/common/dbcompare.py) without any verification.
Results : a Query failed in the log file ...

How can I manage this case ?

error using mysqldbcopy and aws aurora

Using the latest version available on new ubuntu 18.04 1.6.5
Engine
Aurora MySQL 5.6.10a

mysqldbcopy --not-null-blobs --drop-first -vvv --source=$USER:$PASSW@$CLUSTER_WRITER_ENDPOINT:3470 --destination=source=$USER:$PASSW@$CLUSTER_WRITER_ENDPOINT:3470 skadate:skadate2

I already used the skip option with all layers. but the only one always give me a error is the "data" one i can't find the cause because the CLI only prints the above error message.

ERROR: Query failed. 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc desc text' at line 1

MySQLdbexport generates incorrect SQL for non-null blob columns

For tables that have non-null TEXT (blob) columns, mysqldbexport generates an insert statement with a null value for the column and then generates an update statement.

This wont work when mysqldbimport tries to load the file generates by mysqldbexport, as the import fails with a ERROR: Query failed. 1048 (23000): Column '<blob column>' cannot be null message.

Is there a way around this, or is this a known issue that needs to be fixed?
Or am I doing something wrong?

mysqlutilities does not work with MySQL 8.0

Specifically, mysqlfailover does not work with MySQL 8.0. It immediately fails with the following error

# Discovering slaves for master at <master-ip>:3306
# Discovering slave at <slave-1-ip>:3306
# Found slave: <slave-1-ip>:3306
# Discovering slave at <slave-2-ip>:3306
# Found slave: <slave-2-ip>:3306
# Checking privileges.
ERROR: Query failed. 1694 (HY000): Cannot modify @@session.sql_log_bin inside a transaction

mysql 8.0 issue

for mysql 8.0.15
ERROR: Query failed. 1146 (42S02): Table 'mysql.proc' doesn't exist

No module named connector

Ubuntu 16.04.3 LTS

root@cwmon02:~/mysql-utilities# mysqlbinlogpurge
Traceback (most recent call last):
File "/usr/local/bin/mysqlbinlogpurge", line 28, in
from mysql.utilities.command.binlog_admin import binlog_purge
File "/usr/local/lib/python2.7/dist-packages/mysql/utilities/command/binlog_admin.py", line 38, in
from mysql.utilities.common.server import Server
File "/usr/local/lib/python2.7/dist-packages/mysql/utilities/common/server.py", line 33, in
import mysql.connector
ImportError: No module named connector

Despite being detected during install

root@cwmon02:~/mysql-utilities# python2.7 ./setup.py install
checking mysql for packages to distribute
packages found: ['mysql', 'mysql.utilities', 'mysql.utilities.command', 'mysql.utilities.common']
scripts found: ['scripts/mysqlrplsync.py', 'scripts/mysqldbexport.py', 'scripts/mysqlfailover.py', 'scripts/mysqlprocgrep.py', 'scripts/mysqlrplshow.py', 'scripts/mysqlgrants.py', 'scripts/mysqlslavetrx.py', 'scripts/mysqlrpladmin.py', 'scripts/mysqluc.py', 'scripts/mysqlserverinfo.py', 'scripts/mysqlauditadmin.py', 'scripts/mysqlrplms.py', 'scripts/mysqlauditgrep.py', 'scripts/mysqlfrm.py', 'scripts/mysqldiff.py', 'scripts/mysqldbcompare.py', 'scripts/mysqlreplicate.py', 'scripts/mysqluserclone.py', 'scripts/mysqlbinlogrotate.py', 'scripts/mysqlrplcheck.py', 'scripts/mysqlmetagrep.py', 'scripts/mysqlbinlogmove.py', 'scripts/mysqlindexcheck.py', 'scripts/mysqldbimport.py', 'scripts/mysqldiskusage.py', 'scripts/mysqlserverclone.py', 'scripts/mysqldbcopy.py', 'scripts/mysqlbinlogpurge.py']
package set set(['mysql.utilities.common', 'mysql.utilities.command', 'mysql.utilities', 'mysql'])
running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
copying build/scripts-2.7/mysqlreplicate -> /usr/local/bin
copying build/scripts-2.7/mysqldiskusage -> /usr/local/bin
copying build/scripts-2.7/mysqlrplms -> /usr/local/bin
copying build/scripts-2.7/mysqlbinlogrotate -> /usr/local/bin
copying build/scripts-2.7/mysqldiff -> /usr/local/bin
copying build/scripts-2.7/mysqlfailover -> /usr/local/bin
copying build/scripts-2.7/mysqlrplshow -> /usr/local/bin
copying build/scripts-2.7/mysqlauditgrep -> /usr/local/bin
copying build/scripts-2.7/mysqlbinlogpurge -> /usr/local/bin
copying build/scripts-2.7/mysqlmetagrep -> /usr/local/bin
copying build/scripts-2.7/mysqldbexport -> /usr/local/bin
copying build/scripts-2.7/mysqldbcopy -> /usr/local/bin
copying build/scripts-2.7/mysqlbinlogmove -> /usr/local/bin
copying build/scripts-2.7/mysqlserverinfo -> /usr/local/bin
copying build/scripts-2.7/mysqlrplcheck -> /usr/local/bin
copying build/scripts-2.7/mysqlrpladmin -> /usr/local/bin
copying build/scripts-2.7/mysqlindexcheck -> /usr/local/bin
copying build/scripts-2.7/mysqluc -> /usr/local/bin
copying build/scripts-2.7/mysqlfrm -> /usr/local/bin
copying build/scripts-2.7/mysqlprocgrep -> /usr/local/bin
copying build/scripts-2.7/mysqlslavetrx -> /usr/local/bin
copying build/scripts-2.7/mysqldbimport -> /usr/local/bin
copying build/scripts-2.7/mysqlserverclone -> /usr/local/bin
copying build/scripts-2.7/mysqlauditadmin -> /usr/local/bin
copying build/scripts-2.7/mysqlgrants -> /usr/local/bin
copying build/scripts-2.7/mysqlrplsync -> /usr/local/bin
copying build/scripts-2.7/mysqldbcompare -> /usr/local/bin
copying build/scripts-2.7/mysqluserclone -> /usr/local/bin
changing mode of /usr/local/bin/mysqlreplicate to 755
changing mode of /usr/local/bin/mysqldiskusage to 755
changing mode of /usr/local/bin/mysqlrplms to 755
changing mode of /usr/local/bin/mysqlbinlogrotate to 755
changing mode of /usr/local/bin/mysqldiff to 755
changing mode of /usr/local/bin/mysqlfailover to 755
changing mode of /usr/local/bin/mysqlrplshow to 755
changing mode of /usr/local/bin/mysqlauditgrep to 755
changing mode of /usr/local/bin/mysqlbinlogpurge to 755
changing mode of /usr/local/bin/mysqlmetagrep to 755
changing mode of /usr/local/bin/mysqldbexport to 755
changing mode of /usr/local/bin/mysqldbcopy to 755
changing mode of /usr/local/bin/mysqlbinlogmove to 755
changing mode of /usr/local/bin/mysqlserverinfo to 755
changing mode of /usr/local/bin/mysqlrplcheck to 755
changing mode of /usr/local/bin/mysqlrpladmin to 755
changing mode of /usr/local/bin/mysqlindexcheck to 755
changing mode of /usr/local/bin/mysqluc to 755
changing mode of /usr/local/bin/mysqlfrm to 755
changing mode of /usr/local/bin/mysqlprocgrep to 755
changing mode of /usr/local/bin/mysqlslavetrx to 755
changing mode of /usr/local/bin/mysqldbimport to 755
changing mode of /usr/local/bin/mysqlserverclone to 755
changing mode of /usr/local/bin/mysqlauditadmin to 755
changing mode of /usr/local/bin/mysqlgrants to 755
changing mode of /usr/local/bin/mysqlrplsync to 755
changing mode of /usr/local/bin/mysqldbcompare to 755
changing mode of /usr/local/bin/mysqluserclone to 755
running install_egg_info
Removing /usr/local/lib/python2.7/dist-packages/mysql_utilities-1.6.5.egg-info
Writing /usr/local/lib/python2.7/dist-packages/mysql_utilities-1.6.5.egg-info

Can't use `mysqldiff` or `mysqlcompare`

We are using AWS RDS MySQL version 5.6.10. I have installed mysql-utilities from https://github.com/mysql/mysql-utilities via the manual install method (python2 setup.py install) and the mysql-connector-python package from pip (pip install --user mysql-connector-python). We are trying to see the diff between the 2 databases

Since I am using Python2 and by extension, pip from Homebrew, I had to modify the script a little bit (using /usr/local/bin/python2 rather than /usr/bin/python).

For mysqldiff I am running the command:

mysqldiff \
  --server1='[username1]:[password1]@[servername1].rds.amazonaws.com:3306' \
  --server2='[username2]:[password2]@[servername2].rds.amazonaws.com:3306' \
  --difftype=differ \
  [databasename1]:[databasename2]

For mysqldbcompare, I am running the command:

mysqldbcompare \
  --server1='[username1]:[password1]@[servername1].rds.amazonaws.com:3306' \
  --server2='[username2]:[password2]@[servername2].rds.amazonaws.com:3306' \
  --difftype=differ \
  [databasename1]:[databasename2]

However, I am getting the following errors:

# WARNING: Using a password on the command line interface can be insecure.
Traceback (most recent call last):
  File "./src/mysqldbcompare", line 299, in <module>
    servers = connect_servers(server1_values, server2_values, conn_opts)
  File "/usr/local/lib/python2.7/site-packages/mysql/utilities/common/server.py", line 489, in connect_servers
    source = get_server(src_name, src_dict, quiet, verbose=verbose)
  File "/usr/local/lib/python2.7/site-packages/mysql/utilities/common/server.py", line 336, in get_server
    server_conn.connect()
  File "/usr/local/lib/python2.7/site-packages/mysql/utilities/common/server.py", line 1104, in connect
    res = self.show_server_variable('character_set_client')
  File "/usr/local/lib/python2.7/site-packages/mysql/utilities/common/server.py", line 1391, in show_server_variable
    return self.exec_query("SHOW VARIABLES LIKE '%s'" % variable)
  File "/usr/local/lib/python2.7/site-packages/mysql/utilities/common/server.py", line 1327, in exec_query
    cur.close()
  File "/usr/local/lib/python2.7/site-packages/mysql/connector/cursor.py", line 395, in close
    self._connection.handle_unread_result()
  File "/usr/local/lib/python2.7/site-packages/mysql/connector/connection_cext.py", line 614, in handle_unread_result
    raise errors.InternalError("Unread result found")
mysql.connector.errors.InternalError: Unread result found

Why I think this is a mysql-utilities error:

I tried manually connecting via mysql --host='[servername].rds.amazonaws.com' --user=[username] --password='[password]' --port=3306 and I was able to connect with no errors.

Further info:

MySQL Version: 5.6.10 AWS RDS
Python 2 Version: Python 2.7.15 (from macOS Homebrew)
mysql-utilities Version: 1.6.5
mysql-connector-python Version: 8.0.13

mysqlfrm can't interpret .frm files for partitioned tables

I'm using MySQL Utilities mysqlfrm version 1.6.5 on Ubuntu 18.04.3, and I trying to use mysqlfrm to extract the create table ... information from a .frm file. This file is part of a backup created with Percona's innobackupex of a version 5.5 database. This is what I try (The full output attached, as well as the .frm file):

$ mysqlfrm --diagnostic -vvv game_action.frm
...
# Skipping to column data at : 2102
{'com_length': 17740,
 'int_length': 17749,
 'interval_count': 22048,
 'interval_parts': 19521,
 'n_length': 13616,
 'null_fields': 8270,
 'num_cols': 12912,
 'pos': 12592,
 'unknown': 24375}
# Fields per screen = 53
EXCEPTION: unpack requires a string argument of length 1
ERROR: Cannot read column data.

Opening the file in a hex editor indicates that the actual column data start near the very end of the file, at 0x3153:

...
00003150   04 00 0F 67  61 6D 65 5F  61 63 74 69  6F 6E 5F 69  ...game_action_i
00003160   64 00 05 00  08 67 61 6D  65 5F 69 64  00 06 00 08  d....game_id....
00003170   75 73 65 72  5F 69 64 00  07 00 11 67  61 6D 65 5F  user_id....game_
00003180   69 6E 73 74  61 6E 63 65  5F 69 64 00  08 00 05 74  instance_id....t
00003190   79 70 65 00  09 00 07 61  6D 6F 75 6E  74 00 0A 00  ype....amount...
000031A0   09 63 75 72  72 65 6E 63  79 00 0B 00  12 63 72 65  .currency....cre
000031B0   61 74 65 64  5F 74 69 6D  65 73 74 61  6D 70 00 04  ated_timestamp..
000031C0   0F 14 14 00  02 00 00 42  00 0F 00 00  08 21 00 00  .......B.....!..
000031D0   05 08 0B 0B  00 0A 00 00  1B 40 00 00  00 03 21 00  .........@....!.
000031E0   00 06 08 0B  0B 00 0E 00  00 1B 40 00  00 00 03 21  ..........@....!
000031F0   00 00 07 11  14 14 00 12  00 00 42 80  00 00 00 08  ..........B.....
00003200   21 00 00 08  05 2D 2D 00  1A 00 00 00  40 00 00 00  !....--.....@...
00003210   0F 21 00 00  09 07 14 14  00 48 00 00  03 42 00 00  .!.......H...B..
00003220   00 F6 21 00  00 0A 09 2D  2D 00 51 00  00 00 40 00  ..!....--.Q...@.
00003230   00 00 0F 21  00 00 0B 12  13 13 00 7F  00 00 3E 00  ...!..........>.
00003240   15 00 00 07  08 00 00 FF  67 61 6D 65  5F 61 63 74  ........game_act
00003250   69 6F 6E 5F  69 64 FF 67  61 6D 65 5F  69 64 FF 75  ion_id.game_id.u
00003260   73 65 72 5F  69 64 FF 67  61 6D 65 5F  69 6E 73 74  ser_id.game_inst
00003270   61 6E 63 65  5F 69 64 FF  74 79 70 65  FF 61 6D 6F  ance_id.type.amo
00003280   75 6E 74 FF  63 75 72 72  65 6E 63 79  FF 63 72 65  unt.currency.cre
00003290   61 74 65 64  5F 74 69 6D  65 73 74 61  6D 70 FF 00  ated_timestamp..

game_action.out.gz

game_action.frm.gz

MyDefaultsReader doesn't decode password from login-path

from mysql.utilities.common.my_print_defaults import MyDefaultsReader
r = MyDefaultsReader()
r.get_group_data('LOGIN-PATH')
{'host': '127.0.0.1', 'password': '*****', 'user': 'root', 'port': 'PORT'}

With .mylogin.cnf generated by mysql_config_editor from MySQL Client 5.7, the password is encoded. my_print_defaults LOGIN-PATH doesn't show the password in plain text but ******, while my_print_defaults -s LOGIN-PATH shows the password in plain text. MyDefaultsReader calls my_print_defaults which runs my_print_defaults LOGIN-PATH so that the password param is been filled with asterisks and this causes almost every utilities to fail with ERROR: Access denied for user 'root'@'127.0.0.1' using password: YES.

Maybe calling my_print_defaults with -s option would solve the problem?

P.S. mysql-cli works perfectly with the same .mylogin.cnf.

mysql-utilities do not work anymore with MySQL 8.0.26

After updating MySQL8 from an earlier release up to 8.0.26 the utilities stopped working. Even the command mysqlserverinfo fails as the support for utf8mb3 is removed.

$ mysqlserverinfo --server=<conn_info>
ERROR: Character set 'utf8mb3' unsupported.

Maybe it's possible to make it compatible again....

With regards,
Peter.

mysqldbcompare fails with event definitions.

mysqldbcompare gets events info from INFORMATION_SCHEMA.EVENTS:

SELECT EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_DEFINITION,
    EVENT_TYPE, INTERVAL_FIELD, INTERVAL_VALUE, STATUS,
    ON_COMPLETION, STARTS, ENDS
FROM
    INFORMATION_SCHEMA.EVENTS
WHERE 
    EVENT_SCHEMA = 'schema' AND EVENT_NAME = 'name';

The trouble is that events replicated from master to slave will have their 'STATUS' field changed from 'ENABLED' to 'SLAVESIDE_DISABLED' and this will make replicated database comparisons always fail.

mysqldiff-bug: when indexed on more than one columns,the diff-result is wrong

proble-desc:

table structure in server1:

mysql> show create TABLE xs.fyair_operation_log \G;
*************************** 1. row ***************************
Table: fyair_operation_log
Create Table: CREATE TABLE fyair_operation_log (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
order_id bigint(20) NOT NULL COMMENT '关联订单id',
operator varchar(64) NOT NULL DEFAULT ' ' COMMENT '操作人',
operation varchar(6000) NOT NULL DEFAULT ' ' COMMENT '操作日志',
source tinyint(4) NOT NULL DEFAULT '0' COMMENT '操作来源',
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
operate_time datetime NOT NULL COMMENT '日志记录时间',
PRIMARY KEY (id),
KEY idx_order_id_operate_time (order_id,operate_time)
) ENGINE=InnoDB AUTO_INCREMENT=617 DEFAULT CHARSET=utf8 COMMENT='操作日志表';

table structure in server1:
mysql> show create TABLE xs.fyair_operation_log \G;
*************************** 1. row ***************************
Table: fyair_operation_log
Create Table: CREATE TABLE fyair_operation_log (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
order_id bigint(20) NOT NULL COMMENT '关联订单id',
operator varchar(64) NOT NULL DEFAULT ' ' COMMENT '操作人',
operation varchar(6000) NOT NULL DEFAULT ' ' COMMENT '操作日志',
source tinyint(4) NOT NULL DEFAULT '0' COMMENT '操作来源',
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
operate_time datetime NOT NULL COMMENT '日志记录时间',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=617 DEFAULT CHARSET=utf8 COMMENT='操作日志表'

changes-for=server2 diff-result:
ALTER TABLE xs.fyair_operation_log
DROP PRIMARY KEY,
ADD PRIMARY KEY(id),
ADD INDEX idx_order_id_operate_time (operate_time,order_id);

reason:

The function 'get_common_lists(list1,list2)' in dbcompare.py uses the unordered set to get the differences between list1 and list2, this leads to the adding index is alaways idx_order_id_operate_time(operate_time,order_id) instead of idx_order_id_operate_time(order_id,operate_time);

mysqldbcompare unable to connect to 5.7 with the new mysql-connector-python-8.0.17.

I updated the python connector from 8.0.16 to 8.0.17 and now mysqldbcompare is unable to connect to v5.7 server.

mysql.connector.errors.DatabaseError: 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'

As far as I understand utf8mb4_0900_ai_ci (unsupported in v5.7) was made the default collation in the python connector v8.0.17 and there doesn't seem to be a way to specify a different collation on mysqldbcompare command line.

I managed to work around it by setting utf8mb4_unicode_520_ci to true in:
/usr/lib64/python2.7/site-packages/mysql/connector/charsets.py

There really should be a way to specify collation on the command line (much like the --character-set switch).

"Missing gtid_executed system variable" in MySQL 5.7

I got this error message in some failover operations with MySQL 5.7 servers.

ERROR: The server xxxx:3306 does not comply to the latest GTID feature support. Errors:
    Missing gtid_executed system variable.

I suppose the query from mysql/utilities/common/server.py is invalid:

"SHOW VARIABLES LIKE 'gtid_executed'"

and this is correct:

"SHOW GLOBAL VARIABLES LIKE 'gtid_executed'"

(python) mysql.connector.errors.InterfaceError: 2003

I write a .py script can extract mysql data and print it out, I want to make the html page run this script and face mysql.connector.errors.InterfaceError, but .py script individually works fine

environment: I put both .py and .html in winSCP to make the page live

  • get_sql_where.py (the script can execute fine by itself, I ran get_sql_where.py in cmd works fine )
import mysql.connector
import webbrowser
import time
import pymysql

mydb = mysql.connector.connect(
  host="196.168.1.141",
  user="root",
  password="password123", 
  database="normal_db",  
  auth_plugin='mysql_native_password'
)
              
mycursor = mydb.cursor()
mycursor.execute("SELECT P_TITLE,P_DESC  FROM webpage WHERE P_ID = 'en_1-01'")                       
                                         
myresult = mycursor.fetchall()

print(myresult)    
  • .html page
<!DOCTYPE html>
<!-- myPyScriptRun.html -->
<html><head>
    <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
    <script defer src="https://pyscript.net/latest/pyscript.js"></script>
</head><body>
    <b><p>this is the info from sql</p></b><br>
    <py-config>
packages = ["mysql-connector-python", "PyMySQL"]
    </py-config>
    <py-script src="./get_sql_where.py" />
</body></html>

Main Problem: face mysql.connector.errors.InterfaceError: 2003

  • error message
Traceback (most recent call last):
  File "/lib/python3.10/site-packages/mysql/connector/network.py", line 600, in open_connection
    self.sock.connect(sockaddr)
BlockingIOError: [Errno 26] Operation in progress

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 435, in eval_code
    .run(globals, locals)
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 304, in run
    coroutine = eval(self.code, globals, locals)
  File "<exec>", line 9, in <module>
  File "/lib/python3.10/site-packages/mysql/connector/pooling.py", line 294, in connect
    return MySQLConnection(*args, **kwargs)
  File "/lib/python3.10/site-packages/mysql/connector/connection.py", line 167, in __init__
    self.connect(**kwargs)
  File "/lib/python3.10/site-packages/mysql/connector/abstracts.py", line 1178, in connect
    self._open_connection()
  File "/lib/python3.10/site-packages/mysql/connector/connection.py", line 571, in _open_connection
    self._socket.open_connection()
  File "/lib/python3.10/site-packages/mysql/connector/network.py", line 602, in open_connection
    raise InterfaceError(
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '196.168.1.141:3306' (26 Operation in progress)

I tried super hard to achieve this goal, hope someone can give a hand

I have read through link 01 , link 02 discussion but I don't find the fit solution for my case, thanks

Mysqldiff error: when the associated query primary key index is established on multiple columns, the diff result is wrong

table structure in server1:
CREATE TABLE t1 (
a int NOT NULL,
b char(10) NOT NULL,
c varchar(100) DEFAULT '',
PRIMARY KEY (a,b),
KEY idx_a_b (a,b)
)

table structure in server2:
CREATE TABLE t1 (
a int(11) NOT NULL AUTO_INCREMENT,
b char(10) DEFAULT NULL COMMENT '保证金',
c varchar(100) NOT NULL DEFAULT '',
d datetime DEFAULT NULL,
e datetime DEFAULT NULL,
PRIMARY KEY (a),
KEY idx_b_c (b,c)
)

--changes-for=server1 result :
ALTER TABLE test.t1
DROP PRIMARY KEY,
DROP PRIMARY KEY,
DROP INDEX idx_a_b,
ADD PRIMARY KEY(a),
ADD INDEX idx_b_c (b,c),
CHANGE COLUMN a a int(11) NOT NULL AUTO_INCREMENT,
ADD COLUMN e datetime NULL,
ADD COLUMN d datetime NULL AFTER c,
CHANGE COLUMN c c varchar(100) NOT NULL DEFAULT '',
CHANGE COLUMN b b char(10) NULL COMMENT '保证金',
AUTO_INCREMENT=3, COLLATE=utf8_general_ci;

If it is a federated primary key, "drop primary key" will generate multiple primary keys

image

mysqlfailover daemon not doing anything during forced poweroff of master server

While testing mysqlfailover with a simple master-slave replication setup on two separate Rackspace VMs, I was intentionally forcing the master server to power off using the poweroff --force command with the hope that the mysqlfailover daemon would see that the master server was unavailable and failover to the slave server.

I thought that a hard shutdown or immediate/forced loss of power would be handled by the mysqlfailover utility, but the utility, running as a daemon, seemed to do nothing while the master server was powered off until that server was brought back online without MySQL running (LUKS LVM volume for mysql not open and mounted, mysql service in error/failed state). At that point, the daemon recognized that the MySQL server wasn't running on the 'failed' master and failed over to the slave normally.

The last entry in the failover log was a Health Status INFO messaged timestamped a few seconds before I executed the poweroff command on the master server.

I expected that setting the connection-timeout=5 option for the daemon would cause the connections to the master to time out after 5 seconds and override any setting in the Connector/Python library that might have been set differently than the default of 10 seconds. I'm assuming the connections were killed when the master server was forced to power off, but I don't know if that is true.

I also assumed that setting master-fail-retry=10 would mean that the daemon would run the failover check again after that delay expired.

Is there another option I can try? Is this an unhandled edge case? Is there a way I can see more information about the failover daemon or the connections it makes? Is there a MySQL setting that could have kept the connections alive/retrying much longer than I expected?

 5.7.22-0ubuntu0.16.04.1-log (Ubuntu)

MySQL Utilities mysqlfailover version 1.6.5

mysqlfailover --master=/<redacted>/.my.cnf[clientprimary] --slaves=/<redacted>/.my.cnf[clientsecondary] --log=/var/log/mysql_failover.log --verbose --interval=5 --ping=1 --connection-timeout=5 --master-fail-retry=10 --exec-after=/<redacted>/call_failover_py.sh --daemon=start --force

2018-08-13 19:09:23 PM INFO host: <redacted>, port: 3306, role: MASTER, state: UP, gtid_mode: ON, health: OK, version: 5.7.22-0ubuntu0.16.04.1-log, master_log_file: mysql-bin.000001, master_log_pos: 102517, IO_Thread: , SQL_Thread: , Secs_Behind: , Remaining_Delay: , IO_Error_Num: , IO_Error: , SQL_Error_Num: , SQL_Error: , Trans_Behind:
2018-08-13 19:09:23 PM INFO host: <redacted>, port: 3306, role: SLAVE, state: UP, gtid_mode: ON, health: OK, version: 5.7.22-0ubuntu0.16.04.1-log, master_log_file: mysql-bin.000001, master_log_pos: 108539, IO_Thread: Yes, SQL_Thread: Yes, Secs_Behind: 0, Remaining_Delay: No, IO_Error_Num: 0, IO_Error: , SQL_Error_Num: 0, SQL_Error: , Trans_Behind: 0
2018-08-13 19:11:44 PM INFO Master may be down. Waiting for 3 seconds.
2018-08-13 19:11:59 PM INFO Failed to reconnect to the master after 3 attempts.
2018-08-13 19:11:59 PM CRITICAL Master is confirmed to be down or unreachable.
2018-08-13 19:11:59 PM INFO Failover starting in 'auto' mode...
2018-08-13 19:11:59 PM INFO Checking eligibility of slave <redacted>:3306 for candidate.
2018-08-13 19:11:59 PM INFO GTID_MODE=ON ... Ok
2018-08-13 19:11:59 PM INFO Replication user exists ... Ok
2018-08-13 19:11:59 PM INFO Candidate slave <redacted>:3306 will become the new master.
2018-08-13 19:11:59 PM INFO Checking slaves status (before failover).
2018-08-13 19:11:59 PM INFO Preparing candidate for failover.
2018-08-13 19:11:59 PM INFO Reading events in relay log for slave <redacted>:3306
2018-08-13 19:11:59 PM INFO Creating replication user if it does not exist.
2018-08-13 19:11:59 PM INFO Stopping slaves.
2018-08-13 19:11:59 PM INFO Performing STOP on all slaves.
2018-08-13 19:11:59 PM WARNING Executing stop on slave <redacted>:3306 WARN - slave is not configured with this master
2018-08-13 19:12:00 PM INFO Executing stop on slave <redacted>:3306 Ok
2018-08-13 19:12:00 PM INFO Switching slaves to new master.
2018-08-13 19:12:00 PM INFO Disconnecting new master as slave.
2018-08-13 19:12:00 PM INFO Execute on <redacted>:3306: RESET SLAVE ALL
2018-08-13 19:12:00 PM INFO Starting slaves.
2018-08-13 19:12:00 PM INFO Performing START on all slaves.
2018-08-13 19:12:00 PM INFO Spawning external script.
- (my exec-post script output
2018-08-13 19:12:00 PM INFO Executing failover.py
2018-08-13 19:12:00 PM INFO roles master updated to clientsecondary
2018-08-13 19:12:00 PM INFO roles slave updated to clientprimary
2018-08-13 19:12:00 PM INFO Updating Hosts Files
-
2018-08-13 19:12:01 PM INFO Script completed Ok.
2018-08-13 19:12:01 PM INFO Checking slaves for errors.
2018-08-13 19:12:01 PM INFO Failover complete.

[FEATURE] Add "--hex-blob" option for mysqldbcompare

When using the mysqldbcompare command to show the differences between 2 databases it would be very usefull to be able to dump binary columns using hexadecimal notation as it's possible using mysqldump. It improve the read of file content.

Currently when I try to reimport the blob values, I need to enable Mysql --binary-mode but the imported files seems to be corrupted.

Would it be possible to add this option?

Grant statements from AWS RDS are incorrectly parsed because of mandatory quoted password in regex

Hi,
This is a follow up to BUG#21653352 and its corresponding fix (commit). The fix is not complete, since line 690 still relies on single quotes and does not accept the masked ''<secret>" string (see original commit).

I'm encountering the issue when trying to use mysqluserclone:

mysqluserclone --source peter:dog@localhost:3308 peter@% peter2:cat@% --include-global-privileges --verbose --force

creates

ARNING: Using a password on the command line interface can be insecure.
# Source on localhost: ... connected.
# Cloning 1 users...
# Cloning peter@% to user peter2:cat@% 
CREATE USER 'peter3'@'%' IDENTIFIED BY 'secret'
Traceback (most recent call last):
  File "/home/swozny/prt/prt/venv/bin/mysqluserclone", line 199, in <module>
    new_user_list, options)
  File "/home/swozny/prt/prt/venv/local/lib/python2.7/site-packages/mysql/utilities/command/userclone.py", line 216, in clone_user
    user_source.clone(new_user, destination, global_privs)
  File "/home/swozny/prt/prt/venv/local/lib/python2.7/site-packages/mysql/utilities/common/user.py", line 690, in clone
    end = grant.index("'", start + len(search_str) + 2) + 2
ValueError: substring not found

mysqldiff generate wrong result for SQL statement with auto_increment

# WARNING: Using a password on the command line interface can be insecure.
# server1 on 127.0.0.1: ... connected.
# server2 on 127.0.0.1: ... connected.
# Comparing db1.tt1 to db2.tt1                                     [FAIL]
# Object definitions differ. (--changes-for=server2)
#

--- db2.tt1
+++ db1.tt1
@@ -1,5 +1,5 @@
 CREATE TABLE `tt1` (
-  `id` int(12) NOT NULL,
+  `id` int(11) NOT NULL AUTO_INCREMENT,
   `sex` int(11) DEFAULT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4
Compare failed. One or more differences found.

the result of mysqldiff is

# server1 on 127.0.0.1: ... connected.
# server2 on 127.0.0.1: ... connected.
# Comparing db1.tt1 to db2.tt1                                     [FAIL]
# Transformation for --changes-for=server2:
#

ALTER TABLE `db2`.`tt1` 
  DROP PRIMARY KEY, 
  ADD PRIMARY KEY(`id`), 
  CHANGE COLUMN id id int(11) NOT NULL, 
AUTO_INCREMENT=3;

the wrong result of mysqldiff miss AUTO_INREMENT

Diffrent results recreating .frm files with mysqlfrm between MySQL 5.7 and Percona XtraDB cluster 5.7

I have recently stumbled upon a problem while restoring a MySQL 5.7 database into a Percona XtraDB cluster 5.7.

These are the version of the tools I am using:

[root@percona-1 ~]# rpm -q mysql-utilities
mysql-utilities-1.6.5-1.el7.noarch
[root@percona-1 ~]# rpm -q mysql-connector-python
mysql-connector-python-2.0.4-1.el7.noarch
[root@percona-1 ~]# mysqlfrm --version
MySQL Utilities mysqlfrm version 1.6.5

seems as if mysqlfrm can't open files for reading on percona xtradb cluster 5.7 as opposed to a normal MySQL 5.7 database.

Exapmple done on percona xtradb cluster 5.7:

mysqlfrm -vvv --user=root '--server=root:password@localhost:3306' --port=3310 /root/database/example.frm

# Reading .frm files
#
# Reading the example.frm file.
# Changing engine for .frm file /tmp/tmp_Rh5I8/database_temp/example.frm:
# Skipping to header at : 2
# General Data from .frm file:
{'IO_SIZE': 4096,
 'MYSQL_VERSION_ID': 50723,
 'avg_row_length': 0,
 'charset_low': 0,
 'create_options': 9,
 'db_create_pack': 2,
 'default_charset': 45,
 'default_part_eng': 0,
 'extra_size': 36,
 'frm_file_ver': 5,
 'frm_version': 10,
 'key_block_size': 0,
 'key_info_length': 88,
 'key_length': 706,
 'legacy_db_type': 'INNODB',
 'length': 12288,
 'max_rows': 0,
 'min_rows': 0,
 'rec_length': 436,
 'row_type': 0,
 'table_charset': 45,
 'tmp_key_length': 706}
# Engine string: InnoDB
# Server version in file: 5.7.23
ERROR: Failed to correctly read the .frm file. Please try reading the file with the --diagnostic mode.
# Shutting down spawned server
# Removing the temporary datadir
#
# WARNING: The following files could not be read. You can try the --diagnostic mode to read these files.
#
# /root/database/example.frm
#
#...done.

Exapmple done on mysql 5.7:

mysqlfrm -vvv --user=root '--server=root:password@localhost:3306' --port=3310 /root/database/example.frm

# Reading .frm files
#
# Reading the example.frm file.
# Changing engine for .frm file /tmp/tmpVg9PpA/database_temp/example.frm:
# Skipping to header at : 2
# General Data from .frm file:
{'IO_SIZE': 4096,
 'MYSQL_VERSION_ID': 50723,
 'avg_row_length': 0,
 'charset_low': 0,
 'create_options': 9,
 'db_create_pack': 2,
 'default_charset': 45,
 'default_part_eng': 0,
 'extra_size': 36,
 'frm_file_ver': 5,
 'frm_version': 10,
 'key_block_size': 0,
 'key_info_length': 88,
 'key_length': 706,
 'legacy_db_type': 'INNODB',
 'length': 12288,
 'max_rows': 0,
 'min_rows': 0,
 'rec_length': 436,
 'row_type': 0,
 'table_charset': 45,
 'tmp_key_length': 706}
# Engine string: InnoDB
# Server version in file: 5.7.23
#
# CREATE statement for /root/database/example.frm:
#
CREATE TABLE `database`.`example` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `queue` varchar(100) NOT NULL DEFAULT '',
  `payload` longtext NOT NULL,
  `attempts` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `reserved_at` int(10) unsigned DEFAULT '0',
  `available_at` int(10) unsigned NOT NULL DEFAULT '0',
  `created_at` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `jobs_queue_reserved_at_index` (`queue`,`reserved_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
# Shutting down spawned server
# Removing the temporary datadir
#...done.

Looking forward for an explanation.

Master switchover fails on 5.6 with wildcard characters in user's hostname

Hello,

Master switchover fails on 5.6 when replication user's hostname has wildcard characters.
E.g. if replication user is added as repl@% the following line will be executed b/c the script tries to fetch password for the replication [email protected]() and when it's stored in database as user@% -- it is just ignored and the script fails:

ERROR: The specified replication user is using a different password that the one specified.
Use the --force option to force the use of the user specified with  --rpl-user and new password.
# Errors found. Switchover aborted.

Whereas with 5.7 it works ok, since the script tries to connect to the server using provided user/password instead of comparing passwords (after f0fd574).

Could we consider using this block unconditionally? Seems like it works ok with versions < 5.7 too.

mysqldiff does not work with MySQL 8.0.13 server (Windows 10)

We are successfully using mysqldiff as part of our build process to validate our migration scripts with MySQL 5.7. This has been a perfect solution for us for years. We are looking to upgrade to MySQL 8.0.13, but are running into the following error:

ERROR: Authentication plugin 'caching_sha2_password' is not supported

We have configured the database user with mysql_native_password but this apparently is not sufficient. Presumably, we need to have mysqldiff use the version 8 driver. It is unclear (to us) if this is something we can easily do, or if the fix is more complicated.

We are looking for a fix or workaround for both Windows 10 and Amazon Linux.

mysqldbcopy error, when use option --not-null-blobs

[root@mysqlm ~]# /usr/bin/mysqldbcopy --source=test:[email protected]:3306 --destination=dba:[email protected]:3307 sql_review --drop-first --skip-gtid --character-set=utf8mb4 --not-null-blobs
WARNING: Using a password on the command line interface can be insecure.
WARNING: The following tables have blob fields set to NOT NULL.
    sql_review.mysql_slow_query_review_221 Column fingerprint
    sql_review.mysql_slow_query_review_221 Column sample
    sql_review.mysql_slow_query_review_history_221 Column sample

# Source on 172.30.200.221: ... connected.
# Destination on 172.30.200.201: ... connected.
# WARNING: The server supports GTIDs but you have elected to skip executing the GTID_EXECUTED statement. Please refer to the MySQL online reference manual for more information about how to handle GTID enabled servers with backup and restore operations.
# Copying database sql_review 
# Copying TABLE sql_review.mysql_slow_query_review_221
# Copying TABLE sql_review.mysql_slow_query_review_history_221
# Copying GRANTS from sql_review
ERROR: Query failed. 1146 (42S02): Table 'none.mysql_slow_query_review_221' doesn't exist

Insufficient Error Info: CRITICAL [Errno 2] No such file or directory

I try to use it with docker (ubuntu 16.04), but met a problem without a good explain. I suggest to not only print e.errmsg, but add print(traceback.format_exc()) for more error details.

The cmd I execute is:

mysqlfailover --master=root:[email protected]:3306 --discover-slaves-login=root:root health

The log I have is:

2018-05-28 01:05:11 AM INFO MySQL Utilities mysqlfailover version 1.6.4.
2018-05-28 01:05:11 AM INFO Server '172.17.0.2:3306' is using MySQL version 5.7.22-log.
2018-05-28 01:05:11 AM INFO Discovering slaves for master at 172.17.0.2:3306
2018-05-28 01:05:11 AM INFO Discovering slave at 172.17.0.3:3306
2018-05-28 01:05:11 AM INFO Found slave: 172.17.0.3:3306
2018-05-28 01:05:11 AM INFO Server '172.17.0.3:3306' is using MySQL version 5.7.22-log.
2018-05-28 01:05:11 AM INFO Checking privileges.
2018-05-28 01:05:11 AM INFO Unregistering existing instances from slaves.
2018-05-28 01:05:11 AM INFO Registering instance on master.
2018-05-28 01:05:11 AM INFO Failover console started.
2018-05-28 01:05:11 AM INFO Failover mode = auto.
2018-05-28 01:05:11 AM INFO Unregistering instance on master.
2018-05-28 01:05:11 AM CRITICAL [Errno 2] No such file or directory

It doesn't tell me WHAT file is missing.

After I modified the mysqlfailover to show the traceback, I finally figured out the problem: it point out to /usr/local/lib/python2.7/dist-packages/mysql/utilities/common/tools.py and line 242, which means I didn't have ping installed!!!

After install inetutils-ping, It works fine.

I think print("ERROR: %s" % e.errmsg) is not enough to debug the problem. Adding print(traceback.format_exc()) after that would give user a better explaination.

Arguments passed to --exec-... on mysqlfailover

Hi,
I'm facing an issue concerning arguments passed to scripts for mysqlfailover. I've created customized shell scripts for --exec-before, --exec-after, --exec-fail-check and --exec-post-failover.
I get arguments in shell scripts by get values in $1,$2... But everytime the value returned is "UNKWON".
How mysqlfailover gets informations from master and slaves ? Is there a configuration file ?

Thank you.

ignore auto_increment value but add auto_increment option if missing

hello
I want to use mysqldiff to compare the schema of two sql tables (just the schema, not the data).
I run the command on two tables (table1 and table2), which are exactly the same except that table one as a column that has AUTO_INCREMENT option but the same column in table2 doesn't have this option.

I discovered that if I don't use the --skip-table-options, table that are the same but that have different AUTO_INCREMENT values will fail, so I must use this option. However, with this option, when comparing table1 and table2 will fail but the transformation doesn't add AUTO_INCREMENT. Is there an option to compare only the structure (including AUTO_INCREMENT) but not the values?

thank you

No module named info.

Attempting to install but not able to continue as no module named "info" is available. I've tried searching Google etc but found nothing. Any ideas?

$ python --version
Python 2.7.11

$ pip install mysql-utilities
Collecting mysql-utilities
  Using cached mysql-utilities-1.4.3.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-tRgO2D/mysql-utilities/setup.py", line 36, in <module>
        from info import META_INFO, INSTALL
    ImportError: No module named info

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-tRgO2D/mysql-utilities/

(python) mysql.connector.errors.InterfaceError: 2003

I write a .py script can extract mysql data and print it out, I want to make the html page run this script and face mysql.connector.errors.InterfaceError, but .py script individually works fine

environment: I put both .py and .html in winSCP to make the page live

  • get_sql_where.py (the script can execute fine by itself, I ran get_sql_where.py in cmd works fine )
import mysql.connector
import webbrowser
import time
import pymysql

mydb = mysql.connector.connect(
  host="196.168.1.141",
  user="root",
  password="password123", 
  database="normal_db",  
  auth_plugin='mysql_native_password'
)
              
mycursor = mydb.cursor()
mycursor.execute("SELECT P_TITLE,P_DESC  FROM webpage WHERE P_ID = 'en_1-01'")                       
                                         
myresult = mycursor.fetchall()

print(myresult)    
  • .html page
<!DOCTYPE html>
<!-- myPyScriptRun.html -->
<html><head>
    <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
    <script defer src="https://pyscript.net/latest/pyscript.js"></script>
</head><body>
    <b><p>this is the info from sql</p></b><br>
    <py-config>
packages = ["mysql-connector-python", "PyMySQL"]
    </py-config>
    <py-script src="./get_sql_where.py" />
</body></html>

Main Problem: face mysql.connector.errors.InterfaceError: 2003

  • error message
Traceback (most recent call last):
  File "/lib/python3.10/site-packages/mysql/connector/network.py", line 600, in open_connection
    self.sock.connect(sockaddr)
BlockingIOError: [Errno 26] Operation in progress

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 435, in eval_code
    .run(globals, locals)
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 304, in run
    coroutine = eval(self.code, globals, locals)
  File "<exec>", line 9, in <module>
  File "/lib/python3.10/site-packages/mysql/connector/pooling.py", line 294, in connect
    return MySQLConnection(*args, **kwargs)
  File "/lib/python3.10/site-packages/mysql/connector/connection.py", line 167, in __init__
    self.connect(**kwargs)
  File "/lib/python3.10/site-packages/mysql/connector/abstracts.py", line 1178, in connect
    self._open_connection()
  File "/lib/python3.10/site-packages/mysql/connector/connection.py", line 571, in _open_connection
    self._socket.open_connection()
  File "/lib/python3.10/site-packages/mysql/connector/network.py", line 602, in open_connection
    raise InterfaceError(
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '196.168.1.141:3306' (26 Operation in progress)

I tried super hard to achieve this goal, hope someone can give a hand

I have read through link 01 , link 02 discussion but I don't find the fit solution for my case, thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.