linux下MySQL使用方法

linux下MySQL使用方法

一、引言 

 

 

想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL。本以为有Windows下使 用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路,尽快入门,写了此文,希望对您有所帮助。本文的Linux环境是 Red Hat 9.0MySQL4.0.16。 

 

二、安装Mysql 

 

1、下载MySQL的安装文件 

安装MySQL需要下面两个文件: 

MySQL-server-4.0.16-0.i386.rpm    

MySQL-client-4.0.16-0.i386.rpm 

下载地址为:http://www.mysql.com/downloads/mysql-4.0.html, 打开此网页,下拉网页找到“Linux x86 RPM downloads”项,找到“Server”“Client programs”项,下载需要的上述两个rpm文件。 

 

2、安装MySQL 

rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停 止。 

1)安装服务器端 

在有两个rmp文件的目录下运行如下命令: 

[root@test1 local]# rpm -ivh MySQL-server-4.0.16-0.i386.rpm 

显示如下信息。 

warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5 

Preparing...########################################### [100%] 

1:MySQL-server########################################### [100%] 

。。。。。。(省略显示) 

/usr/bin/mysqladmin -u root password 'new-password' 

/usr/bin/mysqladmin -u root -h test1 password 'new-password' 

。。。。。。(省略显示) 

Starting mysqld daemon with databases from /var/lib/mysql 

如出现如上信息,服务端安装完毕。测试是否成功可运行netstatMysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。 

[root@test1 local]# netstat -nat 

Active Internet connections (servers and established) 

Proto Recv-Q Send-Q Local Address      Foreign Address     State    

tcp00 0.0.0.0:3306     0.0.0.0:*      LISTEN    

上面显示可以看出MySQL服务已经启动。 

2)安装客户端 

运行如下命令: 

[root@test1 local]# rpm -ivh MySQL-client-4.0.16-0.i386.rpm 

warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5 

Preparing...########################################### [100%] 

1:MySQL-client  ########################################### [100%] 

显示安装完毕。 

用下面的命令连接mysql,测试是否成功。 

三、登录MySQL 

 

登录MySQL的命令是mysql, mysql 的使用语法如下: 

mysql [-u username] [-h host] [-p[password]] [dbname] 

username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于 初始没有密码,第一次进时只需键入mysql即可。 

[root@test1 local]# mysql 

Welcome to the MySQL monitor.Commands end with ; or \g. 

Your MySQL connection id is 1 to server version: 4.0.16-standard 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

mysql> 

出现了“mysql>”提示符,恭喜你,安装成功! 

增加了密码后的登录格式如下: 

mysql -u root -p 

Enter password: (输入密码

其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。 

 

注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。 

 

四、MySQL的几个重要目录 

 

MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。 

 

下面就介绍一下这几个目录。 

 

1、数据库目录 

/var/lib/mysql/ 

 

2、配置文件 

/usr/share/mysqlmysql.server命令及配置文件) 

 

3、相关命令 

/usr/bin(mysqladmin mysqldump等命令

 

4、启动脚本 

/etc/rc.d/init.d/(启动脚本文件mysql的目录) 

五、修改登录密码 

 

MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。 

 

1、命令 

usr/bin/mysqladmin -u root password 'new-password' 

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

 

2、例子 

1:给root加个密码123456。 

键入以下命令 : 

[root@test1 local]# /usr/bin/mysqladmin -u root password 123456 

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

 

3、测试是否修改成功 

1)不用密码登录 

[root@test1 local]# mysql 

ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) 

显示错误,说明密码已经修改。 

2)用修改后的密码登录 

[root@test1 local]# mysql -u root -p 

Enter password: (输入修改后的密码123456) 

Welcome to the MySQL monitor.Commands end with ; or \g. 

Your MySQL connection id is 4 to server version: 4.0.16-standard 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

mysql> 

成功! 

这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。 

 

4、获取mysql安装路径

例如:

mysql> show variables like '%basedir%';

+---------------+-------------------------------------------------------+

| Variable_name  | Value                                                  |

