2016-10-24 26 views
1

我目前無法以root用戶身份登錄到mysql,但我不確定發生了什麼。以下是發生了什麼:如何在運行mysql_secure_installation之後成功地用root登錄?

我按照建議運行mysql_secure_installation,以確保我的mysql安裝。後來,我輸入的是有人問默認root密碼,然後我進入:

  • 沒有爲根
  • 是設置密碼上刪除匿名用戶
  • 是關於禁止root遠程登錄
  • 是上重裝授權表

完成這個過程,餘噸後刪除test數據庫並獲得其

  • 是與mysql -u root -p裏德訪問mysql的(輸入默認密碼),並收到此消息:

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    你有什麼可能出了錯什麼想法?

    我也嘗試通過啓動mysql與--skip-grant-tables重置root密碼,但我仍然無法登錄。

    我使用Ubuntu 14.04mysql 14.14(LAMP堆棧)。

  • 回答

    1

    的CentOS /紅帽:

    從我的文檔閱讀,當您運行mysql_secure_installation,會生成一個臨時的root密碼和存儲在一些日誌文件。

    sudo grep 'temporary password' /var/log/mysqld.log 
    

    於Debian/Ubuntu:

    在包的安裝,你會得到一個提示,詢問根密碼。如果你沒有設置它,MySQL的root用戶就會被創建而沒有密碼。我們可以讀取軟件包安裝輸出以下行:

    殼牌

    2016-05-16T07:27:21.532619Z 1 [Warning] [email protected] is created with an empty password ! Please consider switching off the --initialize-insecure option.

    ,但它配置了auth_socket插件。您只能使用UNIX套接字進行連接,因此使用本地IP或網絡進行連接的任何嘗試都將失敗。稍後,您可以更改密碼以允許來自網絡的連接(如本博文所述)。

    Source

    所有我們現在能做的就是看root的密碼。讓我們改變根密碼,因爲你無法理解哈希密碼,即使我們可以看到:

    sudo service mysql stop 
    sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking 
    

    然後在一個新的終端

    mysql -u root 
    

    運行mysql和運行下面的查詢,更改密碼

    UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; 
    FLUSH PRIVILEGES; 
    

    退出MySQL的安全模式,並通過

    啓動mysql服務
    +1

    好吧,謝謝。我只是看着'/ var/log /'文件夾,有一個名爲'mysql.log'的日誌文件,但它是空的。 – Biskotaki

    +0

    嗨@Thanos我可以知道你的mysql版本嗎? – Jordon

    +0

    mysql Ver 14.14 Distrib 5.5.49,用於debian-linux-gnu(x86_64)使用readline 6.3 – Biskotaki

    0

    只是根運行此腳本,你需要custormize你的密碼

    mysqlpassword=password 
    /usr/bin/mysqladmin -u root password "$mysqlpassword" 
    #configure mysql login privileges 
    echo "grant all privileges on *.* to [email protected]\"localhost\" identified by \"$mysqlpassword\";show databases;" |mysql -u root -p$mysqlpassword