存储引擎

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=utf8

      stop 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();
      ?>
      EOF

      restart 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:基础及备份还原的更多相关文章

  1. mysql运维入门6:MySQL读写分离

    Amoeba 以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy 集中想用应用的请求,根据用户事先设置的规则,将SQL请求发送到特定的数据库上执行 基于此可以实现负载均衡.读写分离 ...

  2. mysql运维入门5:MySQL+kepalived高可用架构

    keepalive 类似3/4/7层交换机制的软件,也就是平时说的第三层.第四层.第七层交换 作用是检测web服务器的状态,如果有一台web服务器.mysql服务器宕机.或工作出现故障,keepali ...

  3. mysql运维入门4:索引、慢查询、优化

    MySQL索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都是以B-树的形式保存 如果没有索引,执行查询时,MySQL必须从第一个记录开始整表扫描,知道查询到符合要求的记录,记录越大,花费时 ...

  4. mysql运维入门3:MyISAM和InnoDB

    myisam 5.1的默认存储类型 基于传统的ISAM类型,Indexed Sequential Access Method,有索引的顺序访问方法 存储记录文件的标准方法 不是事务安全,不支持外键 表 ...

  5. mysql运维入门2:主从架构

    mysql主从原理 随着访问量的增加,数据库压力的增加,需要对msyql进行优化和架构改造,优化方法有: 高可用 主从复制 读写分离 拆分库 拆分表 原理 异步复制过程 master开启bin-log ...

  6. Linux运维入门到高级全套常用要点

    Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...

  7. IT运维的五大基础知识

    IT运维的五大基础知识 | 浏览:331 | 更新:2014-09-25 11:36 IT运维对于很多企业都很重要,接下来运维的一些基础知识天天客服IT运维总监龙少文,就给大家介绍下IT运维的基础知识 ...

  8. mysql运维必会的一些知识点整理

    (1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...

  9. 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构

    在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...

随机推荐

  1. kubeadm 默认镜像配置问题引申

    背景: 每次使用功能kubeadm的时候都需要提前准备好镜像,为什么自定义使用的镜像源呢? 在没有翻越围墙时 kubeadm init --kubernetes-version=v1.13.0 --p ...

  2. 通达OA-2017版本漏洞复现

    搭建环境 服务器 虚拟机系统版本:Windows Server 2016. 安装服务端 1.下载安装程序 这里我们下载的是2017版本的通达OA服务端: 2.安装程序 配置服务: 漏洞复现 1.任意文 ...

  3. opencv-6-图像绘制与opencv Line 函数剖析

    opencv-6-图像绘制与opencv Line 函数剖析 opencvc++qt 开始之前 越到后面, 写的越慢, 之前还抽空去看了下 学堂在线那篇文章提供的方法, 博客第一个人评论的我, 想想还 ...

  4. Linux系统管理第五六七章 权限及归属管理 磁盘管理 文件系统与lvm

    第五六七章   alias 查看系统别名   67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...

  5. Image Filter and Recover

    这是CS50的第四次大作业,顺便学习了图像的入门知识. 基础 黑白图(bitmap)的每个像素点只能取值0/1,1代表白色,0代表黑色. 常见的图片格式有JPEG/PNG/BMP,这些格式都支持RGB ...

  6. 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 ...

  7. 精通awk系列文章

    精通awk系列文章 我录制了两个awk相关的视频教程: Awk经典实战案例精讲 精通awk精品课程:awk从入门到精通 1.安装新版本的gawk 2.本教程测试所用示例文件 3.铺垫知识:读取文件的几 ...

  8. python数据统计分析

    1. 常用函数库   scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了.这个模块被重写并成为了 ...

  9. B. Phoenix and Beauty(贪心构造)

    \(给定序列长n的数组和k.完美数组的定义是数组中每一个连续k项的子段和为定值\) \(现在要求插入一些数使得数组满足条件,输出你构造的新数列.\) \(\color{Red}{----------- ...

  10. LateX的简单字体设置(颜色,居中,大小等)

    \(\color{red}{Ⅰ.文本单行居中}\) $$\text{我是蒟蒻}$$ \[\text{我是蒟蒻} \] \(\color{Black}{Ⅱ.设置字体颜色}\) $$\color{Purp ...