1. 程式人生 > >【Linux】修改mysql的root密碼

【Linux】修改mysql的root密碼

背景

服務部署在mysql上應該有好幾個月了,因為現在的工作基本都在終端,因此很少登陸,今天要修改個東西,忽然發現我竟然已經徹底忘記了mysql的密碼,去程式碼裡面爬終於找到了業務資料庫的密碼,但是root密碼還是沒有找到,許可權沒法改呀,於是開始爬坑之旅,估計以後還會遇到,就整理記錄一下。

系統引數

  • 伺服器

    $ cat /proc/version
        Linux version 4.8.3-x86_64-linode76 ([email protected]) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Thu Oct 20 19:05:39 EDT 2016
        $ lsb_release -a
        No LSB modules are available.
        Distributor ID:	Ubuntu
        Description:	Ubuntu 16.04.1 LTS
        Release:	16.04
        Codename:	xenial
  • mysql

    mysql> show variables like "%version%";
      +-------------------------+-------------------------+
      | Variable_name           | Value                   |
      +-------------------------+-------------------------+
      | innodb_version          | 5.7.16                  |
      | protocol_version        | 10                      |
      | slave_type_conversions  |                         |
      | tls_version             | TLSv1,TLSv1.1           |
      | version                 | 5.7.16-0ubuntu0.16.04.1 |
      | version_comment         | (Ubuntu)                |
      | version_compile_machine | x86_64                  |
      | version_compile_os      | Linux                   |
      +-------------------------+-------------------------+

解決方案

以安全模式啟動mysql,可以直接以root身份登入,然後重設密碼。下面是具體步驟

  • 停掉在執行的MySQL服務:

    sudo service mysql stop
  • 以安全模式啟動mysql:

    sudo mysqld_safe --skip-grant-tables --skip-networking &
  • 直接用root登入,無需密碼:

    mysql -u root
  • 重設密碼:

    mysql> use mysql;
    mysql> update user set authentication_string=password('password') where user='root';
    mysql> flush privileges;
  • 退出mysql

    mysql > quit
  • 重啟mysql

    sudo service mysql restart
  • 密碼登入:

    mysql -u root -p

異常處理

修改密碼報錯,提示ERROR 1054 (42S22)

在修改密碼的時候,網上比較多的文件都是提示輸入一下命令修改:

mysql> update user set password=PASSWORD("password") where User='root';

結果使用這個命令的時候報錯:

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

原因是從mysql 5.7開始,password欄位被替換為了 authentication_string ,可以使用下面的命令來修改

update user set authentication_string=password('password') where user='root';

修改密碼後登入mysql失敗,提示ERROR 2002 (HY000)

在修改密碼並重啟以後,登入mysql的時候竟然登入不了,提示

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

搜尋以後反饋是因為我安裝了多個版本的mysql,順序執行下面的命令即可解決。

  • 檢視執行的mysql

    ps -A|grep mysql
  • kill執行的mysql

    sudo pkill mysql
  • 檢視執行的mysqld

    ps -A|grep mysqld
  • kill執行的mysqld

    sudo pkill mysqld

  • 重啟mysql

    service mysql restart
  • 登入mysql

    mysql -u root -p

相關推薦

Linux修改mysql的root密碼

背景 服務部署在mysql上應該有好幾個月了,因為現在的工作基本都在終端,因此很少登陸,今天要修改個東西,忽然發現我竟然已經徹底忘記了mysql的密碼,去程式碼裡面爬終於找到了業務資料庫的密碼,但是root密碼還是沒有找到,許可權沒法改呀,於是開始爬坑之旅,估計以後還會

linux修改檔案所屬使用者和組

使用chown命令可以修改檔案或目錄所屬的使用者:        命令:chown 使用者 目錄或檔名        例如:chown qq /home/qq  (把home目錄下的qq目錄的擁有者改為qq使用者)  使用chgrp命令可以修改檔案或目錄所屬的組:        命令:chgrp 組

Linux如何修改使用者的密碼

你是普通使用者的話 你是普通使用者的話,修改自己的密碼,用:passwd,就可以了,會讓你先輸入自己的舊密碼,再輸入兩遍新密碼。

Linux目錄文件權限的查看和修改

文件和目錄 得到 區域 紅色 執行命令 img 同時 修改權限 似的 轉載自:http://zhaoyuqiang.blog.51cto.com/6328846/1214718 ----------------------------------------------

Linux使用xshell登陸時密碼框為灰色,無法輸入密碼

inline round spl log 退出 灰色 ref linu .cn 使用xshell登陸時,出現以上情況,那麽這到底值咋回事呢?經過查詢以後發現是服務器端設置問題,解決辦法如下:vi /etc/ssh/sshd_config接著保存退出,然後重啟sshd服務se

LinuxVim修改tab為4個空格

