mysqldump详解

mysqldump 命令位于 mysql/bin/ 目录中,现有环境有两台 mysql 服务器,一台 IP 为: 192.168.102.2 另一台 192.168.102.3
( 1 )完整备份 MySQL 的某个数据库

mysqldump –h hostname –u username –p password databasename > backupfile.sql

例如:将 192.168.102.2 服务器上的 book 数据库备份到 192.168.102.3

mysqldump -h 192.168.102.2 -u backup -p book >book.sql

( 2 )备份 MySQL 数据库为带删除表的格式
备份 MySQL 数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。 这样可以保证导回 MySQL 数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除

例如:将 192.168.102.2 服务器上的 book 数据库备份到 192.168.102.3

mysqldump -–add-drop-table -h hostname –u username –p password databasename > backupfile.sql

例如:将 192.168.102.2 服务器上的 book 数据库备份到 192.168.102.3

mysqldump –add-drop-table -h 192.168.102.2 -u backup -p book >book.sql

(3) 直接将 MySQL 数据库压缩备份

mysqldump –h hostname –u username –p password databasename | gzip > backupfile.sql.gz

例如:将 192.168.102.2 服务器上的 book 数据库压缩备份到 192.168.102.3 服务器

mysqldump -h 192.168.102.2 -u backup -p book | gzip >book.sql

( 4 )备份 MySQL 数据库某个 ( 些 ) 表

mysqldump –h hostname –u username –p password databasename specific_table1 specific_table2 > backupfile.sql

例如:将 192.168.102.2 服务器上的 backup 数据库中的 books 和 orders 表备份到 192.168.102.3 服务器
mysqldump -h 192.168.102.2 -u backup -p backup books orders>book.sql
( 6 )仅仅备份数据库结构

mysqldump –no-data –h hostname –u username –p password –d databasename1 databasename2 databasename3 >structurebackupfile.sql

例如:仅将 192.168.102.2 服务器上的 backup 数据库的表结构备份到 192.168.102.3 服务器

mysqldump –no-data -d backup -h 192.168.102.2 -u backup -p >book.sql

(7) 备份指定条件的数据
例如只想把服务器 192.168.102.2 上的数据库 test 中的表 test 中的 id>1 的内容备份,可以使用下面的命令:

mysqldump -h 192.168.102.2 -u backup -p test test –where “id>1”>test.sql

( 8 )还原 MySQL 数据库的命令

mysql –h hostname –u username –p password databasename < backupfile.sql

( 9 )还原压缩的 MySQL 数据库

gunzip < backupfile.sql.gz | mysql –u username –p password databasename

mysqldump 工具有大量的选项,部分选项如下:

–add-drop-table : 这个选项将会在每一个表的前面加上 DROP TABLE IF EXISTS 语句,这样可以保证导回 MySQL 数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除

–add-locks : 这个选项会在 INSERT 语句中捆上一个 LOCK TABLE 和 UNLOCK TABLE 语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作

-c or – complete_insert : 这个选项使得 mysqldump 命令给每一个产生 INSERT 语句加上列( field )的名字。当把数据导出导另外一个数据库时这个选项很有用。

–delayed-insert 在 INSERT 命令中加入 DELAY 选项

-F or -flush-logs 使用这个选项,在执行导出之前将会刷新 MySQL 服务器的 log.

-f or -force 使用这个选项,即使有错误发生,仍然继续导出

–full 这个选项把附加信息也加到 CREATE TABLE 的语句中

-l or -lock-tables 使用这个选项,导出表的时候服务器将会给表加锁。

-t or -no-create- info : 这个选项使的 mysqldump 命令不创建 CREATE TABLE 语句,这个选项在您只需要数据而不需要 DDL (数据库定义语句)时很方便。

-d or -no-data 这个选项使的 mysqldump 命令不创建 INSERT 语句。 在您只需要 DDL 语句时,可以使用这个选项

–opt 此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。

-q or -quick 这个选项使得 MySQL 不会把整个导出的内容读入内存再执行导出,而是在读到的时候就写入导文件中。

-T path or -tab = path 这个选项将会创建两个文件,一个文件包含 DDL 语句或者表创建语句,另一个文件包含数据。 DDL 文件被命名为 table_name.sql, 数据文件被命名为 table_name.txt. 路径名是存放这两个文件的目录。目录必须已经存在,并且命令的使用者有对文件的特权。

-w “WHERE Clause” or -where = “Where clause ” : 如前面所讲的,您可以使用这一选项来过筛选将要放到 导出文件的数据。

假定您需要为一个表单中要用到的帐号建立一个文件,经理要看今年( 2004 年)所有的订单( Orders ),它们并不对 DDL 感兴趣,并且需要文件有逗号分隔,因为这样就很容易导入到 Excel 中。 为了完成这个人物,您可以使用下面的句子:

bin/mysqldump – p – where “Order_Date >=’2000-01-01′” – tab = /home/mark – no-create-info – fields-terminated-by=, Meet_A_Geek Orders

原文转自:不详

SourceForge Interactive Shell Service – SSH

Interactive Shell Service

