pugna
全部博文(171)
分类: Mysql/postgreSQL
2015-03-15 17:51:56
原文地址:MySQL 程序汇总(一) 作者:devilkin0312
mysql服务主线程,负责绝大部分数据库服务工作,mysqld的配置参数在可以在启动的时候指定,一般情况下我们都存放在my.cnf中[mysqld]模块中,部分参数支持在线动态调整,一般情况下的配置优化指的都是对mysqld参数的调整,如buffer,connect,dir等。应用以及其他程序的数据库操作可以正常运行都建立mysqld服务稳定工作的前提下。检测mysqld运行状态的办法:
mysqld的守护进程(linux),负责启动和在mysql异常关闭时重启mysql服务。mysqld_safe读取配置文件中[mysqld],[server],[mysqld_safe]下的参数用于启动。
在linux下的mysql服务脚本。将其放在/etc/init.d/mysql,就可以以服务的方式启动和关闭mysql:
多实例服务。实现在一个服务器上面启动多个mysql实例的方法之一,在配置文件my.cnf中编辑多个section来实现对每个实例的参数配置,使用mysqld_multi来管理这些实例服务。
安装mysql时用于生成错误信息文件及相关头文件。
linux下用于初始化mysql数据目录(包括系统表),对于正常运行的数据库实例慎用。使用的场景:
a. 在编译安装或者其他方式安装后,由于各种原因如数据目录权限问题导致数据目录未正常初始化。
b.误删除系统库(表),且无有效备份。
运行时一般要指定用户以及数据目录:
mysql的插件式存储引擎体系允许动态加载存储引擎,同时,mysql_plugin提供了对mysql启动时加载存储引擎的配置管理。
运行方式:
用于提供安全性的脚本,采用交互式的方式进行配置。
a. 设置root密码
b. 删除远程root登陆的账号
c. 删除匿名账户
d. 删除test
以前不知道这个工具,加上交互式的方式不便于自动化。root 用户的密码在安装时指定,安装脚本中达到同样功能的方法:
用于加载时区表到系统库中。
升级mysql版本后运行的脚本。用于检查所有的表与新版本的兼容性以及升级系统表。数据目录中文件mysql_upgrade_info保存当前的版本信息。由于这个脚本在运行过程中会对全局所有的表做check,消费时间较长,且其调用的mysqlcheck会进行锁表操作,直接影响业务。所以一般升级mysql时2种方式:
1. slave升级>切换>master升级[>切换]
2. 安装新版本替换。
这个使用频率最高的工具。最开始接触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):
- mysql> ^Z
- [2]+ Stopped mysql -uroot -p
- xchliu@AY1211280808464774829:~$ fg
- mysql -uroot -p
- #enter
- mysql>
g. 常用的如source,show,use,warings,exit。
h.对于操作记录,由参数mysql_history控制,没几个人去配置这个参数,默认存放在~/.mysql_history中,禁止历史记录的方法:
提供管理相关的功能。对mysql服务的管理功能几乎都包括了,很多监控工具都使用mysqladmin来获取状态信息。
实现对数据表的check,repaire,optimize,analyze。对表加读锁之后进行一系列的维护工作,更适用与myisam引擎表,现在主流使用innodb引擎,此类的应用场景不多。
备份脚本,目前大部分公司的备份工具使用mysqldump,常见的几种备份方式:
a. cp files,适用于主myisam引擎数据库。备份和恢复速度最快。
b. mysqlhotcopy,锁表后拷贝数据文件,适用于myisam,archive表。
c. pecona的xtrabackup(innobackup),实现在线热备以及增量备份。
d. 主从结构中的slave也是一份实时热备
mysqldump一般使用方式:
- 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格式输出
数据导入工具,功能同命令load data infile。
用户显示数据库结构的工具,可以细化到表的列和索引,个人觉得有些鸡肋。
压力模拟并返回性能数据。如果要测试性能,建议使用systembench。
mysql 程序汇总(二)