很久前安装的mysql今天想要用却启动不了,运行进入到mysql安装目录下的bin目录,打开powerShell运行mysql
--console看到启动的错误信息:
2019-10-29T03:46:08.817662Z
0 [ERROR] Fatal error: Can't open and lock privilege tables: Table
'mysql.user' doesn't exist
2019-10-29T03:46:08.820443Z 0 [ERROR]
Fatal error: Failed to initialize ACL/grant/time zones structures
or failed to remove temporary table files.
2019-10-29T03:46:08.822251Z 0 [ERROR]
Aborting
可以看到“mysql.user”不存在。这个问题是因为data文件夹初始化错误。
解决办法:
1.找到mysql安装根目录下的my.ini文件,没有的话可以自己新建一个,内容如下:
[mysql]
default-character-set=utf8
[mysqld]
port = 3306
basedir=C:\Program
Files\MySQL\mysql-5.7.27-win32
datadir=D:\WorkSpace\MySQL\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
注意!basedir是自己的MySQL根目录,datadir也是自己定义的,不存在的话需要手动新建,保证存在。
2.在mysql根目录下的bin目录运行powershell(cmd也一样)输入命令:mysqld --initialize
--console
--initialize表示初始化data目录,并将为用户生成随机的初始化登录密码
--console将执行日志输出到窗口,以便可以看到随机生成的密码。
3.启动mysql:net start mysql
登录:mysql -u用户名 -p
输入console输出的的密码
修改密码:set password for root@localhost =
password('新密码')
结束