Project developers can access an Interactive Shell if they have been granted shell access for the project. The Interactive Shell provides a command line interface that can be used to manage the following:

  • Project web content
  • Developer web content
  • Project uploads
  • CVS repositories

Features

The Interactive Shell supports the following features:

  • SSH shell access to project content; access to data for other users and projects not provided
  • Comprehensive set to command line tools
  • 4 hour shell life – shells are automatically terminated after 4 hours.
  • Password or SSH keys authentication
  • CVS repository administration

The Interactive Shell does not support the following features:

  • Cron service
  • File management service

Management

Project members must be granted shell access by a project administrator. Project administrators can grant Shell Access to project members on the project membership page (select Membership in the Project Admin menu).

Access

Interactive Shell sessions persist for 4 hours once created. Authorized developers that have been granted shell access for a project can create/connect to an Interactive Shell with:

ssh -t USER,PROJECT@shell.sourceforge.net create

NOTE: Be sure to substitute your SourceForge.net login username for USER, and the respective SourceForge.net project UNIX name for PROJECT.

If you do not have an active Interactive Shell session a help page can be viewed with:

ssh USER@shell.sourceforge.net

Accessing Project web content

Users who are a member of a project and want to access their Project web content need to use the above method to connect and then change to the appropriate directory (replacing with your own Project Name):

/home/project-web/<span style="color: #ff0000;">ProjectName</span>/htdocs/

Accessing Developer Web Content

Users who are a member of a project and want to access their Developer web content need to use the above method to connect and then change to the appropriate directory (replacing with your own Username):

/home/user-web/<span style="color: #ff0000;">Username</span>/htdocs/

PuTTY client

For those using the PuTTY SSH client, set the following settings for the PuTTY session:

Note: In Windows Vista or Windows 7, it may be necessary to run PuTTY in Windows XP compatibility mode.

Session Host Name: “shell.sourceforge.net
Session Connection Type: “SSH
Connection > SSH Remote command: “create
Connection > Data Auto-login username: “USER,PROJECT
  • Open the session and provide your password at the prompt.

Note: If you get disconnected after shell creation, in Connection > SSH > TTY uncheck the box for “Don’t allocate a pseudo-terminal”

SSH Key Authentication

If a user has set up SSH keys, they can be used to authenticate to an Interactive Shell session. Please see the following for more information on setting up SSH keys:

Use the ‘-i’ option to pass your private key file to the ssh command:

ssh -i PATH-TO-PRIV-KEY -t USER,PROJECT@shell.sourceforge.net create

VPS开设最低权限的SSH帐号

1,增加一个linux用户,并赋予该用户一个nologin的shell权限。

useradd username -s /sbin/nologin

2,设置该用户密码。

passwd username

3,如果需要经常建立这种账户的话,建立一个脚本方便自己的操作。
通过ssh终端root权限连接到vps后输入:

vi ssh.sh编辑一个sh文件
打开后,按 i 键进入编辑模式。
然后将下面内容复制进去(终端内点下鼠标右键即可复制)

#!/bin/bash
cat &gt;&gt; /etc/shells &lt;&lt; END
/sbin/nologin
END
useradd $1 -s /sbin/nologin
echo $1:$2 | chpasswd

然后保存退出编辑模式。
这样,输入下面命令就可以方便建立ssh代理帐号:

bash ssh.sh username passwordusername和password就是你自己要设置的帐号和对应的密码,可以替换。 上面脚本中$1,就是对应的username,$2,就是对应的password
$0哪里去了?ssh.sh即是也。
$1,$2,$0,是bash脚本中约定的参数标志,分别表示第几个参数。

浏览原文:http://goo.gl/UdJMm

SSH给网站作异地FTP备份

主站打包
tar czf  xiaokyun.com.tar.gz *

[xiaokyun@server backups]$ ftp /*启用FTP客户端
ftp> open backup.xiaokyun.com /*打开远程服务器域名或IP
Connected to backup.xiaokyun.com.
220 ProFTPD 1.3.1 Server ready.
500 AUTH not understood
500 AUTH not understood
KERBEROS_V4 rejected as an authentication type
Name (backup.xiaokyun.com:xiaokyun): ftp /*输入用户名
331 Password required for ftp
Password:pwd /*输入密码
230 User ftp logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put xiaokyun.com.tar.gz     xiaokyun.com.tar.gz /*上传文件
local: xiaokyun.com.tar.gz remote: xiaokyun.com.tar.gz
227 Entering Passive Mode (74,82,161,100,139,96).
150 Opening BINARY mode data connection for b.tar.gz
226 Transfer complete
21211756 bytes sent in 90 seconds (2.3e+02 Kbytes/s)
ftp>

镜像站解压
tar zxvf xiaokyun.com.tar.gz

Ubuntu开启SSH服务

SSH分客户端openssh-client和openssh-server
如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server

sudo apt-get install openssh-server

然后确认sshserver是否启动了:

ps -e |grep ssh

如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:

sudo /etc/init.d/ssh start

ssh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。
然后重启SSH服务:

sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start

然后使用以下方式登陆SSH:

ssh username@192.168.1.112

username为192.168.1.112 机器上的用户,需要输入密码。
断开连接:exit