当mysql出现”ERROR 1062”错误时:查看字段的属性是否合理,不合理,则修改该字段的属性;合理,则进行表的恢复。如下图也有可能是:ERROR 1062: Duplicate entry ‘13747’ for key 1 等(所有这种1062类型的错误)。
本地数据库:mysql -u用户名 -p密码 (本地) 远程数据库:mysql -h地址(ip如192.16.1.1) -u用户名 -p密码 -P端口号
首先查看数据库中该字段类型是否合理,比如字段的类型和定义的长度等是否与实际存入的值不相符,用 show create table 表名 查看表的结构,下图是接着上图错误进入数据库中查看字段属性。
检查”come_from” 字段类型与大小是否合理,若不合理则用以下命令修改该字段的属性:
alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空],alter table 表名称 modify 字段名称 字段类型 [是否允许非空]。
最后,如果检查发现字段定义不存在问题,那我们可以用:repair table 表名 语句进行表恢复,表越大,需要的时间越长,慢慢等就是了。
原因:根据MySQL返回的错误代码(Duplicate
entry
'1'
for
key
'PRIMARY')判断,MySQL对应数据库的表(pre_alj_aboutus_menu)中已经含有主键为1的记录。
解决方案:
a)
先清空pre_alj_aboutus_menu表的数据,再重新用Discuz导入;
b)
对比pre_alj_aboutus_menu表现有记录与即将导入的记录,手动修改有冲突的主键值
备注:
修复上述问题均需要对SQL语言有基本了解,使用“mysql终端”或者“phpmyadmin”等图形化工具进行 *** 作,否则只能重建数据库,一切重新来过。
1、检查mysql数据库防火墙和mysql账户在mysql数据库netstat -ntlp看3306是否开启
iptables -nvL检查防火墙
mysql -uroot -p123456 -Dmysql -e "select user,host from user"
2、创建数据库
mysql>create database discuz_db
3、创建用户:
mysql>CREATE USER ‘user01’@’192.168.26.128’ IDENTIFIED BY ‘123456’”
或者
mysql>CREATE USER ‘user01’@’%’ IDENTIFIED BY ‘123456’”
4、授权:
mysql>GRANT ALL ON discuz_db.* TO ‘user01’@’192.168.26.128'”
或者
mysql>GRANT ALL ON discuz_db.* TO ‘user01’@’%'”
mysql>flush privileges
5、在apache服务器telnet 192.168.26.130 3306,判断端口能否访问到
6、在apache服务器测试mysql远程登陆
mysql -h 192.168.26.130 -uroot -p123456 -P3306
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)