Chinaunix首页 | 论坛 | 博客
  • 博客访问: 277877
  • 博文数量: 52
  • 博客积分: 120
  • 博客等级: 民兵
  • 技术积分: 1189
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-03 15:41
个人简介

MySQL DBA

文章分类

全部博文(52)

文章存档

2013年(51)

2011年(1)

分类: Mysql/postgreSQL

2013-03-07 14:13:07

参考:mysql programs  

    MySQL 使用过程中,最常用到的是各种交互/管理工具,于是对官方自带的程序做一个简单的整理,如果是编译安装,安装目录下bin/ 可以找到这些工具。内容来自5.5手册和自己的一些心得体会。

1.MySQL服务相关

  • mysqld

            mysql服务主线程,负责绝大部分数据库服务工作,mysqld的配置参数在可以在启动的时候指定,一般情况下我们都存放在my.cnf中[mysqld]模块中,部分参数支持在线动态调整,一般情况下的配置优化指的都是对mysqld参数的调整,如buffer,connect,dir等。应用以及其他程序的数据库操作可以正常运行都建立mysqld服务稳定工作的前提下。检测mysqld运行状态的办法:

  • mysqld_safe(shell)

            mysqld的守护进程(linux),负责启动和在mysql异常关闭时重启mysql服务。mysqld_safe读取配置文件中[mysqld],[server],[mysqld_safe]下的参数用于启动。

  • mysql.server(shell)

           在linux下的mysql服务脚本。将其放在/etc/init.d/mysql,就可以以服务的方式启动和关闭mysql:                    

  1.         service mysql start/stop/restart

  • mysqld_multi(perl)  

           多实例服务。实现在一个服务器上面启动多个mysql实例的方法之一,在配置文件my.cnf中编辑多个section来实现对每个实例的参数配置,使用mysqld_multi来管理这些实例服务。


2.MySQL安装相关

  • comp_err 

           安装mysql时用于生成错误信息文件及相关头文件。

  • mysql_install_db(shell&perl(5.6))

           linux下用于初始化mysql数据目录(包括系统表),对于正常运行的数据库实例慎用。使用的场景:

                a. 在编译安装或者其他方式安装后,由于各种原因如数据目录权限问题导致数据目录未正常初始化。

                b.误删除系统库(表),且无有效备份。

      运行时一般要指定用户以及数据目录:        

  1.       $prefix_dir/scripts/mysql_install_db --user=mysql --basedir=$prefix_dir --datadir=$data_dir    

  • mysql_plugin(shell)

     mysql的插件式存储引擎体系允许动态加载存储引擎,同时,mysql_plugin提供了对mysql启动时加载存储引擎的配置管理。

     运行方式:

  1.        $mysql_plugin --basedir=/mysql3308/ --datadir=/data3308/ --plugin_dir=/mysql3308/ innodb enable

  • mysql_sceure_installation(shell)

           用于提供安全性的脚本,采用交互式的方式进行配置。

                a.    设置root密码
                b.    删除远程root登陆的账号
                c.    删除匿名账户
                d.    删除test

        以前不知道这个工具,加上交互式的方式不便于自动化。root 用户的密码在安装时指定,安装脚本中达到同样功能的方法: 

  1.     sql="delete from mysql.user where user='';
  2.          delete from mysql.user where user='root' and host<>'localhost';
  3.          flush privileges;"

  • mysql_tzinfo_to_sql

           用于加载时区表到系统库中。

  • mysql_upgrade

           升级mysql版本后运行的脚本。用于检查所有的表与新版本的兼容性以及升级系统表。数据目录中文件mysql_upgrade_info保存当前的版本信息。由于这个脚本在运行过程中会对全局所有的表做check,消费时间较长,且其调用的mysqlcheck会进行锁表操作,直接影响业务。所以一般升级mysql时2种方式:

            1.    slave升级>切换>master升级[>切换]

            2.    安装新版本替换。

3.mysql客户端

  • mysql

           这个使用频率最高的工具。最开始接触mysql时,从mysql进去,然后展开对整个mysql数据库管理系统的学习。作为mysql的客户端工具,实现连接指定的mysql服务、发送sql/command并展示运行结果。
           自己总结的一些tips:

            a.    对于prompt我一般这样配置:prompt=<\R:\m:\s>_\u@\h_[\d] >

            b .    \G垂直输出结果。

            c.    help命令比想象中强大,很多问题help一下比去check手册来得高效。

            d.    edit 如果编辑表,视图,过程,触发器,函数什么的定义,用它。

            e.    system不用动不动就切出去,system ls/top/df什么的都可以执行

            f.    如果一定要切出去,可以这样(ctrl+z):

  1.                 mysql> ^Z
  2.                 [2]+ Stopped mysql -uroot -p
  3.                 xchliu@AY1211280808464774829:~$ fg
  4.                 mysql -uroot -p
  5.                 #enter
  6.                 mysql>

                    g.    常用的如source,show,use,warings,exit。

                    h.对于操作记录,由参数mysql_history控制,没几个人去配置这个参数,默认存放在~/.mysql_history中,禁止历史记录的方法:

  1.             rm ~/.mysql_history,mysql_histfile=/dev/null
  2.             ln –s /dev/null ~/.mysql_history

  • mysqladmin

           提供管理相关的功能。对mysql服务的管理功能几乎都包括了,很多监控工具都使用mysqladmin来获取状态信息。

  • mysqlcheck

           实现对数据表的check,repaire,optimize,analyze。对表加读锁之后进行一系列的维护工作,更适用与myisam引擎表,现在主流使用innodb引擎,此类的应用场景不多。

  • mysqldump

     备份脚本,目前大部分公司的备份工具使用mysqldump,常见的几种备份方式:

        a.    cp files,适用于主myisam引擎数据库。备份和恢复速度最快。

        b.    mysqlhotcopy,锁表后拷贝数据文件,适用于myisam,archive表。

        c.    pecona的xtrabackup(innobackup),实现在线热备以及增量备份。

        d.    主从结构中的slave也是一份实时热备

    mysqldump一般使用方式:       

  1.         mysqldump -u%s -p%s -h %s -e -P%s --opt --master-data --flush-logs --single-transaction %s >%s

    几个重要参数:

        a.    master-data增加change master语句在备份文件开头,适用于初始化新slave的备份。不过日常备份也可以加上,特殊情况下用于基于position的恢复。

        b.    ignore-table =db.table用于忽略特定的表,比如有些表比较大或需要单独备份,在常规备份中就可以忽略掉。

        c.    max_allowed_packet=value 用于提高备份速度。

        d.    no-create-info用于备份数据

        e.    no-data 备份结构

        f.    xml  xml格式输出

  • mysqlimport

           数据导入工具,功能同命令load data infile。

  • mysqlshow

           用户显示数据库结构的工具,可以细化到表的列和索引,个人觉得有些鸡肋。

  • mysqlslap

           压力模拟并返回性能数据。如果要测试性能,建议使用systembench。

mysql 程序汇总(二)
阅读(4482) | 评论(2) | 转发(2) |
给主人留下些什么吧!~~

devilkin03122013-04-09 16:28:53

CU博客助理:嘉宾点评: 一篇不错的针对mysql软件中的各工具组件程序进行分类讲解和介绍的文章,是一篇不错的学习笔记,对于初学者有一定帮助,建议在排版上稍加改进。
(以上是邀请嘉宾的点评,感谢您参与“原创博文评选”获奖结果即将公布)

感谢建议,对排版和内容做了一些调整

回复 | 举报

CU博客助理2013-04-09 14:03:50

嘉宾点评: 一篇不错的针对mysql软件中的各工具组件程序进行分类讲解和介绍的文章,是一篇不错的学习笔记,对于初学者有一定帮助,建议在排版上稍加改进。
(以上是邀请嘉宾的点评,感谢您参与“原创博文评选”获奖结果即将公布)