您的位置:首页 > 数据库 > MySQL

碰到mysql的一些问题及解决

2015-08-26 14:08 501 查看
问题描述:由于磁盘满了,将mysql的data目录全部转移到别的目录下(/data/mysql),修改mysql配置

datadir         = /data/mysql

修改目录权限:/etc/apparmor.d/usr.sbin.mysqld

添加:

/data/mysql/r,

/data/mysql/**rwk,

启动mysql
发现如下错误:

150826 10:33:18  InnoDB: Error: page 7 log sequence number 110 2657205495
InnoDB: is in the future! Current system log sequence number 0 3114505740.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html
InnoDB: for more information.

解决方法尝试1:重命名/data/mysql目录下ib_logfile0、ib_
logfile1文件

再启动mysql
发现可以连上了  
偷笑~~  可是过了一会儿mysql死了就再也起不来了。。

解决方法尝试2:删除ibdata1文件

启动mysql 
可以,但是innoDB存储方式的数据库数据没了,这不是我们想要的

解决方法尝试3:以只读方式打开数据库并导出:

mysqld-nt --innodb_force_recovery=4

再开个窗口

mysqldump-uroot –p******* --opt --add-drop-table  database1>database1

mysqldump-uroot -p******* --opt --add-drop-table  database2>database2



我这里好多个库~~~

导好了,退出mysql,回到刚那个窗口下ctrl+c,没效果的话就在killall
mysqld吧

犯二了下:怕没导好,再备份了下数据文件

/data目录下 mv mysql my1

                     Cp my1 mysql

不知道我想的啥。。。反正是这么干的。。

删除/data/mysql中除目录以外的所有文件

启动mysql,报错:

15082611:58:01 [Warning] Using unique option prefix myisam-recover instead ofmyisam-recover-options is deprecated and will be removed in a future release.Please use the full name instead.

^G/usr/sbin/mysqld:Can't find file: './mysql/plugin.frm' (errno: 13)

15082611:58:01 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade tocreate it.

15082611:58:01 InnoDB: The InnoDB memory heap is disabled

15082611:58:01 InnoDB: Mutexes and rw_locks use GCC atomic builtins

15082611:58:01 InnoDB: Compressed tables use zlib 1.2.3.4

15082611:58:01 InnoDB: Initializing buffer pool, size = 128.0M

15082611:58:01 InnoDB: Completed initialization of buffer pool

15082611:58:01  InnoDB: Operating system errornumber 13 in a file operation.

InnoDB:The error means mysqld does not have the access rights to

InnoDB:the directory.

InnoDB:File name ./ibdata1

InnoDB:File operation call: 'create'.

InnoDB:Cannot continue operation.

一直找不到原因,后来才发现,刚才备份的问题,mysql目录的权限是root下了。。。

/data目录下执行

chown-R mysql:mysql mysql/

再启动mysql,ok

Mysql –p****进入mysql把刚才备份的数据库全drop掉

Dropdatabase database1;

Dropdatabase database2;



再创建起来:

Createdatabase database1;

Createdatabase database2;



导入刚备份的数据库:

mysql -u** -p** database1<
database1;

mysql -u** -p** database1<
database1;

ok,数据库完美恢复
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql