mysqllinux設置密碼
linux系統重置mysql的root密碼本質上就是修改mysql的root密碼,要修改root密碼,要看具體的情況,用戶可以參考如下兩種情況 。
一、如果知道root密碼,只是更換mysql的root密碼,可以通過mysqladmin來進行修改。執行如下命令:
sudomysqladmin-uroot-ppassword"你要修改的密碼"
執行命令後,會提示用戶輸入mysql的root密碼,這時候輸入原來的mysql root密碼回車即可。
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 ]
3. linux怎麼修改mysql密碼
1. 首先用管理員許可權登陸Linux;
2. 輸入:vi /etc/my.cnf 回車。然後按「i」鍵盤,在這個文件中的最後一行輸入:skip-grant-tables
然後按 esc鍵,然後輸入「:wq」保存並退出;
3.重啟MySQL服務
輸入:service mysqld restart回車;
4.輸入 mysql -uroot -p;
然後提示你輸入密碼,直接回車就可以進入mysql資料庫了;
開始修改MySQL用戶密碼
① 輸入use mysql回車;
② 輸入update user set password = password(「147g58」)where user=』root』;
「147g58」為你自己設置的密碼;
顯示「Query OK」這就表明修改成功了,
5.最後一步,退出mysql,將一開始修改的/etc目錄下的my.cnf文件的最後一行去掉,重啟服務;
① 輸入 exit退出mysql
② 改my.cnf文件;刪掉最後一行;
然後按ESC鍵盤,再輸入」:wq」保存退出;
③重啟服務:
就可以用你修改的密碼登錄mysql資料庫了;
4. linux mysql怎麼修改root密碼
一、擁有原來的myql的root的密碼;
方法一:
在mysql系統外,使用mysqladmin
# mysqladmin -u root -p password "test123"
Enter password: 【輸入原來的密碼】
方法二:
通過登錄mysql系統,
# mysql -uroot -p
Enter password: 【輸入原來的密碼】
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> flush privileges;
mysql> exit;
二、忘記原來的myql的root的密碼;
首先,你必須要有操作系統的root許可權了。要是連系統的root許可權都沒有的話,先考慮root系統再走下面的步驟。
類似於安全模式登錄系統,有人建議說是pkill mysql,但是我不建議哈。因為當你執行了這個命令後,會導致這樣的狀況:
/etc/init.d/mysqld status
mysqld dead but subsys locked
這樣即使你是在安全模式下啟動mysql都未必會有用的,所以一般是這樣/etc/init.d/mysqld stop,如果你不幸先用了pkill,那麼就start一下再stop咯。
# mysqld_safe --skip-grant-tables &
&,表示在後台運行,不再後台運行的話,就再打開一個終端咯。
# mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("test123") WHERE user='root';
mysql> flush privileges;
mysql> exit;
##本來mysql是不分大小寫的,但是這個是修改的mysql中的mysql資料庫的具體的值,要注意到。