zoukankan      html  css  js  c++  java
  • 涂抹mysql笔记-mysql管理工具

    五花八门的mysql管理工具
    <>mysql提供的命令行工具
    mysql_install_db:mysql建库工具,在源码安装mysql环节我们使用过。
    mysql_safe:mysql启动工具
    mysqld:mysql主进程,mysql_safe也是调用mysqld进程。启动关闭数据库、查询或修改数据、执行各项维护操作等实际上都是基于mysqld进程的操作。
    系统参数:mysql服务启动时的参数
    系统变量:mysql服务运行时参数。比如查看与log相关的系统变量使用show global variables like 'log%';系统变量有些可以动态调整而不需要重启mysql,有些则不行。
    比如修改mysql数据库认到二进制日志格式为row格式。那么直接修改系统变量set global binlog_format=row;
    使用show global variables like 'binlog_format';查看系统变量是否修改。系统变量又分为全局(global)和会话(session)。无论全局还是会话级在下次mysql服务重启后设定就失效,只有在初始化文件中添加才能永久生效。
    状态变量:状态变量记录mysql服务的系统状态。状态变量也分为全局和会话,前者记录的是整个mysql服务的状态,而后者只代表当前会话的状态。查看mysql的状态变量:show global status;
    系统参数和系统变量之间并不是完全一比一关系,完全存在有参数但没变量,或者有变量却不存在对应参数的情况。

    <>mysqld_multi:mysql多实例管理工具需要在my.cnf添加不同的mysqld区块。使用mysqld_multi --example可以参考。这个命令专用于单个服务器上运行多个mysql实例的场景
    启动[mysqld34]这个区块:mysqld_multi start 34;
    停止[mysqld6] [mysqld7] [mysqld8]三个区块:mysqld_multi stop 6-8;

    <>mysql命令
    --auto-rehash:按Tab键补全命令
    --default-character-set:用于指定连接会话的字符集
    -e,--execute:mysql命令支持两种操作方式,交互式和非交互式。交互式就是引入到mysql命令提示符下执行的操作,非交互式执行mysql命令时,直接指定要执行的语句。比如:
    [mysql@linux02 scripts]$ mysql -usystem -poralinux -S /mysql/conf/mysql.sock -e "show slave statusG"
    Warning: Using a password on the command line interface can be insecure.
    *************************** 1. row ***************************
    Slave_IO_State: Waiting for master to send event
    Master_Host: 192.168.1.6
    Master_User: repl
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000024
    ...
    ...
    Master_Bind:
    Last_IO_Error_Timestamp:
    Last_SQL_Error_Timestamp:
    Master_SSL_Crl:
    Master_SSL_Crlpath:
    Retrieved_Gtid_Set:
    Executed_Gtid_Set:
    Auto_Position: 0

    -f,--force:在非交互模式批量执行sql语句(或执行一个包含sql语句的文件)时如果要执行的某条sql语句有错误,那么默认情况下改条语句后面所有语句都不会再被执行。例如:
    [mysql@linux02 scripts]$ mysql -usystem -poralinux -S /mysql/conf/mysql.sock -e "drop table aa.bbccdd;show slave statusG"
    Warning: Using a password on the command line interface can be insecure.
    ERROR 1051 (42S02) at line 1: Unknown table 'aa.bbccdd'
    上来就报有未知的表对象,后面那个查看slave状态的语句就不执行了。有时候我们希望错误的信息被自动忽略继续执行后面的语句,这时候-f参数就派上用场了。
    [mysql@linux02 scripts]$ mysql -usystem -poralinux -S /mysql/conf/mysql.sock -e "drop table aa.bbccdd;show slave statusG" -f
    Warning: Using a password on the command line interface can be insecure.
    ERROR 1051 (42S02) at line 1: Unknown table 'aa.bbccdd'
    *************************** 1. row ***************************
    Slave_IO_State: Waiting for master to send event
    Master_Host: 192.168.1.6
    Master_User: repl
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000024
    Read_Master_Log_Pos: 120
    Relay_Log_File: mysql-relay-bin.000011
    ...
    ...
    Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
    Master_Retry_Count: 86400
    Master_Bind:
    Last_IO_Error_Timestamp:
    Last_SQL_Error_Timestamp:
    Master_SSL_Crl:
    Master_SSL_Crlpath:
    Retrieved_Gtid_Set:
    Executed_Gtid_Set:
    Auto_Position: 0

    --show-warings:执行完语句后马上显示警告信息,相当于执行完sql语句后要自动执行show warings;语句

    system@(none)>help

    For information about MySQL products and services, visit:
    http://www.mysql.com/
    For developer information, including the MySQL Reference Manual, visit:
    http://dev.mysql.com/
    To buy MySQL Enterprise support, training, or other products, visit:
    https://shop.mysql.com/

    List of all MySQL commands:
    Note that all text commands must be first on line and end with ';'
    ? (?) Synonym for `help'.
    clear (c) Clear the current input statement.
    connect ( ) Reconnect to the server. Optional arguments are db and host.
    delimiter (d) Set statement delimiter.
    edit (e) Edit command with $EDITOR.
    ego (G) Send command to mysql server, display result vertically.
    exit (q) Exit mysql. Same as quit.
    go (g) Send command to mysql server.
    help (h) Display this help.
    nopager ( ) Disable pager, print to stdout.
    notee ( ) Don't write into outfile.
    pager (P) Set PAGER [to_pager]. Print the query results via PAGER.
    print (p) Print current command.
    prompt (R) Change your mysql prompt.
    quit (q) Quit mysql.
    rehash (#) Rebuild completion hash.
    source (.) Execute an SQL script file. Takes a file name as an argument.
    status (s) Get status information from the server.
    system (!) Execute a system shell command.
    tee (T) Set outfile [to_outfile]. Append everything into given outfile.
    use (u) Use another database. Takes database name as argument.
    charset (C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
    warnings (W) Show warnings after every statement.
    nowarning (w) Don't show warnings after every statement.

    For server side help, type 'help contents'

    pager是mysql命令行模式中的管道符。
    pager more可以分屏显示。pager后面跟的是操作系统命令,可以根据需求换成任何其他命令。nopager取消

    prompt修改当前命令行提示符
    status特别关注最后两行
    tee类似oracle中的spool

    <>mysqladmin管理工具
    常用参数:
    -i,--sleep=#:建个指定时间后,再次重复调用本mysqladmin命令
    -r,--relative:当与-i参数联合使用并且指定了extended-status命令时,显示本次与上次之间各状态值之间的差异。
    常用命令:
    1、create dbname:mysqladmin -usystem -p'oralinux' -S /mysql/conf/mysql.sock create testdb
    2、drop dbname:mysqladmin -usystem -p'oralinux' -S /mysql/conf/mysql.sock drop testdb
    3、extended-status:查看服务端状态信息,跟在mysql命令行模式下执行show global status的功能一样:
    mysqladmin -usystem -p'oralinux' -S /mysql/conf/mysql.sock extended-status
    4、flush-hosts:刷新缓存信息
    5、flush-logs:刷新日志
    6、flush-status:重置状态变量
    7、flush-tables:刷新所有表
    8、flush-privilege:重新加载授权表,功能与reload命令完全相同
    9、reload
    10、refresh:刷新所有表并切换日志文件
    11、password [new-password]:修改指定用户的密码,功能与set password语句完全相同。
    12、old-password [new-password]:修改指定用户密码,只是按照旧的格式修改
    12、ping:检查当前mysql服务是的仍能正常提供服务。
    mysqladmin -usystem -p'oralinux' -S /mysql/conf/mysql.sock ping
    13、debug:输出当前mysql服务的调试信息到error.log文件中,某些情况下性能分析或故障排查非常实用。
    14、kill id、id、...:杀掉连接至mysql服务的线程,功能与kill id语句完全相同
    15、processlist:查看当前mysql服务所用的连接线程信息,功能完全等同于show processlist;语句
    16、shutdown:关闭数据库服务
    17、status:查看当前mysql的状态
    [mysql@linux02 ~]$ mysqladmin -usystem -p'oralinux' -S /mysql/conf/mysql.sock status
    Warning: Using a password on the command line interface can be insecure.
    mysqladmin: Unknown OS character set 'GB18030'.
    mysqladmin: Switching to the default character set 'utf8'.
    Uptime: 3684 Threads: 3 Questions: 60 Slow queries: 0 Opens: 82 Flush tables: 1 Open tables: 75 Queries per second avg: 0.016
    下面几个可以作为监控指标:
    Uptime:mysql服务启动时间
    Thread:当前连接的会话数
    Questions:自mysql服务启动后执行查询语句数量
    Slow queries:慢查询语句数量
    Opens:当前处于打开状态的表对象的数量
    Flush tables:执行过flush-*、refresh、reload命令的数量
    Open tables:当前会话打开的表对象的数量
    Queries per second avg:查询的执行频率
    start-salve
    stop-slave
    variables:显示系统变量功能与show global variables;语句完全相同
    version,查看版本信息同时还包括status命令的信息

    每隔一秒输出当前mysql服务的状态信息
    mysqladmin -usystem -p'oralinux' -S /mysql/conf/mysql.sock -i 1 status
    每秒执行查询的数量
    mysqladmin -usystem -p'oralinux' -S /mysql/conf/mysql.sock -i 1 -r extended-status |grep -e "Com_select"

    <>PHPMyAdmin
    XAMPP:对Mysql、Perl、PHP封装各种相关的软件包,以及phpMyAdmin,下载地址:http://www.apachefriends.org/zh_cn/xampp.html
    1、解压: tar -xvfz xampp-linux -C /opt
    2、vi /opt/lampp/etc/extra/httpd-xampp.conf
    在/opt/lampp/phpmyadmin标签中(16-19行之间)增加一行:Require all granted。
    将LocationMatch标签中的第62行:Deny from all改为Allow from all 使其他服务器也能访问phpmyadmin
    3、启动服务:/opt/lampp/lampp start
    4、通过浏览器访问

    <>Mysql Workbench
    <>第三方管理工具:Sqlyog和Navicat

  • 相关阅读:
    Can't use Subversion command line client: svn
    SpringMVC配置easyui-datagrid
    找不到提交和更新按钮,subversion不见了,无法更新和上传代码
    静态资源[org.springframework.web.servlet.PageNotFound]
    Field 'id' doesn't have a default value
    MySql 插入数据中文乱码
    Junit 测试 Spring
    mybatis动态SQL
    Mybatis 3.3.0 Log4j配置
    MappingJacksonHttpMessageConverter过期
  • 原文地址:https://www.cnblogs.com/datalife/p/6797283.html
Copyright © 2011-2022 走看看