免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3368 | 回复: 16
打印 上一主题 下一主题

请教 数据库还原问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-10 15:27 |只看该作者 |倒序浏览
我在一台机器上启动了两个MYSQL  端口分别对应是 3306  3307
每天 把 别的 服务器上的 数据还原到 3307 上   我是这么写的

mysqlpath=/usr/local/mysql/bin/mysql
$mysqlpath -u root -p -P3307 -D 库1 -D 库2  。。   < /root/all-databases.sql

问  为什么我的还原操作老影响 3306 的库 ?

还有 我在 DUMP 的时候 加了 --opt 已经要了 DROP TALBES  为什么 还原的 时候 提示我错误。

DROP TABLE IF EXISTS `imerl_v_logs_2007_04`;  

他不是 提示我表存在  他提示我主见  什么错误  

但是我觉的  既然在那个里 好使  倒 到我这 应该不那个表 DROP 在从新 加入

小弟 在线等

谢谢 大哥们了

论坛徽章:
0
2 [报告]
发表于 2007-07-10 15:34 |只看该作者
1. 看看 mysql 是不是受 my.cnf 裏 [client] 的影響比用參數要深

2. 是不是你的表有外鍵?

论坛徽章:
0
3 [报告]
发表于 2007-07-10 15:57 |只看该作者
/usr/local/mysql/libexec/mysqld --defaults-file=/etc/my1.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/var1/ --user=mysql --pid-file=/var/run/mysqld/slave.pid --skip-locking --port=3307 --socket=/tmp/mysql1.sock --skip-locking

/usr/local/mysql/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/var/ --user=mysql --pid-file=/var/run/mysqld/master.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock --skip-locking

外键有没有 我就不知道了?
因为我对数据库不太熟。只是会搭环境。   
随便 请教一下 如何查看一个表里有没有 外键

论坛徽章:
0
4 [报告]
发表于 2007-07-10 19:09 |只看该作者
我也只會達環境,

要是你這種,也可能 3306 是 3307 的複製庫,貼出你的 兩個 cnf 看看

你試試用  mysql --defaults-file=/etc/my1.cnf -p .... <  sql file 來還原看看,

show create table table name , 然後你看 有沒有 外鍵

论坛徽章:
0
5 [报告]
发表于 2007-07-10 21:29 |只看该作者
原帖由 alvis 于 2007-7-10 19:09 发表
我也只會達環境,

要是你這種,也可能 3306 是 3307 的複製庫,貼出你的 兩個 cnf 看看

你試試用  mysql --defaults-file=/etc/my1.cnf -p .... <  sql file 來還原看看,

show create table table na ...


mysql> show create table imerl_v_logs_2007_07\G
*************************** 1. row ***************************
       Table: imerl_v_logs_2007_07
Create Table: CREATE TABLE `imerl_v_logs_2007_07` (
  `v_log_id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(10) DEFAULT NULL,
  `interface` varchar(16) NOT NULL DEFAULT '',
  `mod` varchar(16) NOT NULL DEFAULT '',
  `actdo` varchar(16) NOT NULL DEFAULT '',
  `dostring` text NOT NULL,
  `addtime` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`v_log_id`),
  KEY `uid` (`uid`,`mod`,`actdo`),
  KEY `interface` (`interface`)
) ENGINE=MyISAM AUTO_INCREMENT=42134 DEFAULT CHARSET=gbk
1 row in set (0.00 sec)

好象是没有外键

也可能 3306 是 3307 的複製庫,貼出你的 兩個 cnf 看看

这个不可能。因为我在CONF里 指定了 SERVER-ID

论坛徽章:
0
6 [报告]
发表于 2007-07-10 21:58 |只看该作者
这是 3306 的CONFIG
[client]
port            = 3306
socket          = /tmp/mysql.sock


[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M


log-bin=mysql-bin

server-id       = 1




[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

论坛徽章:
0
7 [报告]
发表于 2007-07-10 21:59 |只看该作者
这是 3307 的 CONFIG
[client]
port            = 3307
socket          = /tmp/mysql1.sock


[mysqld]
port            = 3307
socket          = /tmp/mysql1.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M


log-bin=mysql-bin

server-id       = 1




[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

论坛徽章:
0
8 [报告]
发表于 2007-07-10 22:06 |只看该作者
我忘说了   这不是 主从 模式   

就是两个 单独的 数据库   

一台 机器上跑了 两个库  一个 做测试用 一个服务用。

我期望的 把 每天从别的机器上 DUMP 出来的 数据     还原到 3307 这库里  

问题是    为什么我的还原操作老影响 3306 的库

我的 还原 命令是
mysqlpath=/usr/local/mysql/bin/mysql

$mysqlpath -P 3307 -u root -p"qwe!@#" --default-character-set=gbk -D imerl_email -D imerl_1x -D imerl_tags -D imerl_1x_reports -D imerl_1x_logs < $filepath/all-databases.sql


求解

论坛徽章:
0
9 [报告]
发表于 2007-07-10 22:13 |只看该作者
mysql --defaults-file=/etc/my1.cnf -p .... <  sql file

这着试了不管用么?


关于主键错误的,能把提示搞出来么

论坛徽章:
0
10 [报告]
发表于 2007-07-11 13:51 |只看该作者
原帖由 alvis 于 2007-7-10 22:13 发表
mysql --defaults-file=/etc/my1.cnf -p .... <  sql file

这着试了不管用么?


关于主键错误的,能把提示搞出来么



我把命令贴给你看了   我就是这么做的。     

我怀疑是不是 我 那个 参数错了 。   比如说 我 指定的 端口 参数 不对     它没有连接到3307上    而连接到3306 上了。

我也正想把 这个 错误 贴给你  。  让你帮分析一下 。  

可是 现在 程序员们 正 用这个 库那 。 我不能在 还原了 。   

如果还原了。 他们的 键值 都会变的 。  

现在 唯一的 希望就是 在我自己本机上   搭出 跟 那个 机器上一样的环境来   我还原一下 看看  还出不出那个 错误了 。

真的难为你了 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP