修改mysql用戶密碼的方法總結
1.修改root密碼
方法1:使用mysqladmin命令
--適用於記得root舊密碼,修改root密碼
語法:
mysqladmin -u用戶名 -p舊密碼 password 新密碼
例如:
# mysqladmin -u root -proot password mysql
--注意:如當舊密碼輸入錯誤時會報如下錯誤
# mysqladmin -u root -proot1 password mysql
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
方法2:直接更新user表password字段
--適用於忘記root密碼,而對root密碼進行重置
Step 1: 修改MySQL的登錄設置
# vi /etc/my.cnf
--windows系統是my.ini文件
--在[mysqld]的段中加上一句:skip-grant-tables,如沒有[mysqld]字段,可手動添加上
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
Step 2: 重新啟動mysql
[root@gc ~]# service mysql restart
Shutting down MySQL..[確定]
Starting MySQL...[確定]
Step 3: 登錄並修改MySQL的root密碼
--此時直接用mysql即可無需密碼即可進入數據庫了
[root@gc ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use mysql;
Database changed
mysql> update user set password=password('new_password') where user='root';
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5 Changed: 5 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
--注意:如果沒做step1,直接用mysql登錄時會報如下錯誤
[root@gc ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Step 4: 將MySQL的登錄設置修改回來
再刪除/etc/my.cnf文件中的skip-grant-tables
Step 5: 重新啟動mysql
[root@gc ~]# service mysql restart
Shutting down MySQL..[確定]
Starting MySQL...[確定]