linux server mysql 备份

今天需要把一台服务器的的mysql 数据备份到另一台服务器上;

首先自然是需要先对原服务器上的数据备份

记录如下:

一,数据库的备份与导入

1),数据库的备份

1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
例:(jstorm_server)➜  ~/mysqlBackup mysqldump -u root -p fdroid > ./fdroidBackup.sql

2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
例:mysqldump -u dbadmin -p myblog wp_users> /home/zhangy/blog/database_bak/blog_users.sql

3.导出一个数据库结构
mysqldump -u dbadmin -p -d --add-drop-table myblog > /home/zhangy/blog/database_bak/blog_struc.sql
说明:-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.导出数据库一个表结构
mysqldump -u dbadmin -p -d --add-drop-table myblog  wp_users> /home/zhangy/blog/database_bak/blog_users_struc.sql
说明:-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table


二,数据的传输

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,scp传输是加密的,可能会稍微影响一下速度其占用的系统资源非常小。非常适合远程文件的拷贝。

1.命令格式:

scp [参数] [原路径] [目标路径]

2.命令功能:

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录

3.命令参数:

-1  强制scp命令使用协议ssh1  

-2  强制scp命令使用协议ssh2  

-4  强制scp命令只使用IPv4寻址  

-6  强制scp命令只使用IPv6寻址  

-B  使用批处理模式(传输过程中不询问传输口令或短语)  

-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  

-p 保留原文件的修改时间,访问时间和访问权限。  

-q  不显示传输进度条。  

-r  递归复制整个目录。  

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   

-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。   

-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。  

-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。    

-l limit  限定用户所能使用的带宽,以Kbit/s为单位。     

-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   

-P port  注意是大写的P, port是指定数据传输用到的端口号   

-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

4.使用实例:

 执行命令将本地的目录上传的远程服务器目录上。执行命令"scp  -r /opt/test [email protected]:/opt"。本条命令意思为将本地的目录/opt/test上传到远程192.168.2.105的opt目录下。然后根据提示输入root的密码,等待即可上传完毕。

执行命令"scp /root/node-v4.2.1-linux-x64.tar.gz [email protected]:/opt/test"。意思为将本地文件node-v4.2.1-linux-x64.tar.gz上传到服务器/opt/test目录下。

scp -r [email protected]:/root/rules /opt"。意思为将远程服务器上/root/rules目录内的内容拷贝到本地的opt目录下。

执行命令"scp -P 22 [email protected]:/root/filters.bpf /opt/"。意思为将远程服务器上/root目录下的filters.bpf文件拷贝到本地的opt目录下。

三,数据库的创建以及数据的恢复

show create database fdroid; 查看字符集

创建数据库 并指定字符集

命令:

CREATE DATABASE yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  创建用户

命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

  host为可以登录的主机地址,如果任何主机都可以,设置为%

给用户授权

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*。

附上

Linux下MySQL数据库常用基本操作 一:http://www.cnblogs.com/xdpxyxy/archive/2012/11/16/2773662.html

导入数据

用 source 语句
    例如:

mysql -u root -p

use fdroid;

set names utf8;  #这里的字符集根你的将要导入的数据库的字符集一致。

source /home/zhangy/blog/database_bak/myblog.sql;






 










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章