Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102779
  • 博文数量: 18
  • 博客积分: 1421
  • 博客等级: 上尉
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-04 15:21
文章分类

全部博文(18)

文章存档

2009年(14)

2008年(4)

我的朋友

分类: Mysql/postgreSQL

2009-02-19 18:10:40

1 使用mysqldump备份和拷贝数据库

当你使用mysqldump程序产生数据库备份文件时,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。
 
你可以将整个数据库倾倒进一个单独的文本文件中,如下:
 
%mysqldump -u用户名 -p密码 samp_db(数据库) > /usr/archives/mysql/samp_db.1999-10-02 (输出的mysql脚本文件)
 
如果要快速的导出数据库中的数据以及导出存储过程,使用如下语句(增加了两个参数--opt  -R):
 
%mysqldump -u用户名 -p密码    --opt    -R   samp_db(数据库) > /usr/archives/mysql/samp_db.1999-10-02 (输出的mysql脚本文件)
 
2. 在另一个机器上执行该脚本
 
先把输出的脚本文件拷贝过来,然后:
 
%mysqladmin -u用户名 -p密码   create    samp_db(数据库)         //先创建数据库samp_db
%mysql -u用户名 -p密码 samp_db(数据库) < samp_db.1999-10-02 (输入的mysql脚本文件) //创建表以及插入数据
 
3.  如果在操作视图和存储过程中遇到“ERROR 1449 (HY000): There is no registered”的情况,大意是说找不到在Host 值为"%",User值为"root"的数据,即该主机以及该用户没注册到mysql数据库中的user表中,因为创建这些视图和存储过程的所有者为”,进行如下操作即可明白:
mysql> use mysql;                  //进入mysql数据库
mysql> desc user;                   //查看user表的结构
mysql> select * from user;     //查看user表的数据
mysql> DELETE FROM user WHERE Host='%';  //如果有该主机"%",删除该行数据
mysql> INSERT INTO mysql.user (Host,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Show_db_priv,Super_priv,Create_tmp_table_priv,Lock_tables_priv,Execute_priv,Repl_slave_priv,Repl_client_priv,Create_view_priv,Show_view_priv,Create_routine_priv,Alter_routine_priv,Create_user_priv) values ('%','root', PASSWORD('root'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
//插入 的注册信息并授予相应的权限
 
mysql> FLUSH PRIVILEGES;    //验证相应的权限是否正确
 
通过上述几步就可以解除访问视图或是存储过程的权限了。
阅读(1362) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~