mysql运维入门1:基础及备份还原
存储引擎
myisam
- 表强调的是性能
- 执行速度比innodb类型更快
- 不提供事务支持
- 如果执行大量的select操作,是首选
- 支持表锁,不支持行锁
innodb
- 提供事务支持、外键等高级数据库功能
- 出于性能考虑,是首选
- 支持行锁
安装方式
- yum安装
yum install -y mysql-server mysql-devel mysql
- 源码安装
cd /usr/src
wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.63.tar.gz
tar xvf mysql-5.1..tar.gz
cd mysql-5.1.
./config --prfix=/usr/local/mysql --enable-assembler && make && make install
- 配置mysql为系统服务
cd /usr/local/mysql/share/mysal/my-medium.cnf /etc/my.cnf
cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/oinit.d/mysqld
chkconfig --add mysqld
chkconfig --level mysqld on cd /usr/local/mysql
useradd mysql
chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R mysql var
/usr/local/mysql/bin/mysqld_safe --user-mysql $
日常操作命令
- 建库 create database dbname;
- 用库 use dbname
- 看库的表 show tables;
- grant all privileges on dbname.* to username@hostip identified by password;
- grant all on dbname.* to username@hostip identified by password;
- grant select,insert,update,delete on *.* to username@hostip identified by password;
- 刷新权限 flush privileges;
- mysql备份或者导出 mysqldump -uroot -ppassword dbname > /tmp/dbname.sql
- mysql导入 mysql -uroot -ppassword dbname < /tmp/dbname.sql
- 修改mysql root密码 mysqladmin -uroot -ppassword password newpassword;
- 删库 drop database dbaname;
- 清空表 truncate tabname 或者 delete from tabname
- 自动备份mysql数据库脚本
#! /bin/sh
#auto backup mysql
#auth date
#define path
BAKDIR=/data/backup/mysql/`date +%Y-%m-%d`
MYSQLDB=webapp
MYSQLPW=backup
MYSQLUSER=backup
#must use root user run scirpts
if
[ $UID -ne ];then
echo This script must use the root user!!!
sleep
exit
fi
#Define DIR and mkdir DIR
if
[ ! -d $BAKDIR ];then
mkdir -p $BAKDIR
else
echo This is $BAKDIR exists ...
fi
#Use mysqldump backup mysql
/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB > $BAKDIR/webapp_db.sql
echo "This mysql backup successfully"utf-8设置方法和密码破解
- /etc/myc.cnf加入配置:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
[mysql]
defualt-character-set=utf8stop mysqld
- start mysqld: /usr/bin/mysqld_safe --user=mysql --skip-grant-tables &
- change password: update user set password=password('newpassword') where use='root';
- flush privileges
- stop mysqld;start mysqld
授权
mysql+discuz
- yum安装LAMP
yum install httpd httpd-devel mysql-server mysql-devel php php-devel php-mysql -y
源码安装Apache
yum install apr-devel apr-util-devel -y
cd /usr/src
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.27.tar.gz
tar xzf httpd-2.2..tar.gz
cd httpd-2.2.
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite &&make &&make install源码安装mysql(见上面)
- 源码安装php
cd /usr/src
wget http://mirrors.sohu.com/php/php-5.3.28.tar.bz2
tar jxf php-5.3..tar.bz2 ;cd php-5.3.
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
make && make install源码安装整合apache+php
- httpd.conf增加:
LoadModule php5_module modules/libphp5.so (默认已存在)
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html (把index.php加入index.html之前)建index.php
cat >>/usr/local/apache/htdocs/index.php <<EOF
<?php
phpinfo();
?>
EOFrestart apache
- 源码安装discuz
cd /usr/src ;wget http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip
unzip Discuz_X3.1_SC_UTF8.zip -d /usr/local/apache/htdocs/
cd /usr/local/apache/htdocs/
chmod -R data/ uc_server/ config/ uc_client/
- 数据创建及授权
create database discuz charset=utf8;
grant all on discuz.* to root@'localhost' identified by "";
备份与恢复
常见备份方法
- mysqldump备份
- cp备份
- sqlhotcopy备份
- 主从同步备份
- xtrabackup备份
mysqldump备份会锁表,锁表直接导致数据库只能select,不能执行insert、update等操作
- 如果myisam表可以执行参数 --local-tables=false禁用锁表,但是可能会造成数据信息不一致
- 如果是支持事务的表,例如innodb和BDB, --single-transaction参数是一个更好的选择,因为它不锁定表
mysqldump -uroot -p123456 --all-databases --opt --single-transaction > backupall.sql
--opt等价于--add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset,默认开启
- mysqldump如果没有指定--quick或者--opt选项,则会将整个结果集放在内存中,导出大数据的话会出问题,毕竟内存存不了这么多数据
xtrabackup
- mysql冷备、mysqldump、mysql热拷贝均不能实现增量备份
- percona-xtrabackup可以实现增量备份
- 包含两个工具:xtrabackup、innobackupex
- xtrabackup只能备份innodb和xtradb两种数据表,不能备份myisam数据表
- innobackupex-1.5.1则封装了xtrabackup,是一个脚本封装,可以同时处理innodb和myisam
- 在处理myisam时需要加一个读锁
- http://www.percona.com/docs/wiki/percona-xtrabackup:start
- 安装xtrabackup
wget http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-2.0.0/binary/Linux/x86_64/percona-xtrabackup-2.0.0.tar.gz
tar zxvf percona-xtrabackup-2.0..tar.gz
cp percona-xtrabackup-2.0./bin/innobackupex /usr/bin/innobackupex
cp percona-xtrabackup-2.0./bin/xtrabackup /usr/bin/xtrabackup
cp percona-xtrabackup-2.0./bin/xtrabackup_51 /usr/bin/xtrabackup_51
cp percona-xtrabackup-2.0./bin/xtrabackup_55 /usr/bin/xtrabackup_55数据库全备份
innobackupex --user=root --password= /data/backup/mysql/
数据库恢复
innobackupex --defaults-file=/etc/my.cnf --user=root --password= --apply-log /data/backup/mysql/--20_00--
apply-log 备份过程产生新的写操作,造成数据库备份不一致,该选项会记录写过程的相关log,恢复时把已提交的事务写入数据文件,没有提交的事务进行回滚
- apply-incremental-backup 不会对redo log中没有提交的事务进行回滚,因为下次增量备份该事物已经提交了
- bakup和apply-log所用的mysqlbackup版本要一致
- 恢复数据库
innobackupex --defaults-file=/etc/my.cnf --user=mysql --password= --copy-back /data/backup/mysql/--20_00--/
恢复出来的os文件属主是owner,需要更改权限
chown -R mysql:mysql /var/lib/mysql/
增量备份
- 增量备份仅能引用于innodb和xtradb表
- 对于myisam表而言,执行增量备份时其实进行的是完全备份
- 先做一次全备
innobackupex --user=root --password= --databases=wugk01 /data/backup/mysql/
第一次增量,base以上次全备为基础
innobackupex --defaults-file=/etc/my.cnf --user=root --password= --databases=wugk01 --incremental /data/backup/mysql/ --incremental-basedir=/data/backup/mysql/--20_13--/
第二次增量,base以上次增备为基础
innobackupex --defaults-file=/etc/my.cnf --user=root --password= --databases=wugk01 --incremental /data/backup/mysql/ --incremental-basedir=/data/backup/mysql/--20_13--/
恢复,前面的apply-log需要加read-only进行prepare
innobackupex --defaults-file=/etc/my.cnf --user=root --password= --apply-log --redo-only /data/backup/mysql/--20_13--/
innobackupex --defaults-file=/etc/my.cnf --user=root --password= --apply-log --redo-only /data/backup/mysql/--20_13--/ --incremental-dir=/data/backup/mysql/--20_13--/
innobackupex --defaults-file=/etc/my.cnf --user=root --password= --apply-log --redo-only /data/backup/mysql/--20_13--/ --incremental-dir=/data/backup/mysql/--20_13--/
innobackupex --defaults-file=/etc/my.cnf --user=root --password= --copy-back /data/backup/mysql/--20_13--/
mysql运维入门1:基础及备份还原的更多相关文章
- mysql运维入门6:MySQL读写分离
Amoeba 以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy 集中想用应用的请求,根据用户事先设置的规则,将SQL请求发送到特定的数据库上执行 基于此可以实现负载均衡.读写分离 ...
- mysql运维入门5:MySQL+kepalived高可用架构
keepalive 类似3/4/7层交换机制的软件,也就是平时说的第三层.第四层.第七层交换 作用是检测web服务器的状态,如果有一台web服务器.mysql服务器宕机.或工作出现故障,keepali ...
- mysql运维入门4:索引、慢查询、优化
MySQL索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都是以B-树的形式保存 如果没有索引,执行查询时,MySQL必须从第一个记录开始整表扫描,知道查询到符合要求的记录,记录越大,花费时 ...
- mysql运维入门3:MyISAM和InnoDB
myisam 5.1的默认存储类型 基于传统的ISAM类型,Indexed Sequential Access Method,有索引的顺序访问方法 存储记录文件的标准方法 不是事务安全,不支持外键 表 ...
- mysql运维入门2:主从架构
mysql主从原理 随着访问量的增加,数据库压力的增加,需要对msyql进行优化和架构改造,优化方法有: 高可用 主从复制 读写分离 拆分库 拆分表 原理 异步复制过程 master开启bin-log ...
- Linux运维入门到高级全套常用要点
Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...
- IT运维的五大基础知识
IT运维的五大基础知识 | 浏览:331 | 更新:2014-09-25 11:36 IT运维对于很多企业都很重要,接下来运维的一些基础知识天天客服IT运维总监龙少文,就给大家介绍下IT运维的基础知识 ...
- mysql运维必会的一些知识点整理
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构
在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...
随机推荐
- kubeadm 默认镜像配置问题引申
背景: 每次使用功能kubeadm的时候都需要提前准备好镜像,为什么自定义使用的镜像源呢? 在没有翻越围墙时 kubeadm init --kubernetes-version=v1.13.0 --p ...
- 通达OA-2017版本漏洞复现
搭建环境 服务器 虚拟机系统版本:Windows Server 2016. 安装服务端 1.下载安装程序 这里我们下载的是2017版本的通达OA服务端: 2.安装程序 配置服务: 漏洞复现 1.任意文 ...
- opencv-6-图像绘制与opencv Line 函数剖析
opencv-6-图像绘制与opencv Line 函数剖析 opencvc++qt 开始之前 越到后面, 写的越慢, 之前还抽空去看了下 学堂在线那篇文章提供的方法, 博客第一个人评论的我, 想想还 ...
- Linux系统管理第五六七章 权限及归属管理 磁盘管理 文件系统与lvm
第五六七章 alias 查看系统别名 67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...
- Image Filter and Recover
这是CS50的第四次大作业,顺便学习了图像的入门知识. 基础 黑白图(bitmap)的每个像素点只能取值0/1,1代表白色,0代表黑色. 常见的图片格式有JPEG/PNG/BMP,这些格式都支持RGB ...
- POJ - 2387 Til the Cows Come Home (最短路入门)
Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before ...
- 精通awk系列文章
精通awk系列文章 我录制了两个awk相关的视频教程: Awk经典实战案例精讲 精通awk精品课程:awk从入门到精通 1.安装新版本的gawk 2.本教程测试所用示例文件 3.铺垫知识:读取文件的几 ...
- python数据统计分析
1. 常用函数库 scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了.这个模块被重写并成为了 ...
- B. Phoenix and Beauty(贪心构造)
\(给定序列长n的数组和k.完美数组的定义是数组中每一个连续k项的子段和为定值\) \(现在要求插入一些数使得数组满足条件,输出你构造的新数列.\) \(\color{Red}{----------- ...
- LateX的简单字体设置(颜色,居中,大小等)
\(\color{red}{Ⅰ.文本单行居中}\) $$\text{我是蒟蒻}$$ \[\text{我是蒟蒻} \] \(\color{Black}{Ⅱ.设置字体颜色}\) $$\color{Purp ...