class 文件 pan bash ash 空白 ESS pri ber 修改配置 如果要修改全局Vim的配置 vim /etc/vim/vimrc 1 但是不建議這麽做,可以只修改當前用戶的Vim配置 vim ~/.vimrc 1 在配置文件中添加以下參數

LinuxSSH證書免密碼遠端登陸Linux(Putty)

1、前言   新購置一臺便宜伺服器做資料庫伺服器,減輕Web伺服器的壓力。   為了安全性,root密碼設定的非常複雜(隨機生成),厭倦了拷貝密碼登陸的歷史。   Putty基本用法都不會的請先花10分鐘自行學習。 2、開始   1、用PuTTY SSH 金鑰生成工具puttygen.exe生成金鑰

LinuxLinux作業系統——配置ssh免密碼登入遠端伺服器

ssh免密碼登入遠端伺服器 最簡單的操作 ssh免密碼登入的原理是把本地電腦的公鑰放在宿主機,然後使用本地電腦的私鑰去認證。 在本地電腦執行 /usr/bin/ssh-keygen -t rsa,安裝提示一直回車即可,最後會看到~/.ssh目錄下多了幾個檔案id_rsa (

Linux為什麼root無法對檔案進行修改

檔案許可權為:-rw-rw-r--,無法用root許可權修改。嘗試方法: 1. chomd 666 檔名,失敗。 2. chattr –i 檔名,失敗。提示lsattr: Inappropriate

Linux關於mpiexec中的config檔案可以在提交程式後修改

演算法評測需要跑很多次取均值,因此離不開linux叢集。 叢集上並行執行多次的命令是mpiexec,執行10次的命令是:mpiexec -n 10 -f config nohup python hel

linux對檔案的使用者許可權的修改

使用root許可權可以將檔案或者資料夾的許可權更改為其他許可權; 1,更改使用者許可權: 使用'll' 或'ls -l' 可以檢視檔案的使用者許可權: 第三列是檔案擁有者,第四列是所屬的使用者組。 使用"chown  賬號名稱 檔案或目錄" ,

mysqlmysql 忘記密碼後如何修改和檢視

一、window 環境下 輸入 cmd 終端 1)、先修改訪問許可權: 1.在命令列執行:taskkill /f /im mysqld-nt.exe 2.繼續在命令列執行:mysqld-nt --skip-grant-tables 3.新開一個命令列執行:mysql -u root&

linux如何檢視檔案的建立、修改時間

本篇博文旨在介紹Linux下檢視檔案時間的方法;並介紹如何使用touch指令來進行檔案時間的建立以及修改 如何檢視檔案的時間資訊 利用stat指令檢視檔案資訊 三種時間的介紹 ATime ——檔案

LinuxMac修改終端提示文字和主機名的方法

1. 修改終端提示文字PS1 RedHat下: vim ~/.bashrc export PS1="[\[email protected]\h \W]\$ " Ubuntu下: vim ~

Linux解決SSH服務拒絕密碼

xShell連線Linux伺服器提示密碼錯誤。 1、檢查虛擬機器SSH服務是否開啟: service sshd status,如果沒有開啟,請執行service sshd start

Linux目錄檔案許可權的檢視和修改

在Linux系統中檔案的許可權可以在檔案上單擊右鍵—>屬性來檢視。   但是我們這次用的是全命令來檢視和修改檔案的許可權   為了舉一個例項,我們在mnt資料夾中建立一個fileA檔案,然後在fileA資料夾中建立一個zhaoyuqiang.html網頁。

Linux創建不可修改文件

ted 修改 inux -i uri test perm mit rm -rf 有時候,我們害怕別人修改我們創建的文件,或者是誤刪我們創建的文件,那麽我們可以使用下面的方法進行控制即可1.創建不可刪除文件Linux:/qinys/oliver # touch test.sh

LinuxCentos 7重置密碼

前言: 很早之前自己虛擬機器的密碼就忘記了,自己也嘗試了去解決,可是並沒有解決掉,因為自己的Xshell當時是記住密碼連線的,所以把這事放一邊了,直到有一天突然發現Xshell也無法連線自己的虛擬機器了,奔潰,只能解決了唄,常在河邊站哪有不溼鞋,想偷懶是不行的

Linuxroot密碼忘記終極解決方法

1、重啟Ubuntu,在最開始按ESC 2、進入Advanced options for Ubuntu,recovery mode,回車 3、選 root Drop to root shell prompt,回車 4、輸入如下命令 chmod 666 /dev/null 

Linuxubuntu首次給root使用者設定密碼

用過ubuntu的人都知道,剛安裝好root使用者是沒有密碼的,沒有密碼我們就沒法用root使用者登入 給root使用者設定密碼輸入命令sudo passwd,然後系統會讓你輸入密碼,這時輸入的密碼