問題描述:
從網上下了5.7 的MySQL,在bin目錄下執行 start mysqld ,彈出個cmd窗口一閃就沒了,也看不清是什麼報錯。mysqld --install安裝了服務,也啟動不了。
處理步驟:
1、打開事件查看器檢查報錯信息
2、網上查了,都說如果是 linux 需要執行 mysql_install_db;如果是Windows需要拷貝 user.frm user.MYD和user.MYI
3、不過,http://serverfault.com/questions/291126/mysql-fatal-error-cant-open-and-lock-privilege-tables-table-mysql-host-doe
這裡面有人建議使用 mysqld --initialize
執行了下,報錯:
C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld --initialize
2016-12-20T04:33:22.298853Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is
deprecated. Please use --explicit_defaults_for_timestamp server option (see doc
umentation for more details).
2016-12-20T04:33:22.298853Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'E
RROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will
be merged with strict mode in a future release.
2016-12-20T04:33:22.298853Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not s
et.
2016-12-20T04:33:22.303853Z 0 [ERROR] --initialize specified but the data direct
ory has files in it. Aborting.
2016-12-20T04:33:22.304853Z 0 [ERROR] Aborting
4、因為都是測試數據,我就直接把 datadir (我的是D:\MysqlData) 文件夾給刪了。再次執行mysqld --initialize
C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld --initialize
5、啟動服務(如果沒有安裝服務的話需要先 執行 mysqld --install)
C:\Program Files\MySQL\MySQL Server 5.7\bin>net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。
這種方法比起拷貝 user. 文件的要簡單,不過需要清除所有數據,適合在自己的測試環境上使用。