CentOS-Mysql-Access denied for user root 更換root 密碼

  1. mysql Access denied for user \'root\'@\'localhost\'”解決辦法總結,下面我們對常見的出現的一些錯誤代碼進行分析並給出解決辦法,有需要的朋友可參考一下。

    錯誤代碼 1045

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

    解決辦法是重新設置root用戶密碼,在Windows平臺下操作步驟如下:
    1、以系統管理員身份登錄到系統;
    2、如果MySQL服務器正在運行,停止它。
      如果是作爲Windows服務運行的服務器,進入服務管理器:開始菜單->控制面板->管理工具->服務
      如果服務器不是作爲服務而運行的,可能需要使用任務管理器來強制停止它。
    3、創建1個文本文件,並將下述命令置於單一行中:
      SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
      用任意名稱保存該文件。在本例中,該文件爲C:mysql-init.txt。
    4、進入DOS命令提示:開始菜單->運行-> cmd
      假定你已將MySQL安裝到C:mysql。如果你將MySQL安裝到了另一位置,請對下述命令進行相應的調整。
      在DOS命令提示符下,執行命令:
      C:> C:mysqlbinmysqld-nt --init-file=C:mysql-init.txt
      在服務器啓動時,執行由“--init-file”選項(作用:在啓動時從指定的文件中讀取SQL命令)命名的文件的內容,更改根用戶密碼。當服務器成功啓動後,應刪除C:mysql-init.txt。
    5、停止MySQL服務器,然後在正常模式下重啓它。如果以服務方式運行服務器,應從Windows服務窗口啓動它。如果以手動方式啓動了服務器,能夠像正常情形下一樣使用命令。
    應能使用新密碼進行連接。


    我的系統是Ubuntu6.06,最近新裝好的mysql在進入mysql工具時,總是有錯誤提示:

    # mysql -uroot -p
    Enter password:
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    使用網上介紹的方法修改root用戶的密碼:

    # mysqladmin -uroot -p password 'newpassword'
    Enter password:
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'root'@'localhost' (using password: YES)'

    現在終於被我找到了解決方法,如下(請先測試方法一,謝謝!):

    方法一:

    ps  | grep mysql


    kill mysql進程號


    # /etc/init.d/mysql stop
    # mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
    # mysql -u root mysql
    mysql> UPDATE user SET Password=PASSWORD('123456') where USER='root';
    mysql> FLUSH PRIVILEGES;
    mysql> quit
    # /etc/init.d/mysql restart
    # mysql -uroot -p
    Enter password: <輸入新設的密碼newpassword>

    另一篇關於linux錯誤


    Red Hat Enterprise Linux 5服務器上mysql啓動報錯:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    原因1-啓動命令錯誤:
    我開始的時候直接輸入命令:mysql start 
    正確的啓動命令是: 
    /etc/rc.d/init.d/mysql start

    原因2-配置文件錯誤:
    檢查etc下面的my.cnf如下內容:

    [client]

    複製代碼
    #password   = your_password
    port     = 3306
    socket     = /usr/mysql-data/mysql.sock
    # Here follows entries for some specific programs
    # The MySQL server
    [mysqld]
    port     = 3306
    socket     = /usr/mysql-data/mysql.sock
    複製代碼

    原因3-啓動文件錯誤:
    需要修改MySQL啓動腳本/etc/rc.d/init.d/mysql,
    其中datadir=   ?     一行檢查下!

    原因4-前提是你在使用php連接時候報錯!
    在/etc/php.ini修改mysql.default_socket的值設置爲:
    mysql.default_socket=/var/lib/mysql/mysql.sock
    回到終點設置個連接:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
    (在/etc/php.ini中mysql.default_socket這個文件中,關於mysql.default_socket的值的說明是這樣的,
    ;Default socket name for local MySQL connects. If empty, uses the built-in MySQL defaults.
    這個值一開始是空的,也就是說,如果我們不主動去修改的話,php將會使用內建在mysql中的默認值)


    注意:另外還遇到需要service mysql star才能啓動service mysql stop才能停止。
    還有直接使用mysql不能找到命令,錯誤爲“bash: mysql: command not found”可以直接**mysql的安裝目錄中的bin文件夾跟絕對路徑運行命令,還有的需要加./mysql 才能執行。

    mysql修改密碼方法有幾種

    方法一   

    使用phpMyAdmin

      (圖形化管理MySql數據庫的工具),這是最簡單的,直接用SQL語句修改mysql數據庫庫的user表,不過別忘了使用PASSWORD函數,插入用戶用Insert命令,修改用戶用Update命令,刪除用Delete命令。在本節後面有數據表user字段的詳細介紹。   

    方法二   

      使用mysqladmin。輸入  

      mysqladmin -u root -p oldpassword newpasswd  

    執行這個命令後,需要輸入root的原密碼,這樣root的密碼將改爲newpasswd。同樣,把命令裏的root改爲你的用戶名,你就可以改你自己的密碼了。

      當然如果你的mysqladmin連接不上mysql

      server,或者你沒有辦法執行mysqladmin,那麼這種方法就是無效的,而且mysqladmin無法把密碼清空。   

      下面的方法都在mysql提示符下使用,且必須有mysql的root權限:   

    方法三   

      mysql> INSERT INTO mysql.user (Host,User,Password) VALUES('%','system', PASSWORD('manager'));

      mysql> FLUSH PRIVILEGES   

      確切地說這是在增加一個用戶,用戶名爲system,密碼爲manager。注意要使用PASSWORD函數,然後還要使用FLUSH

      PRIVILEGES來執行確認。  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章