存储引擎

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. hdu_2124 Flying to the Mars & hdu_1800 Repair the Wall 贪心水题

    hdu_1800 简单排一下序,从大开始把比他小的都访问一遍,ans++: #include <iostream> #include <stdio.h> #include &l ...

  2. 我的Android进阶之旅------> Android为TextView组件中显示的文本加入背景色

    通过上一篇文章 我的Android进阶之旅------> Android在TextView中显示图片方法 (地址:http://blog.csdn.net/ouyang_peng/article ...

  3. 批量将制定文件夹下的全部Excel文件导入微软SQL数据库

    以下代码将c:\cs\文件夹下的全部Excle中数据导入到SQL数据库 declare @query vARCHAR(1000) declare @max1 int declare @count1 i ...

  4. 题目分享J

    题意:从一棵树的树根出发,除树根外每个节点都有其能经过的最多次数与经过后会获得的价值(可能为负,最多只能领一次价值),问最终走回树根能获得的最大价值以及有无可达到此价值的多种走法(ps:一开始在树根就 ...

  5. 绕WAF文章收集

    在看了bypassword的<在HTTP协议层面绕过WAF>之后,想起了之前做过的一些研究,所以写个简单的短文来补充一下文章里“分块传输”部分没提到的两个技巧. 技巧1 使用注释扰乱分块数 ...

  6. Javajdk的安装

    初次接触Java,这是我真正接触的第一门编程语言,在学习它之前,我曾看过一些c语言的书籍,可是并没有进行代码实现,在上手了Java后,并不懂的如何让代码运行,通过一点一点的学习和积累,今天记录下Jav ...

  7. C. Yet Another Counting Problem(循环节规律)

    \(给出a,b,l,r,求在区间[l,r]内有多少x满足x%a%b!=x%b%a\) \(--------------------分割!!~----------------------------\) ...

  8. 区间dp 例题

    D - 石子合并问题--直线版 HRBUST - 1818 这个题目是一个区间dp的入门,写完这个题目对于区间dp有那么一点点的感觉,不过还是不太会. 注意这个区间dp的定义 dp[i][j] 表示的 ...

  9. basicRF双向灯光控制

    题目: 实现基于BasicRF无线点对点通信的双向灯光控制,具体要求如下: 1> 节点A 和节点B 的PANID设置为0x1234,通道号设置为17,节点地址自定义.<2> 按下节点 ...

  10. zigbee通用IO口小作业

    独立新建工程并编写.编译代码,实现按键控制流水灯运行,完成以下任务要求: [1]程序开始运行时,D4.D3.D6.D5灯全亮一会,然后全灭一会,开始进入流水灯. [2]流水灯的运行过程为:D4灯亮,其 ...