+---------------+-------------------------------------------------------+

| basedir         | /data/mysql-herosg/mysql-5.0.67-linux-x86_64-glibc23/      | 

+---------------+-------------------------------------------------------+

六、启动与停止 

 

1、启动 

MySQL安装完成后启动文件mysql/etc/init.d目录下,在需要启动时运行下面命令即可。 

[root@test1 init.d]# /etc/init.d/mysql start 

 

2、停止 

/usr/bin/mysqladmin -u root -p shutdown 

 

3、自动启动 

1)察看mysql是否在自动启动列表中 

[root@test1 local]#/sbin/chkconfig –list 

2)把MySQL添加到你系统的启动服务组里面去 

[root@test1 local]#/sbin/chkconfig– addmysql 

3)把MySQL从启动服务组里面删除。 

[root@test1 local]#/sbin/chkconfig– delmysql 

七、更改MySQL目录 

 

MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步: 

 

1home目录下建立data目录 

cd /home 

mkdir data 

 

2、把MySQL服务进程停掉: 

mysqladmin -u root -p shutdown 

 

3、把/var/lib/mysql整个目录移到/home/data 

mv /var/lib/mysql/home/data/ 

这样就把MySQL的数据文件移动到了/home/data/mysql下 

 

4、找到my.cnf配置文件 

如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下: 

[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf/etc/my.cnf 

 

5、编辑MySQL的配置文件/etc/my.cnf 

为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下: 

vi  my.cnf    (vi工具编辑my.cnf文件,找到下列数据修改之

# The MySQL server 

[mysqld] 

port= 3306 

#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行) 

socket  = /home/data/mysql/mysql.sock   (加上此行) 

 

6、修改MySQL启动脚本/etc/rc.d/init.d/mysql 

最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。 

[root@test1 etc]# vi/etc/rc.d/init.d/mysql 

#datadir=/var/lib/mysql    (注释此行) 

datadir=/home/data/mysql   (加上此行) 

 

7、重新启动MySQL服务 

/etc/rc.d/init.d/mysqlstart 

或用reboot命令重启Linux 

如果工作正常移动就成功了,否则对照前面的7步再检查一下。 

 

八、MySQL的常用操作 

 

注意:MySQL中每个命令后都要以分号;结尾。 

 

1、显示数据库 

mysql> show databases; 

+----------+ 

| Database | 

+----------+ 

| mysql

| test   

+----------+ 

2 rows in set (0.04 sec) 

Mysql刚安装完有两个数据库:mysqltestmysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。 

 

2、显示数据库中的表 

mysql> use mysql; (打开库,对每个库进行操作就要打开此库,类似于foxpro ) 

Database changed 

 

mysql> show tables; 

+-----------------+ 

| Tables_in_mysql | 

+-----------------+ 

| columns_priv

| db

| func

| host

| tables_priv   

| user

+-----------------+ 

6 rows in set (0.01 sec) 

 

3、显示数据表的结构: 

describe 表名

 

4、显示表中的记录: 

select * from 表名

例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。 

Select * from user; 

 

5、建库: 

create database 库名

例如:创建一个名字位aaa的库 

mysql> create databases aaa; 

6、建表: 

use 库名; 

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

例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长)xm(姓名),xb(性别),csny(出身年月)四个字段 

use aaa; 

mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date); 

可以用describe命令察看刚建立的表结构。 

mysql> describe name; 

 

+-------+---------+------+-----+---------+----------------+ 

| Field | Type| Null | Key | Default | Extra

+-------+---------+------+-----+---------+----------------+ 

| id| int(3)|| PRI | NULL| auto_increment | 

| xm| char(8) | YES|   | NULL|

| xb| char(2) | YES|   | NULL|

| csny| date| YES|   | NULL|

+-------+---------+------+-----+---------+----------------+ 

 

7、增加记录 

例如:增加几条相关纪录。 

mysql> insert into name values('','张三','','1971-10-01'); 

mysql> insert into name values('','白云','','1972-05-20'); 

