天天看點

mysql修改使用者密碼

1)指令行的模式

<code># mysqladmin -u root -p'redhat12345' password 'zabbix12345'-S /data/3306/mysql.sock</code>

<code>将密碼redhat12345修改為zabbix12345</code>

2)SQL語句修改法

<code>mysql&gt; update mysql.user </code><code>set</code> <code>password=</code><code>'12345'</code> <code>where user=</code><code>'root'</code> <code>and  host=</code><code>'localhost'</code><code>;</code>

<code>Query OK, 1 row affected (0.00 sec)</code>

<code>Rows matched: 1  Changed: 1  Warnings: 0</code>

<code>mysql&gt; flush privileges;</code>

<code>Query OK, 0 rows affected (0.00 sec)</code>

<code>mysql&gt; </code><code>select</code> <code>user,host,password from mysql.user;</code>

<code>+------+------------+-------------------------------------------+</code>

<code>| user | host       | password                                  |</code>

<code>| root | localhost  | 12345                                     |</code>

<code>| root | C67-X64-A8 |                                           |</code>

<code>| root | 127.0.0.1  |                                           |</code>

<code>| root | ::1        |                                           |</code>

<code>|      | localhost  |                                           |</code>

<code>|      | C67-X64-A8 |                                           |</code>

<code>| wan  | %          | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |</code>

<code>| wan  | 10.10.10.% | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |</code>

<code>| rep  | 10.10.10.% | *2698A63E7F5138951B60F853417ADB4CE2A02D87 |</code>

<code>9 rows </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>

<code>說明:我們發現上面顯示的結果中,password居然是明文顯示,很明顯,不可能登陸到資料庫</code>

<code>正确的做法:</code>

<code>結合password()函數:</code>

<code>mysql&gt; update mysql.user </code><code>set</code> <code>password=password(redhat12345) where user=</code><code>'root'</code> <code>and  host=</code><code>'localhost'</code><code>;</code>

<code>ERROR 1054 (42S22): Unknown column </code><code>'redhat12345'</code> <code>in</code> <code>'field list'</code>

<code>錯誤原因,字元串應該用引号引起來(可以用單引号或者雙引号)</code>

<code>mysql&gt; update mysql.user </code><code>set</code> <code>password=password(</code><code>'redhat12345'</code><code>) where user=</code><code>'root'</code> <code>and  host=</code><code>'localhost'</code><code>;</code>

<code>登陸進行測試:</code>

<code>[root@mysql-master mysqlback]</code><code># mysql -uroot -predhat12345 -S /data/3306/mysql.sock</code>

<code>Welcome to the MySQL monitor.  Commands end with ; or \g.</code>

<code>Your MySQL connection </code><code>id</code> <code>is 27</code>

<code>Server version: 5.5.32-log Source distribution</code>

<code>Copyright (c) 2000, 2013, Oracle and</code><code>/or</code> <code>its affiliates. All rights reserved.</code>

<code>Oracle is a registered trademark of Oracle Corporation and</code><code>/or</code> <code>its</code>

<code>affiliates. Other names may be trademarks of their respective</code>

<code>owners.</code>

<code>Type </code><code>'help;'</code> <code>or </code><code>'\h'</code> <code>for</code> <code>help. Type </code><code>'\c'</code> <code>to </code><code>clear</code> <code>the current input statement.</code>

<code>mysql&gt;</code>

3)利用set指令來解決(不适合--skip-grant-tables方式修改密碼)

<code>mysql&gt; </code><code>set</code> <code>password=password(</code><code>"redhat12345"</code><code>);</code>

<code>Query OK, 0 rows affected (0.01 sec)</code>

注意:

a) 修改密碼的時候,必須指定where條件

b) 使用password()函數來加密更改密碼

本文轉自 冰凍vs西瓜 51CTO部落格,原文連結:http://blog.51cto.com/molewan/1861052,如需轉載請自行聯系原作者

繼續閱讀