linux普通用戶修改root密碼:linux修改root密碼命令

停止資料庫

如果是apt-get或yum安裝的mysql執行:

systemctl stop mysqld

修改my.cnf

利用vim命令打開mysql配置文件my.cnf,在mysqld進程配置文件中添加skip-grant-tables,添加完成後,執行wd保存。

vi /etc/my.cnf
[mysqld]
skip-grant-tables

重啟資料庫

利用命令行工具重啟資料庫

systemctl start mysqld

修改root密碼

重啟資料庫後可以不用密碼直接回車登陸:

./mysql -p Enter password:

可以直接登陸進資料庫。

在mysql命令行下執行以下命令修改root密碼:

update mysql.user set password=password('newpassword') where user='root'

#將password()中的newpassword字元更改為你自己的密碼

mysql5.7及以上版本注意

當使用update user set passsword=password(“123456″) where user=”root”;修改root密碼時會提示如下錯誤:

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

這是因為在MySQL 5.7 password欄位已從mysql.user表中刪除,新的欄位名是「authenticalion_string」.

可使用use mysql; desc user;查看如下:

+------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Host | char(60) | NO | PRI | | | | User | char(32) | NO | PRI | | | | Select_priv | enum('N','Y') | NO | | N | | | Insert_priv | enum('N','Y') | NO | | N | | | Update_priv | enum('N','Y') | NO | | N | | | Delete_priv | enum('N','Y') | NO | | N | | | Create_priv | enum('N','Y') | NO | | N | | | Drop_priv | enum('N','Y') | NO | | N | | | Reload_priv | enum('N','Y') | NO | | N | | | Shutdown_priv | enum('N','Y') | NO | | N | | | Process_priv | enum('N','Y') | NO | | N | | | File_priv | enum('N','Y') | NO | | N | | | Grant_priv | enum('N','Y') | NO | | N | | | References_priv | enum('N','Y') | NO | | N | | | Index_priv | enum('N','Y') | NO | | N | | | Alter_priv | enum('N','Y') | NO | | N | | | Show_db_priv | enum('N','Y') | NO | | N | | | Super_priv | enum('N','Y') | NO | | N | | | Create_tmp_table_priv | enum('N','Y') | NO | | N | | | Lock_tables_priv | enum('N','Y') | NO | | N | | | Execute_priv | enum('N','Y') | NO | | N | | | Repl_slave_priv | enum('N','Y') | NO | | N | | | Repl_client_priv | enum('N','Y') | NO | | N | | | Create_view_priv | enum('N','Y') | NO | | N | | | Show_view_priv | enum('N','Y') | NO | | N | | | Create_routine_priv | enum('N','Y') | NO | | N | | | Alter_routine_priv | enum('N','Y') | NO | | N | | | Create_user_priv | enum('N','Y') | NO | | N | | | Event_priv | enum('N','Y') | NO | | N | | | Trigger_priv | enum('N','Y') | NO | | N | | | Create_tablespace_priv | enum('N','Y') | NO | | N | | | ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | | | ssl_cipher | blob | NO | | NULL | | | x509_issuer | blob | NO | | NULL | | | x509_subject | blob | NO | | NULL | | | max_questions | int(11) unsigned | NO | | 0 | | | max_updates | int(11) unsigned | NO | | 0 | | | max_connections | int(11) unsigned | NO | | 0 | | | max_user_connections | int(11) unsigned | NO | | 0 | | | plugin | char(64) | NO | | mysql_native_password | | | authentication_string | text | YES | | NULL | | | password_expired | enum('N','Y') | NO | | N | | | password_last_changed | timestamp | YES | | NULL | | | password_lifetime | smallint(5) unsigned | YES | | NULL | | | account_locked | enum('N','Y') | NO | | N | | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ 45 rows in set (0.00 sec)

上面表中authentication_string的就是新的密碼欄位。使用上面的欄位就可以重置密碼 :

mysql> update user set authentication_string=password('123456') where user="root"; 
Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1 
mysql> flush priviledges;

重啟資料庫

密碼修改完成後,將my.cnf文件中添加的skip-grant-tables語句注釋或刪除掉,然後重啟資料庫即可

登陸檢測

使用新密碼重新登陸測試

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/228001.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 21:26
下一篇 2024-12-09 21:26

相關推薦

發表回復

登錄後才能評論