MySQL使用初步mysql、mydqladmin、mysqlbinlog等

转载自:http://blog.chinaunix.net/uid-24477314-id-2606033.html

这里先介绍下mysql的几种重要的工具:
mysql
交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。
mysqladmin
执行管理操作的客户程序,例如创建或删除数据库,重载授权表,将表刷新到硬盘上,
以及重新打开日志文件。mysqladmin还可以用来检索版本、进程,以及服务器的状态信息。
mysqlbinlog
从二进制日志读取语句的工具。在二进制日志文件中包含的执行过的语句的日志可用来帮助
从崩溃中恢复。
mysqlcheck
检查、修复、分析以及优化表的表维护客户程序。
mysqldump
将MySQL数据库转储到一个文件(例如SQL语句或tab分隔符文本文件)的客户程序。
mysql import
使用LOAD DATA INFILE将文本文件导入相关表的客户程序。
OK,接下来让我们一个一个的解决它们。
1.mysql命令
#mysql db_name //进入交互式模式,并操作db_name数据库,如果不跟数据库名字就是默认
的mysql数据库
或者以指定的用户和密码访问数据库
#mysql --user=user_name --password=your_password db_name
更多详细的参数可以查看help命令
#mysql -help
同样,mysql命令可以支持输入/输出重定向,这样可以将SQL语句写到一个文件中,我们称
之为SQL脚本,然后导入到mysql中。
#mysql db_name < text_file
在交互式运行mysql,可以用source或/.命令执行SQL脚本
#source filename //filename 脚本名 
或者
mysql> /.filename
2.mysqladmin 用于管理mysql服务器的客户端
mysqladmin是一个执行管理操作的客户程序,它非常的强大。你可以用它来检查服务
器的配置和当前的状态,创建并删除数据库等等。
①创建名字为db_name的数据库
#mysqladmin create db_name
②删除名字为db_name的数据库
#mysqladmin drop db_name
③查看当前服务器的状态信息
mysqladmin extended-status
④重载授权表(类似reload,通常跟随在重新全线操作后)
#mysqladmin flush-privileges
⑤给当前连接使用的用户设置一个新密码,密码更改为new-password
#mysqladmin -u username -p password new-password
如果new-password包含空格或其它命令解释符的特殊字符,需要用引号将它
引起来。
⑥关闭服务器
#mysqladmin shutdown
3.mysqlbinlog 用于处理二进制日志文件的实用工具
二进制日志文件是记录对数据库操作记录的日志文件,采用二进制进行保存。简单的说,
这类日志文件中保存的是我们对数据库的所有操作。它在我们恢复数据库的时候给予了我们
很大的帮助。由于这一类文件使用的是二进制方式存储,因此不可以直接编辑和使用它们,
因此我们要借助mysqlbinlog工具可以帮助我们检查这些文件。
可以将mysqlbinlog的输出传到没有生气了客户端以执行包含在二进制日志中的语句。如果
你有一个旧的备份,该选项在崩溃的时候恢复时很有用。
# mysqlbinlog binlog.000001 | mysql
或:
# mysqlbinlog binlog.0000003
另一个方法是:
# mysqlbinlog binlog.000001 > /tmp/statements.sql
# mysqlbinlog binlog.000002 >> /tmp/statements.sql
# mysql -e "source /tmp/statements.sql"
这个方法可以避免当前一个二进制日志文件使用到临时表的时候,由于退出进程时自动删除
临时表而造成的后一个二进制文件无法继续使用临时表的问题。
3.mysqlcheck 表维护和维修程序
mysqlcheck客户端可以检查和修复MyISAM表。它还可以优化和分析表。另一个功能与它类似
的程序是myisamchk。它们之间的主要差别是当mysqld服务器在运行时必须使用mysqlcheck
,而myisamchk应用于服务器没有运行时。使用mysqlcheck的好处是不需要停止服务器就可
以检查或修复表。
有三种方式来使用mysqlcheck
①检查某个数据的所有表,或者某个数据库的某张表
#mysqlcheck db_name [table_name]
②一次性检查多个表
mysqlcheck --databases db_name1 [db_name2 db_name3...]
③一次性检查所有数据库
mysqlcheck --all-database
如果在mysqlcheck后面什么都不跟,那么默认是检查所有的数据库。
mysqlcheck默认跟随的操作是“mysqlcheck --check”,就是检查操作。你可
以使用 “--repair”参数来进行修复动作。例如修复名字为db_name的数据库中所有的
表:
# mysqlcheck --repair db_name
或者:
# mysqlcheck --auto-repair db_name
这句命令的含义是检查db_name这个数据库,如果发现有错误则自动修复它。
mysqlcheck还有一个很有意思的特性,那就是你可以通过改变它的文件名来更改它的
默认操作。比如说,将mysqlcheck复制为mysqlrepair,那么当你执行mysqlrepair
的时候,默认就采取了修复动作。
4.mysqldump 数据库备份程序
mysqldump是一个非常好的数据库备份程序。它制作出来的备份可以跨平台、跨文件系统,
甚至是跨版本的进行恢复。为什么会这么神奇呢?其实很简单,如果你打开一个mysqldump
生成的备份文件你会发现,实际上里面的内容其实是用SQL语言把数据库里所保存的数据表
述出来,文件中充斥着create、drop、insert等SQL语句。
你可以以三种方式来调用mysqldump。
mysqldump [options] db_name [tables]
mysqldump [options] ---database DB1 [DB2 DB3...]
mysqldump [options] --all—database
用法和前面的mysqlcheck差不多,你可以参考下mysqldump --help
5.mysqlimport 数据导入程序
刚才说了数据库的备份程序,当我们需要用这些备份来恢复我们的数据库的时候就需要用到
mysqlimport
mysqlimport [options] db_name textfile1 [textfile2...]
例如:
#mysqlimport db_name backup1.sql //使用backup1.sql备份文件回复db_name
和其他工具一样,mysqlimport也有很多选项可以使用。你可以使用“--help”参
数来查看它们。有时候你可能不得不用到它们,比如:
# mysqlimport -uroot -p --force db_name backup1.sql
使用root用户连接数据库,并且忽略恢复过程中可能出现的错误强制性的进行导入。
事实上,通过mysql的非交互式使用一样可以做到讲备份文件里的内容恢复进数据库。
另外,你也可以使用其他各种具备类似功能客户端工具来做到这一点。他们所做的事情其实
都是一样的,就是讲备份文件中的SQL语句录入到数据库当中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值