|
MySQL admin go on: ------------------------------------------------------------------------------ 更多请见: (MySQL中文手册) 1:select now();--Like their all:select CURRENT_DATE()+select CURRENT_TIME() 2:select user(); 3:select database(); 4:describe db_name; ------------------------------------GRANT---------------------------------- 5:grant all privileges on *.* to [url=mailto:]'tony'@'localhost' identified by "pass_word" with grant option; --another:grant reload,process on *.* to [url=mailto:]'admin'@'localhost; --another:grant usage on *.* to [url=mailto:]'dummy'@'localhost';// 6:flush privileges;--在直接操纵权限表的情况下使用 7:show privileges; --打印可操作的权限列表 8:drop user user_name[,user_name];--要点:DROP USER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。这是有意设计的。 --完整的GRANT语法: GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] {tbl_name | * | *.* | db_name.*} TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ... [REQUIRE NONE | [{SSL| X509}] [CIPHER 'cipher' [AND]] [ISSUER 'issuer' [AND]] [SUBJECT 'subject']] [WITH with_option [with_option] ...] object_type = TABLE | FUNCTION | PROCEDURE with_option = GRANT OPTION | MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count | MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count ---完整的GRANT语法:- 9:更多限制的grant语句: grant all on test.* to [url=mailto:]'francis'@'localhost' identified by 'frank' with max_queries_per_hour 20 max_updates_per_hour 20 max_connections_per_hour 5 max_user_connections 2;--限制用户访问的资源 --服务器运行时,它统计每个账户使用资源的次数。如果账户在最后一个小时的连接次数达到限制,该账户的进一步的连接被拒绝。类似地,如果账户达到查询或更新次数的限制,进一步的查询或更新被拒绝。在这种情况下,会给出相关错误消息。 -------------------Set user password-------------------------- 10:SET PASSWORD FOR [url=mailto:]'jeffrey'@'%' = PASSWORD('biscuit'); --Ignore 'for ...' for set password itself set password=PASSWORD('xxxx');--PASSWPRD() is a crypt fun... --you can also use mysqladmin tool to set pass --$mysqladmin -u jerry -h % password pass_word_value --You can also control the user table to update privileges .Remember :flush privileges 11:--你可以在一个配置文件里面保存你的密码,并设置该文件权限为400 or 600 12:show variable like '%ssl%';--Use regex to get some variables ------------------------DataBase backup (完全备份和增量备份)以及如何执行表的维护------------------------------------ 13:--SQL级别的备份 select into ... to outfile BACKUP table outfile --Select and BACKUP grammar: --BACKUP TABLE tbl_name [, tbl_name] ... TO '/path/to/backup/directory' --outfile不能事先存在,因为覆盖完整的文件会有安全风险 14:--Use backup tool:mysqldump mysqlhotcopy(Only work for MyISAM engine,He actually do copy the *.frd *.MYI *.MYD file,And this can work only when databases is not doing update...) --So,use mysqldump is good ieda. --Completed backup database; --$mysqldump -u jerry -p test >databasetest.sql --shell# mysqlhotcopy db_name /path/to/some/dir 15:-- log-bin 二进制日志文件中提供了执行mysqldump之后对数据库的更改进行复制所需要的信息。 16:--每次重启,MySQL服务器用序列中的下一个编号创建一个新的二进制日志文件。当服务器运行时,你还可以通过执行FLUSH LOGS SQL语句或mysqladmin flush-logs命令,告诉服务器关闭当前的二进制日志文件并创建一个新文件。mysqldump也有一个选项来清空日志。数据目录中的.index文件包含该目录下所有MySQL二进制日志的清单。该文件用于复制 --flush logs; --mysqladmin flush logs 17:--恢复时MySQL二进制日志很重要,因为它们是增量备份。如果进行完全备份时确保清空了日志,则后面创建的二进制日志文件包含了备份后的所有数据更改。让我们稍稍修改前面的mysqldump命令,让它在完全备份时能够清空 MySQL二进制日志,以便转储文件包含包含新的当前的二进制日志: --shell> mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > backup_sunday_1_PM.sql --执行该命令后,数据目录则包含新的二进制日志文件,gbichot2-bin.000007。结果.sql文件包含下列行: -- Position to start replication or point-in-time 恢复时y from -- CHANGE MASTER TO MASTER_LOG_FILE='gbichot2-bin.000007',MASTER_LOG_POS=4; --因为mysqldump命令可以执行完全备份,这些行表示两件事情: -- .sql文件包含所有写入gbichot2-bin.000007二进制日志文件或最新的文件之前的更改。 --· 备份后所记录的所有数据更改不出现在.sql中,但出现在gbichot2-bin.000007二进制日志文件或最新的文件中。 --在星期一下午1点,我们可以清空日志开始新的二进制日志文件来创建增量备份。例如,执行mysqladmin flush-logs命令创建gbichot2-bin.000008。星期日下午1点的完全备份和星期一下午1点之间的所有更改为文件gbichot2-bin.000007。该增量备份很重要,因此最好将它复制到安全的地方。(例如,备份到磁带或DVD上,或复制到另一台机器上)。在星期二下午1点,执行另一个mysqladmin flush-logs命令。星期一下午1点和星期二下午1点之间的所有所有更改为文件gbichot2-bin.000008(也应复制到某个安全的地方)。 --MySQL二进制日志占据硬盘空间。要想释放空间,应随时清空。操作方法是删掉不再使用的二进制日志,例如进行完全备份时: --shell> mysqldump --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs > backup_sunday_1_PM.sql --注释:如果你的服务器为复制主服务器,用mysqldump --delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。 18:--备份策略摘要: --出现操作系统崩溃或电源故障时,InnoDB自己可以完成所有数据恢复工作。但为了确保你可以睡好觉,应遵从下面的指导: -- 一定用--log-bin或甚至--log-bin=log_name选项运行MySQL服务器,其中日志文件名位于某个安全媒介上,不同于数据目录所在驱动器。如果你有这样的安全媒介,最好进行硬盘负载均衡(这样能够提高性能)。定期进行完全备份,使用mysqldump命令进行在线非块备份。用FLUSH LOGS或mysqladmin flush-logs清空日志进行定期增量备份。
-----------------------------------总结一下: 为保证数据完整性 1:以log-bin方式启动mysqld服务 2:使用InnoDB引擎 3:使用mysqldump定时完整备份,并使用注意flush logs. 4:定时使用flush logs做增量备份
|
一共有 0 条评论