導航:首頁 > 編程大全 > linuxmysql更新用戶密碼

linuxmysql更新用戶密碼

發布時間:2023-10-14 03:48:30

linux mysql 忘記密碼 怎麼修改密碼

1.例如你的 root用戶現在沒有密碼,你希望的密碼修改為123456,那麼命令是:
mysqladmin -u root password 123456

2.如果你的root現在有密碼了(123456),那麼修改密碼為abcdef的命令是:
mysqladmin -u root -p password abcdef
注意,命令回車後會問你舊密碼,輸入舊密碼123456之後命令完成,密碼修改成功。

3.如果你的root現在有密碼了(123456),那麼修改密碼為abcdef的命令是:
mysqladmin -u root -p123456 password abcdef (注意-p 不要和後面的密碼分
開寫,要寫在一起,不然會出錯,錯誤如下所示)

4.使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,
不過別忘了使用PASSWORD函數。

忘記密碼:
下面我們提供了6種不同的修改mysql root用戶的密碼,與增加mysql用戶的方法。
方法一:
使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,
不過別忘了使用PASSWORD函數。

方法二:
使用mysqladmin,這是前面聲明的一個特例。
mysqladmin -u root -p password mypasswd
輸入這個命令後,需要輸入root的原密碼,然後root的密碼將改為mypasswd。
把命令里的root改為你的用戶名,你就可以改你自己的密碼了。
當然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執行mysqladmin,
那麼這種方法就是無效的。
而且mysqladmin無法把密碼清空。
下面的方法都在mysql提示符下使用,且必須有mysql的root許可權:

方法三:
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
確切地說這是在增加一個用戶,用戶名為jeffrey,密碼為biscuit。
在《mysql中文參考手冊》里有這個例子,所以我也就寫出來了。
注意要使用PASSWORD函數,然後還要使用FLUSH PRIVILEGES。

方法四 :
和方法三一樣,只是使用了REPLACE語句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES

方法五:
使用SET PASSWORD語句,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
擬也必須使用PASSWORD()函數,
但是不需要使用FLUSH PRIVILEGES。

方法六:
使用GRANT ... IDENTIFIED BY語句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';
這里PASSWORD()函數是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同樣方法施行口令加密。
MySQL 忘記口令的解決辦法
如果 MySQL 正在運行,首先殺之: killall -TERM mysqld。
啟動 MySQL :bin/safe_mysqld --skip-grant-tables &
就可以不需要密碼就進入 MySQL 了。
然後就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新殺 MySQL ,用正常方法啟動 MySQL 。

其它辦法:

辦法一: 在linux下忘記mysql的密碼,咋整?有一種方法可以很快的重設密碼。
首先,關閉mysql.
這個時候你用Mysqladmin shutdown來關閉mysql基本是不可能的,為啥,因為你不知到密碼了么,用其它用戶去連接mysql庫,會提示你沒有許可權。
其次,直接用kill命令也是不行的。mysqld_safe啟動以後,如果mysqld被kill掉,這個進程會自動重啟,真是坑爹啊!
那麼,只能使出絕招了
killall -TERM mysqld
第二步,到root用戶下(或者是mysql服務的安裝用戶下)繞開安全許可權啟動mysqld
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
第三步,修改Mysql庫中的user表,重新賦予新的許可權
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
注意,這步會把所有user=root的賬戶密碼都設為這個,可以在where里加入針對性的限定條件
第四步,重新kill掉mysqld,然後重啟,一切ok

辦法二:
1.首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連接MySQL資料庫
因為在重新設置MySQL的root密碼的期間,MySQL資料庫完全出於沒有密碼保護的 狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息。可以採用將MySQL對外的埠封閉,並且停止Apache以及所有的用戶進程的方法實現伺服器的准安全狀態。最安全的狀態是到伺服器的Console上面操作,並且拔掉網線。

2.修改MySQL的登錄設置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存並且退出vi。

3.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]

4.登錄並修改MySQL的root密碼
# /usr/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> USE mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye

5.將MySQL的登錄設置修改回來
# vi /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除
保存並且退出vi。

6.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]

閱讀全文

與linuxmysql更新用戶密碼相關的資料

熱點內容
api源碼分享網站 瀏覽:511
小米復制文件找不到 瀏覽:959
什麼是網路層 瀏覽:73
如何利用編程做多文件數據合並 瀏覽:666
java如何用tcp發送16進制協議 瀏覽:975
js獲取當天 瀏覽:637
在什麼網站看戰狼2 瀏覽:881
win7桌面工具欄不見了 瀏覽:346
qq群幾個管理員 瀏覽:598
錄光碟怎麼找不到文件 瀏覽:885
flip5怎麼連app 瀏覽:273
五個g的文件怎麼傳到u盤 瀏覽:316
如何用編程編譯運行出心形圖案 瀏覽:486
linuxcentos64vpn 瀏覽:328
桔城pdf轉換成word轉換器 瀏覽:754
java數組排重 瀏覽:846
1703版win10 瀏覽:357
windows文件上傳 瀏覽:111
精通jsp編程技術 瀏覽:139
電腦軟體刪不了提示找不到文件 瀏覽:223

友情鏈接