昨天,闲着没事看着mysq本地链接里有很多数据库,还有一个mysql,感觉不顺眼,就删了它,然后今天我再启动mysql就出现了这个问题:
我在 datadir的路径下找到.err文件,查看错误原因:
121022 15:21:06 [Note] Plugin 'FEDERATED' is disabled.
D:\software_builder\mysql\bin\mysqld: Table 'mysql.plugin' doesn't exist
121022 15:21:06 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
121022 15:21:06 InnoDB: The InnoDB memory heap is disabled
121022 15:21:06 InnoDB: Mutexes and rw_locks use Windows interlocked functions
121022 15:21:06 InnoDB: Compressed tables use zlib 1.2.3
121022 15:21:06 InnoDB: Initializing buffer pool, size = 500.0M
121022 15:21:06 InnoDB: Completed initialization of buffer pool
121022 15:21:06 InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 100 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100
121022 15:21:07 InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 100 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100
121022 15:21:10 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
121022 15:21:10 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
121022 15:21:10 InnoDB: Waiting for the background threads to start
121022 15:21:11 InnoDB: 1.1.8 started; log sequence number 3700748
121022 15:21:11 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
解决办法
第一步:在mysql的安装目录下 basedir="D:/software_builder/mysql/的data文件夹里“D:\software_builder\mysql\data”" 下面还有一个mysql的文件夹(如图),
把“mysql文件夹”拷贝到数据库的数据存放位置的data文件夹下(我的是:C:\ProgramData\MySQL\MySQL Server 5.5\data)
然后重启mysql服务,这时候连接本地数据库,如果正常,则结束,如果报错:
提示:1045 access denied for user 'root'@'localhost' using password yes
进入命令行,来到mysql的安装目录.假设安装目录为 d:\mysql\ , CMD进入命令行
运行 d:\mysql\bin\mysqladmin -u root flush-privileges password "newpassword" 重设root密码
重新启动mysql服务
这时候就正常了