mysql本地服务器启动意外中断.docx
《mysql本地服务器启动意外中断.docx》由会员分享,可在线阅读,更多相关《mysql本地服务器启动意外中断.docx(13页珍藏版)》请在冰点文库上搜索。
mysql本地服务器启动意外中断
看你的mysql现在已提供什么存储引擎:
mysql>showengines;
看你的mysql当前默认的存储引擎:
mysql>showvariableslike'%storage_engine%';
之前装mysql系统的时候没有修改存储引擎,所以默认的都是myisan。
上次在my.ini中将默认为myisam修改为innodb,所以就出错。
还有之前将innodb_buffer_pool_size=128M修改为6M。
根据之前建议谁修改为物理内存的50%~70%。
本地的实际物理内存为4G所以超出了。
修改innodb_buffer_pool_size=2M设置。
打开表弹出错误
查看已安装的mysql服务器版本
查看一下当前mysql安装是否支持动态添加插件。
其中的have_dynamic_loading为yes表示支持动态添加插件。
have_innodb:
值为DISABLED,表示未启用,值为no,表示不支持innodb存储引擎
showvariableslike"have_%";
提示我没有权限打开
查找mysql存放插件的路径,但在该目录中查找不到ha_innodb.so和ha_innodb_plugin.so两个文件。
需要去网上下载所安装mysql对应版本的插件安装包。
查看显示插件。
在管理中查看事件日志
删除ibdata1 ib_logfile0和ib_logfile1启动还是报错无法识别innodb然后在删除下图中。
Tmp的文件,然后重启服务器,就报错1146
发现原先存储的数据的ibdata1文件被我删除,(不该听信网上的,就删除了)。
因为删除数据,那么就是报上面的1146的错误,也无法ibdata1中有的表的存储引擎修改为innodb。
查看本地的表,由于.frm文件的表结构存储,所以在show的时候还是有表的。
现在重新showengines;查看到有innodb存储引擎了,虽然还不是默认。
我新建一个数据库,不用代码的,导入之前的一写表(自己建的)然后查看。
在这个新的数据库上的新建表,等都没有问题。
我重新建一个表,show下,默认存储引擎为myisam。
可是我修改默认引擎为innodb本地服务器不能重启。
有重新回到最初的问题。
最开始的engine=myisam,在此基础上建了A表,那么你现在要转成innodb的方式(开启了f下的innodb的参数)现在如果再来selectA表那么是会报不存在的,如果drop的话会报mysqlerrornumber1051.这个问题该怎么处理呢?
哈哈,先关掉f的innodb参数,然后重启mysql,这样A就可以select了,把A表的backup下来,drop掉A表,然后再开启innodb参数,重起mysql,restore刚才备份的脚本,这样就可以搞定了.
查看当前插件innodb为disabled关闭状态
。
.err日志显示
1508298:
19:
06[Note]Plugin'FEDERATED'isdisabled.
1508298:
19:
06[Note]Plugin'InnoDB'isdisabled.
1508298:
19:
06[Note]EventScheduler:
Loaded0events
1508298:
19:
06[Note]D:
\mysql\bin\mysqld:
readyforconnections.
Version:
'5.5.17-log'socket:
''port:
3306MySQLCommunityServer(GPL)
datadir="C:
/ProgramData/MySQL/MySQLServer5.5/Data/"修改目录在D盘下
FEDERATED:
能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。
十分适合于分布式环境或数据集市环境。
之前修改默认存储引擎的时候服务器都是打开的,然后修改然后在重启服务器。
所以在重启的时候一直报错。
关闭服务器,修改my.ini的default-storage-engine=INNODB,
skip-innodb这参数的作用是注释掉innodb,使其不可用。
在该参数前加#注释该参数。
然后就可以了~这几天一直为这个头痛,觉得自己遇上大问题了心想着要不要重装mysql,顺便更新下新的版本,不过又不甘心。
之前也有遇到问题好几天都不能解决的,后来的实践中,就会自认而然的解决。
虽然这次问题中为什么innodb为什么会从没有到有,这个问题还没搞明白。
看了之前的记录,我应该是删除了 ib_logfile0和ib_logfile1这两文件和D/MYSQL/DATE下除了mysql文件的服务器启动文件后,服务器就不再报错说:
不支持innodb。
该报错TheInnoDBmemoryheapisdisabled
又一次本地服务器启动意外结束
查看。
Err文件
509019:
59:
08InnoDB:
TheInnoDBmemoryheapisdisabled
1509019:
59:
08InnoDB:
Mutexesandrw_locksuseWindowsinterlockedfunctions
1509019:
59:
08InnoDB:
Compressedtablesusezlib1.2.3
1509019:
59:
08InnoDB:
Initializingbufferpool,size=128.0M
1509019:
59:
08InnoDB:
Completedinitializationofbufferpool
1509019:
59:
08InnoDB:
highestsupportedfileformatisBarracuda.
1509019:
59:
09InnoDB:
Waitingforthebackgroundthreadstostart
1509019:
59:
10InnoDB:
1.1.8started;logsequencenumber3893674
1509019:
59:
10[Note]Recoveringafteracrashusingyanxue-PC-bin
1509019:
59:
10[Note]Startingcrashrecovery...
1509019:
59:
10[Note]Crashrecoveryfinished.
1509019:
59:
10[ERROR]Fatalerror:
Can'topenandlockprivilegetables:
Table'mysql.host'doesn'texist
解决:
:
将D:
\mysql\data下的mysql文件夹复制到
在D:
\mysql\MySQLServer5.5\data之前默认在c盘的
原因:
正在寻求中。
在此记录下。
。
。
。
好无语啊。
。
。
S
1045表明你输入的用户名或密码错误被拒绝访问了
解决方案:
1、 停止服务:
停止MySQL服务;
2、 跳过验证:
修改MySQL安装目录下的my.ini配置文件,使登录时跳过权限检查;
3、 修改密码:
启动MySQL服务,登录MySQL,此时提示输入密码,输入任意密码回车即可进入MySQL。
然后通过SQL语句修改root用户的密码;
4、 重启服务:
将my.ini文件中加入的跳过权限语句删除或加#号注释。
重启服务,使用修改后的密码登录即可。
Windows系统具体操作:
1、 停止服务:
2、 跳过验证:
找到my.ini配置文件(些文件记录MySQL的常规参数,每次启动服务都会先加载此文件),在my.ini配置文件的最后一行加入skip_grant_tables,此语句可以忽略登录检查。
3、 修改密码:
启动MySQL服务,进入dos环境,输入mysql-uroot-p登录MySQL(如果安装时没有勾选添加环境变量,需要先使用cd命令进入MySQL安装目录),此时提示输入密码,输入任意密码回车即可进入MySQL,出现mysql>控制符,此时表示已经成功登录MySQL;
mysql> USEmysql (将数据库切换至mysql库中)
mysql> UPDATE user SET password=PASSWORD(‘newpswd’)WHERE user=’root’ ;
password函数为MySQL内部函数,其中newpswd为修改后的新密码。
4、 重启服务:
将my.ini文件中加入的跳过权限语句删除或加#号注释。
重启服务,使用修改后的密码登录即可。