【MySQL】ERROR 1045 (28000): Access denied for user的解決方法


  去官網下載壓縮版的MySQL Server,解壓配置path環境變量后。然后克隆my-default.ini創建my.ini文件,在文件中[mysqld]下面配置basedir和datadir

    basedir=%MySQL_HOME%

    datadir=%MySQL_HOME%/data

  注意:不要自己在mysql安裝目錄下面創建data文件夾

 

MySQL 5.7版本沒有my.ini文件,可以去C盤(Windows)隱藏目錄C\ProgramData\MySQL\MySQL Server 5.7,找到my.ini,然后copy到MySQL安裝目錄下。  

 

  配置好后,用管理員身份運行cmd,

  輸入cd %MySQL_HOME%/bin 轉到mysql 的bin目錄下,

  輸入mysqld -install ,會打印出[Service successfully installed],表示服務安裝成功。

  輸入net start mysql ,會打印出 [MySQL 服務正在啟動,MySQL 服務啟動失敗],

  輸入mysqld --console,然后沒有任何的log日志,這是因為mysql目錄下沒有data文件數據

  

  在cmd中

  輸入mysqld --initialize ,此時會生成data文件,初始化數據

  輸入net start mysql ,會打印出[MySQL 服務正在啟動,MySQL 服務已經啟動成功]

  輸入net stop mysql ,會打印出[MySQL 服務正在停止,MySQL 服務已經停止成功]

  此時服務已經能正常啟動和停止了。

  

  在cmd中

  輸入net start mysql ,啟動mysql服務,

  輸入mysql -u root -p ,會提示[ENTER PASSWORD:],直接回車,會提示ERROR 1045 (28000): Access denied for user

  這是因為初始化data的時候,隨機生成了密碼,此時需要修改密碼。

 

  在mysql的配置文件my.ini中,在[mysqld]下面添加 skip-grant-tables ,保存文件后,停止服務后重新啟動服務。

  輸入mysql -u root -p ,會提示[ENTER PASSWORD:],直接回車,會出現welcom to...一大片信息

  輸入use mysql; 會打印出[Database changed]

  如果是mysql 5.6以前的,輸入UPDATE mysql.user SET Password=PASSWORD('123456') WHERE User='root';

  如果是mysql 5.6以后的,輸入UPDATE mysql.user SET authentication_string=PASSWORD('root') WHERE USER='root';

  這是由於5.6以后user表中沒有password字段。

  輸入FLUSH PRIVILEGES; 刷新數據庫。

  輸入quit ,推出mysql。

 

  至此密碼修改完,已經可以正常登錄了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM