发表于: 2017-09-09 21:25:13

2 853


一、今日完成

1.学习使用mysqldump转存备份MySQL:

1)shell> mysqldump [ arguments ] > file_name

默认情况下, mysqldump将信息作为SQL语句写入标准输出。 将输出保存在文件中。

2)shell> mysqldump --all-databases > dump.sql

转储所有数据库

3)shell> mysqldump --databases db1 db2 db3 > dump.sql

仅转储特定的数据库;--databases选项使命令行上的所有名称都被视为数据库名称。 没有这个选项, mysqldump将第一个名称作为数据库名称,并将其作为表名称。

使用--all-databases或--databases , mysqldump在每个数据库的转储输出之前写入CREATE DATABASE和USE语句。 这样可以确保在重新加载转储文件时,如果转储文件不存在,它将创建每个数据库,并将其设置为默认数据库,从而将数据库内容加载到与之相同的数据库中。 如果要在重新创建数据库之前先--add-drop-database转储文件强制删除每个数据库,可以使用--add-drop-database选项。 在这种情况下, mysqldump会在每个CREATE DATABASE语句之前写入DROP DATABASE CREATE DATABASE语句。

4)shell> mysqldump --databases test > dump.sql

转储单个数据库,在单数据库情况下,可以省略--databases选项;而没有--databases ,转储输出不包含CREATE DATABASE或USE语句。这种写法,有如下几项需要注意:

i.重新加载转储文件时,必须指定默认数据库名称,以便服务器知道要重新加载的数据库。可以指定与原始名称不同的数据库名称,这样可以将数据重新加载到其他数据库中。

ii.如果要重新加载的数据库不存在,则必须先创建它。

iii.因为输出将不包含CREATE DATABASE语句,所以--add-drop-database选项不起作用。 如果使用它,则不会生成DROP DATABASE语句。


2.重新加载SQL格式备份

1)如果转储文件由mysqldump使用--all-databases或--databases选项CREATE DATABASE ,则它包含CREATE DATABASE和USE语句,并不需要指定加载数据的默认数据库:

shell> mysql < dump.sql

mysql> source dump.sql

以上两种方式,分别在shell内和MySQL内执行,需要区分。

2)如果文件是不包含CREATE DATABASE和USE语句的单数据库转储,先创建数据库

shell> mysqladmin create db1

然后在加载转储文件时指定数据库名称:

shell> mysql db1 < dump.sql

或者,从mysql内创建数据库,选择它作为默认数据库,并加载转储文件:

mysql> CREATE DATABASE IF NOT EXISTS db1; mysql> USE db1; mysql> source dump.sql

 

3.将数据库备份成txt和sql格式

使用--tab= dir_name选项调用mysqldump ,则会使用--tab= dir_name作为输出目录,并使用每个表的两个文件在该目录中单独转储表。 表名是这些文件的基本名称。 对于名为t1的表,文件名为t1.sql和t1.txt 。 .sql文件包含CREATE TABLE的CREATE TABLE语句。 .txt文件包含表数据,每个表行一行。

shell> mysqldump --tab=/tmp db1

.txt文件由服务器写入,它们由用于运行服务器的系统帐户所有。 服务器使用SELECT ... INTO OUTFILE写入文件,因此必须具有FILE权限才能执行此操作,如果给定的.txt文件已存在,则会发生错误。服务器将转储表的CREATE定义发送到mysqldump ,将它们写入.sql文件。 因此,这些文件由执行mysqldump的用户拥有。


4.加载分隔的文本格式备份

对于使用mysqldump --tab生成的备份,每个表在输出目录中由包含CREATE TABLE的CREATE TABLE语句的.sql文件以及包含表数据的.txt文件表示。 要重新加载表,首先将位置更改为输出目录。 然后使用mysql处理.sql文件以创建一个空表,并处理.txt文件以将数据加载到表中:

shell> mysql db1 < t1.sql shell> mysqlimport db1 t1.txt

另一种方法是使用mysql的LOAD DATA INFILE语句:

mysql> USE db1; mysql> LOAD DATA INFILE 't1.txt' INTO TABLE t1;

以上两种方法除了用来恢复备份外,还可以把其他程序导出的txt格式数据按照mysql表对应的格式导入数据库,作为MySQL表的数据源。


5.学习Linux一些命令

不同于Microsoft windows 是一种单用户 多任务操作系统,Unix具有多任务和多用户的特征,因此在root账户外为其他用户提供userid和password十分有必要;

1)用户管理命令

  useradd :添加用户

  adduser :添加用户

  passwd :为用户设置密码

  usermod :修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;

  pwcov :同步用户从/etc/passwd 到/etc/shadow

2)管理用户组(group)的工具或命令;

  groupadd 注:添加用户组;

  groupdel 注:删除用户组;

  groupmod 注:修改用户组信息

  groups 注:显示用户所属的用户组

因为使用的Linux部署在阿里云上,切换用户的方式与在pc端有所不同。在PC端使用logout或者exit即可注销当前用户,但是在阿里云的Linux中只能通过login进行切换,需要注意login虽然改变了用户id,但是原来的id仍处于登录状态:

这里可以看到用户名变成了ganle

3)last命令可以查看其他用户的登录记录

4)在初始化命令结束后,Unix启动shell,把控制权交给它,然后shell显示一个提示称为shell提示;shell提示表示shell正在等待输入命令。

对于Bash和Korn Shell来说,提示是一个美元符号$

对于C-Shell来说提示是一个百分比%


二、明日计划

个人有事,请假一天。


三、遇到问题

无。


四、收获

以上


禅道进度:http://task.ptteng.com/zentao/task-view-10353.html





返回列表 返回列表
评论

    分享到