可用select命令来验证结果。 

mysql> select * from name; 

+----+------+------+------------+ 

| id | xm  | xb  | csny    

+----+------+------+------------+ 

|1 | 张三 男  | 1971-10-01 | 

|2 | 白云 女  | 1972-05-20 | 

+----+------+------+------------+ 

 

8、修改纪录 

例如:将张三的出生年月改为1971-01-10 

mysql> update name set csny='1971-01-10' where xm='张三'; 

 

9、删除纪录 

例如:删除张三的纪录。 

mysql> delete from name where xm='张三'; 

 

10、删库和删表 

drop database 库名

drop table 表名; 

 

九、增加MySQL用户 

 

格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码

1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令: 

 

mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123"; 

1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。 

 

2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作 (localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过 MYSQL主机来操作aaa库。 

 

mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123"; 

 

用新增的用户如果登录不了MySQL,在登录时用如下命令: 

 

mysql -u user_1 -p-h 192.168.113.50 (-h后跟的是要登录主机的ip地址) 

 

十、备份与恢复 

 

1、备份 

 

例如:将上例创建的aaa库备份到文件back_aaa中 

 

[root@test1 root]# cd/home/data/mysql(进入到库目录,本例库已由val/lib/mysql转到/home/data/mysql,见上述第七部分内容

[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa 

 

2、恢复 

 

[root@test mysql]# mysql -u root -p ccc < back_aaa

 

mysqldump用法几例

 

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

几个常用用例:

1.导出整个数据库

mysqldump -u 用户名 -p 数据库名 导出的文件名    

mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

2.导出一个表

mysqldump -u 用户名 -p 数据库名 表名导出的文件名

mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.导出一个数据库结构

    mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql

-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.带语言参数导出

   mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > d4.sql

5.导入数据库

    常用source 命令

    进入mysql数据库控制台,

    如mysql -u root -p 

  

    mysql>use 数据库

    然后使用source命令,后面参数为脚本文件(如这里用到的.sql

mysql>source d:\wcnc_db.sql 

 

6.备份详解

定期的备份可使我们数据库崩溃造成的损失大大降低。在MySQL中进行数据备份的方法有两种,一种是使用mysqldump程序,一种是使用mysqlhotcopycptarcpio等打包程序直接拷贝数据库文件。mysqldump程序备份数据库较慢,但它生成的文本文件便于移植。使用mysqlhotcopy等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。

 

使用mysqldump备份数据库其实就是把数据库转储成一系列CREATE TABLEINSERT语句,通过这些语句我们就可重新生成数据库。使用mysqldump的方法如下:

 

% mysqldump --opt testdb | gzip > /data/backup/testdb.bak

#--opt选项会对转储过程进行优化,生成的备份文件会小一点,后的管道操作会进行数据压缩

% mysqldump --opt testdb mytable1,mytable2 | gzip > /data/backup/testdb_mytable.bak

#可在数据库后接数据表名,只导出指定的数据表,多个数据表可用逗号分隔

 

  

--opt选项还可激活--add-drop-table选项,它将会在备份文件的每条CREATE TABLE前加上一条DROP TABLE IF EXISTS语句。这可方便进行数据表的更新,而不会发生“数据表已存在”的错误。 

 

mysqldump命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。

 

% mysqladmin -h remote_host create testdb

% mysqldump --opt testdb | mysql -h remote_host testdb

另外还可通过ssh远程调用服务器上的程序,如:

% ssh remote_host mysqladmin create testdb

% mysqldump --opt testdb | ssh remote_host mysql testdb

 

通过直接拷贝系统文件的方式备份数据库,在备份时,要确保没有人对数据库进行修改操作。要做到这点,最好关闭服务器。如果不能关闭的,要以只读方试锁定有关数据表。下面是一些示例:

 

% cp -r db /backup/db                   #备份db数据库到/backup/db目录

% cp table_name.* /backup/db            #只备份table_name数据表

% scp -r db remotehot:/usr/local/mysql/data        #scp把数据库直接拷贝到远程服务器

 

  

在把数据库直接拷贝到远程主机时,应注意两台机器必须有同样的硬件结构,或者将拷贝的数据表全部是可移植数据表类型。 

 

使用mysqlhotcopy工具,它是一个Perl DBI脚本,可在不关闭服务器的情况下备份数据库,它主要的优点是:

 

它直接拷贝文件,所以它比mysqldump快。

可自动完成数据锁定工作,备份时不用关闭服务器。

能刷新日志,使备份文件和日志文件的检查点能保持同步。

 

下面是该工具的使用示例:

 

% mysqlhotcopy db    /bakcup/                   #db数据库备份到backup/db目录里,会自动创建一个db目录

 

使用BACKUP TABLE语句进行备份,该语句最早出现在MySQL 3.23.25版本中,仅适用于MyISAM数据表。用法如下:

 

mysql> BACKUP TABLE mytable TO '/backup/db';           #mytable数据表备份到/backup/db目录下

 

为了执行该语句,你必须拥有那些表的FILE权限和SELECT权限,备份目录还必须是服务器可写的。该语句执行时,会先把内存中的数据写入磁盘,再把各个数据表的.frm(表结构定义文件).MYD(数据)文件从数据目录拷贝到备份目录。它不拷贝.MYI(索引)文件,因为它能用另外两个文件重建。BACKUP TABLE语句备份时,依次锁定数据表,当同时备份多个数据表时,数据表可能会被修改,所以备份0完成时,备份文件中的数据和现时数据表中的数据可能会有差异,为了消除该差异,我们可用只读方式锁定数据表,在备份完成后再解锁。如:

 

mysql> LOCK TABLES tb1 READ,tb2 READ;

mysql> BACKUP TABLE tb1,tb2 TO 'backup/db';

mysql> UNLOCK TABLES;

 

使用BACKUP TABLE语句备份的数据表可用RESTORE TABLE重新加载到服务器。

 

InnoDBBDB数据库也可用mysqldump和直接拷贝法进行备份。使用直接拷贝法时应注意需把组成InnoDBBDB数据库的所有文件都拷贝下来,如InnoDB.frm文件、日志文件和表空间配置文件;BDB的数据文件、日志文件等。

 

使用镜像机制进行备份,我们可用SLAVE STOP语句挂起从服务器的镜像,在从服务器上通过直接拷贝法或其它工具制作备份。备份完成,用SLAVE START重新启动镜像,从服务器重新与主服务器同步,接收备份时主服务器所做的修改。

 

MySQL中没有为数据库重命名的命令,但我们可用mysqldump转储数据库,再创建一个新的空数据库,把转储文件加载到该新数据库,这样就完成数据库重命名的工作。如:

 

% mysqldump old_db >db.sql            #转储db数据库数据

% mysqladmin create new_db            #新建一个空的数据库

% mysql new_db < db.sql               #db数据库的数据加载到新的数据库中

% mysqladmin drop old_db              #删除旧的数据库

 

一个更简单的重命名数据库的方法是直接修改数据库目录名,但该方法不适用于InnoDBBDB数据库。注意,在更名后,需在权限表中更新相关数据表信息,需执行以下语句:

 

mysql> UPDATE db SET db='new_db' WHERE db='old_db';

mysql> UPDATE tables_priv SET db='new_db' WHERE db='old_db';

mysql> UPDATE columns_priv SET db='new_db' WHERE db='old_db';

mysql> UPDATE host SET db='new_db' WHERE db='old_db'; 

 

7..备份说明

一个比较详细的关于mysql 备份还原的教程

 

还原一个数据库:mysql -h localhost -u root -p123456 www 

备份一个数据库:mysqldump -h localhost -u root -p123456 www > d:\www2008-2-26.sql

//以下是在程序中进行测试 

//$command = mysqldump opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile;

$command=mysqldump -h localhost -u root -p123456 guestbook > guestbook2-29.sql;

system($command);

echo success;

 

************************************************

备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

备份MySQL数据库为带删除表的格式

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

 

mysqldump -add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL数据库压缩备份

 

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

备份MySQL数据库某个()

 

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构

mysqldump no-data databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库

mysqldump all-databases > allbackupfile.sql

还原MySQL数据库的命令

 

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

还原压缩的MySQL数据库

 

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

将数据库转移到新服务器

mysqldump -uusername -ppassword databasename | mysql host=*.*.*.* -C databasename

 

几个常用用例:

1.导出整个数据库

mysqldump -u 用户名 -p 数据库名 导出的文件名

mysqldump -u root -p dataname >dataname.sql

这个时候会提示要你输入root用户名的密码,输入密码后dataname数据库就成功备份在mysql/bin/目录中.

 

2.导出一个表

mysqldump -u 用户名 -p 数据库名 表名导出的文件名

mysqldump -u root -p dataname users> dataname_users.sql

 

3.导出一个数据库结构

mysqldump -u wcnc -p -d add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql

-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

 

4.导入数据库

常用source 命令

进入mysql数据库控制台,

mysql -u root -p

 

mysql>use 数据库

 

然后使用source命令,后面参数为脚本文件(如这里用到的.sql

mysql>source d:\wcnc_db.sql

 

mysqldump支持下列选项:

add-locks

在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE(为了使得更快地插入到MySQL)

 

add-drop-table

在每个create语句之前增加一个drop table

 

allow-keywords

允许创建是关键词的列名字。这由表名前缀于每个列名做到。

 

-c, complete-insert

使用完整的insert语句(用列名字)

 

-C, compress

如果客户和服务器均支持压缩,压缩两者间所有的信息。

 

delayed

INSERT DELAYED命令插入行。

 

-e, extended-insert

使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)

 

-#, debug[=option_string]

跟踪程序的使用(为了调试)

 

help

显示一条帮助消息并且退出。

 

fields-terminated-by=

 

fields-enclosed-by=

 

fields-optionally-enclosed-by=

 

fields-escaped-by=

 

fields-terminated-by=

 

这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。

LOAD DATA INFILE语法。

 

-F, flush-logs

在开始导出前,洗掉在MySQL服务器中的日志文件。

 

-f, force,

即使我们在一个表导出期间得到一个SQL错误,继续。

 

-h, host=..

从命名的主机上的MySQL服务器导出数据。缺省主机是localhost

 

-l, lock-tables.

为开始导出锁定所有表。

 

-t, no-create-info

不写入表创建信息(CREATE TABLE语句)

 

-d, no-data

不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!

 

opt

同–quick add-drop-table add-locks extended-insert lock-tables

应该给你为读入一个MySQL服务器的尽可能最快的导出。

 

-pyour_pass, password[=your_pass]

与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。

 

-P port_num, port=port_num

与一台主机连接时使用的TCP/IP端口号。(这用于连接到localhost以外的主机,因为它使用 Unix套接字。)

 

-q, quick

不缓冲查询,直接导出至stdout;使用mysql_use_result()做它。

 

-S /path/to/socket, socket=/path/to/socket

localhost连接时(它是缺省主机)使用的套接字文件。

 

-T, tab=path-to-some-directory

对于每个给定的表,创建一个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它包含数据。注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据–fields-xxx和 –linesxxx选项来定。

 

-u user_name, user=user_name

与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。

 

-O var=option, set-variable var=option

设置一个变量的值。可能的变量被列在下面。

 

-v, verbose

冗长模式。打印出程序所做的更多的信息。

 

-V, version

打印版本信息并且退出。

 

-w, where=where-condition

只导出被选择了的记录;注意引号是强制的!

“–where=user=jimf’” “-wuserid>1″ “-wuserid<1

 

最常见的mysqldump使用可能制作整个数据库的一个备份:

mysqldump opt database > backup-file.sql

 

但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:

mysqldump opt database | mysql host=remote-host -C database

由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:

shell> mysqladmin create target_db_name

shell> mysql target_db_name < backup-file.sql

就是 shell> mysql 库名 文件名

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值