zoukankan      html  css  js  c++  java
  • Putty对数据库进行备份及恢复

    使用Putty对数据库进行备份及恢复

    1)mysqldump -u root -p dbname >/home/kenty/mysqlback/dbname_081119.sql  备份

    2)mysql -u root -p dbname </home/kenty/mysqlback/dbname_081119.sql  恢复

    -u 用户名  -p 密码 dbname=数据库名称

    请参考文档:

     

    =====

    一) 连接MYSQL:

       格式: mysql -h主机地址 -u用户名 -p用户密码
    


    1、例1:连接到本机上的MYSQL

       首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:\mysql\bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
    

    2、例2:连接到远程主机上的MYSQL

       假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:
    
       mysql -h10.0.0.1 -uroot -p123
    
      (注:u与root可以不用加空格,其它也一样)
    

    3、退出MYSQL命令

       exit (回车)
    


    (二) 修改密码:

       格式:mysqladmin -u用户名 -p旧密码 password 新密码
    

    1、例1:给root加个密码123。首先在DOS下进入目录C:\mysql\bin,然后键入以下命令:

       mysqladmin -uroot -password 123
    
       注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
    

    2、例2:再将root的密码改为456

       mysqladmin -uroot -pab12 password 456
    

    (三) 增加新用户:(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

       格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
    
       例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
    grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
    但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
    
       例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
    
       如果你不想test2有密码,可以再打一个命令将密码消掉。
    grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
    

    (四) 显示命令

    1、显示数据库列表:

       show databases;
    刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
    

    2、显示库中的数据表:

       use mysql; //打开库
    show tables;
    

    3、显示数据表的结构:

       describe 表名;
    

    4、建库:

       create database 库名;
    

    5、建表:

       use 库名;
    create table 表名 (字段设定列表);
    

    6、删库和删表:

       drop database 库名;
    drop table 表名;
    

    7、将表中记录清空:

       delete from 表名;
    

    8、显示表中的记录:

       select * from 表名;
    

    =====================================

    很多用户都有过丢失宝贵数据的经历,随着大量的数据被存入到MySQL数据库中,再加上错误地使用DROP DATABASE命令、系统崩溃或对表结构进行编辑等操作,都可能酿成灾难性的损失。所以对MySQL数据库进行备份,以备在出现意外时及时进行恢复是非常必要的。

    一、 使用mysql相关命令进行简单的本地备份

        1 mysqlldump命令

        mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。

        使用 mysqldump进行备份非常简单,如果要备份数据库” db_backup ”,使用命令:

    #mysqldump –u -p phpbb_db_backup > /usr/backups/mysql/db_backup2008-1-6.sql
    

        还可以使用gzip命令对备份文件进行压缩:

    #mysqldump db_backup | gzip > /usr/backups/mysql/ db_backup2008-1-6.sql.gz
    

        只备份一些频繁更新的数据库表:

    ## mysqldump sample_db articles comments links > /usr/backups/mysql/sample_db.art_comm_lin.2008-1-6.sql
    

        上面的命令会备份articles, comments, 和links 三个表。

        恢复数据使用命令:

    #mysql –u -p db_backup </usr/backups/mysql/ db_backup2008-1-6.sql
    

        注意使用这个命令时必须保证数据库正在运行。

        2 使用 SOURCE 语法

        其实这不是标准的 SQL 语法,而是 mysql 客户端提供的功能,例如:

    # SOURCE /tmp/db_name.sql;
    

        这里需要指定文件的绝对路径,并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件。

        3 mysqlhotcopy备份

        mysqlhotcopy 只能用于备份 MyISAM,并且只能运行在 linux 和Unix 和 NetWare 系统上。mysqlhotcopy 支持一次性拷贝多个数据库,同时还支持正则表达。以下是几个例子:

    #mysqlhotcopy -h=localhost -u=goodcjh -p=goodcjh db_name /tmp
    

        (把数据库目录 db_name 拷贝到 /tmp 下)
        注意,想要使用 mysqlhotcopy,必须要有 SELECT、RELOAD(要执行 FLUSH TABLES) 权限,并且还必须要能够有读取 datadir/db_name 目录的权限。

        还原数据库方法:

        mysqlhotcopy 备份出来的是整个数据库目录,使用时可以直接拷贝到 mysqld 指定的 目录 (在这里是 /usr/local/mysql/data/)目录下即可,同时要注意权限的问题,另外首先应当删除数据库旧副本如下例:

    # /bin/rm -rf /mysql-backup/**//*old
    

        关闭mysql 服务器、复制文件、查询启动mysql服务器的三个步骤: 

    # /etc/init.d/mysqld stop
    Stopping MySQL: [ OK ]
    # cp -af /mysql-backup/**//* /var/lib/mysql /
    # /etc/init.d/mysqld start
    Starting MySQL: [ OK ]
    #chown -R nobody:nobody /usr/local/mysql/data/ (将 db_name 目录的属主改成 mysqld 运行用户)
    
  • 相关阅读:
    【C#进阶系列】06 类型和成员基础
    纪中5日T1 1564. 旅游
    纪中17日T1 2321. 方程
    纪中17日T2 2322. capacitor
    纪中10日T1 2313. 动态仙人掌
    纪中14日听课小结 图论 最短路 二分图 差分约束
    一个抓猫的游戏 消遣GAME 持续更新中!
    洛谷P1464 Function  HDU P1579 Function Run Fun
    洛谷P1976 鸡蛋饼
    纪中12日T1 2307. 选择
  • 原文地址:https://www.cnblogs.com/kentyshang/p/1336677.html
Copyright © 2011-2022 走看看