mysqld --initialize 命令創建了date文件之後還是不能啓動mysql的解決辦法(win10,mysql5.7)
今天因爲測試的原因,關掉了本機的mysql數據庫服務?然後啓動報錯
然後就開始了爲期兩小時的尋找之路
第一種方法:重裝mysql簡單粗暴,下面的各位看官可以不用看了~~~~~
~~~~~~~~~~~~~~~~~<分隔符~~~~~~~~~~~~~~~~~~~~~
第二種方法刪除data文件,然後初始化數據庫信息,重新啓動就可以了
簡單來說: mysqld remove
mysqld --initialize (執行中會卡一下,然後data文件夾中會生成文件)
mysqld install
net start mysql
網上的方法一般到這裏就可以解決了.
遇到mysql -u root -p直接回車登陸不上的情況,原因在於5.7版本在安裝時自動給了一個隨機密碼,坑爹的是在init步驟的時候不像linux系統會給出命令行提示,需要手動在mysql目錄下搜索*.err,以文本形式打開才能看到如下內容(紅色爲密碼):
016-02-25T15:09:43.033062Z 1 [Note] A temporary password is generated for root@localhost: >mso<k70mrWe
第二種方法中的mysqld --initialize命令稍微再詳細一點,各位湊合着理解吧
之前修改mysql安裝文件夾下面的my.ini文件爲
其中basedir爲安裝目錄,datadir是安裝目錄下的data文件,這個文件夾其實可以不用我們手動去創建
在e:/mysql安裝目錄/bin下面以管理員的方式啓動cmd命令符執行mysqld --initialize方法
mysql會自動去讀取安裝目錄下的my.ini文件,然後找到datadir,幫我們創建這個data文件夾,並生成如下文件
~~~~~~~~~~~~~~~~~/分隔符>~~~~~~~~~~~~~~~~~~~~~
出現下圖的請繼續往下看
~~~~~~~~~~~~~~~~~終極分隔符~~~~~~~~~~~~~~~~~~~~~
終極方法:(可以使用腳本來修復)但是我們不用~就是這麼皮,因爲不會
我遇到的情況就是上面無法啓動的狀況,更有時候執行mysqld --initialize 命令
會報錯.解決辦法就是清空data文件,但我清空了,執行mysqld --initialize 命令也不報錯了
data下面的文件也生成了,net start mysql 的時候還是無法啓動,有木有很崩潰???????
解決辦法:
cd 到D:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld -nt --skip-grant-tables 以管理員身份運行這段命令,相當於在my.ini中[mysqld]下加入skip-grant-tables,就可以跳過登錄校驗,此時命令窗口不會動啦,
重開一個窗口 ,直接接登錄
mysql (前提:mysql加入環境變量)
mysql> use mysql
下面是5.7以後更新賬戶密碼的新語句,
update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
5.7以後password字段不在存在,變成了authentication_string,否則
會報如下錯誤:ERROR 1054 (42S22): Unknown column 'password' in 'field list'
ok,愉快的登陸吧!
商業轉載請聯繫作者獲得授權,非商業轉載請註明出處