環境:Ubuntu 16.04 ; Mysql 5.7問題:mysql root登陸密碼 忘記了html
1.登陸MySQLmysql
$ mysql -u root -p
輸入密碼,若是登陸成功下面的就不用看了;若是提示出錯,則咱們嘗試啓用安全模式登入MySQL,這樣能夠繞過密碼登入,登入後再修改密碼。sql
2.安全模式登入MySQL數據庫
1 $ sudo /etc/init.d/mysql stop 2 3 [sudo] hee 的密碼: 4 [ ok ] Stopping mysql (via systemctl): mysql.service. 5 6 $ sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &
輸入第一行終止MySQL運行,成功,會提示下面兩行;ubuntu
輸入第四行,成功,沒有任何報錯則能夠另外打開一個終端窗口進行下一步操做;安全
可是通常會報錯,好比提示mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t existssocket
所以咱們嘗試輸入如下代碼ui
1 $ sudo mkdir -p /var/run/mysqld 2 3 $ sudo chown mysql:mysql /var/run/mysqld
最後再次輸入:spa
1 sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &
到了這裏不在提示錯誤,能夠打開另外一個終端端口了,嘗試無密碼登入MySQL。htm
1 mysql -u root
到這裏應該能夠進入MySQL了,繼續操做
1 > use mysql; 2 3 > update user set authentication_string=PASSWORD("這裏輸入你要改的密碼") where User='root'; #更改密碼 4 > update user set plugin="mysql_native_password"; #若是沒這一行可能也會報一個錯誤,所以須要運行這一行 5 6 > flush privileges; #更新全部操做權限 7 > quit;
三、使用修改的密碼登入MySQL
通過上面一系列的操做,應該能夠正常使用你更改的密碼登入了。
1 > sudo /etc/init.d/mysql stop 2 > sudo /etc/init.d/mysql start # reset mysql 3 4 > mysql -u root -p
第一行先終止數據庫運行,第二行重啓數據庫服務,第三行root用戶登入。
OK 修改爲功!