天天看點

安裝完mysql資料庫後的優化(删除多餘使用者和資料庫)

1、檢視資料庫的版本資訊:

<code>MariaDB [(none)]&gt; </code><code>select</code> <code>version();</code>

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

<code>| version()      |</code>

<code>| 5.5.52-MariaDB |</code>

<code>1 row </code><code>in</code> <code>set</code> <code>(0.18 sec)</code>

2、删除多餘的賬号(除root和localhost的)

<code>MariaDB [(none)]&gt; use mysql</code>

<code>MariaDB [mysql]&gt; </code><code>select</code> <code>user,host from mysql.user;</code>

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

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

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

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

<code>|      | localhost              |</code>

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

<code>|      | lvs-dr01.saltstack.com |</code>

<code>| root | lvs-dr01.saltstack.com |</code>

<code>6 rows </code><code>in</code> <code>set</code> <code>(0.03 sec)</code>

<code>MariaDB [mysql]&gt; delete from mysql.user where (user,host) not </code><code>in</code> <code>(</code><code>select</code> <code>'root'</code><code>,</code><code>'localhost'</code><code>);</code>

<code>Query OK, 5 rows affected (0.05 sec)</code>

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

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

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

<code>1 row </code><code>in</code> <code>set</code> <code>(0.05 sec)</code>

3、修改mysql預設的mysql管理賬号

修改預設的mysql管理賬号(root改為mysql,并設定新密碼為redhat12345)

<code>MariaDB [mysql]&gt; update user </code><code>set</code> <code>user=</code><code>"admin"</code> <code>where user=</code><code>"root"</code><code>;</code>

<code>MariaDB [mysql]&gt; update mysql.user </code><code>set</code> <code>user=</code><code>'admin'</code><code>,password=password(</code><code>'redhat12345'</code><code>);</code>

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

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

<code>MariaDB [mysql]&gt; flush privileges;</code>

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

<code>[root@LVS-DR01 ~]</code><code># mysql -uadmin -p'redhat12345'</code>

<code>MariaDB [(none)]&gt; user mysql;</code>

<code>MariaDB [mysql]&gt; show tables;</code>

繼續查詢:

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

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

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

<code>1 row </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>

4、删除test資料庫:

<code>MariaDB [mysql]&gt; drop database </code><code>test</code><code>;</code>

<code>MariaDB [(none)]&gt; show databases;</code>

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

<code>| Database           |</code>

<code>| information_schema |</code>

<code>| mysql              |</code>

<code>| performance_schema |</code>

<code>3 rows </code><code>in</code> <code>set</code> <code>(0.06 sec)</code>

5、優化權限字典表mysql.db

如下所示:建立MySQL資料庫後,預設建立的test資料庫權限比較怪異,所有可連接配接的使用者都能夠擁有權限通路該庫,并操作其中的對象,Host為%,User為空,說明了不受限制,所有能連接配接到MySQL的使用者,全部擁有test及test開頭的資料庫的幾乎所有權限。

<code>MariaDB [mysql]&gt; </code><code>select</code> <code>* from mysql.db where db like </code><code>'test%'</code> <code>\G</code>

<code>*************************** 1. row ***************************</code>

<code>                 </code><code>Host: %</code>

<code>                   </code><code>Db: </code><code>test</code>

<code>                 </code><code>User: </code>

<code>          </code><code>Select_priv: Y</code>

<code>          </code><code>Insert_priv: Y</code>

<code>          </code><code>Update_priv: Y</code>

<code>          </code><code>Delete_priv: Y</code>

<code>          </code><code>Create_priv: Y</code>

<code>            </code><code>Drop_priv: Y</code>

<code>           </code><code>Grant_priv: N</code>

<code>      </code><code>References_priv: Y</code>

<code>           </code><code>Index_priv: Y</code>

<code>           </code><code>Alter_priv: Y</code>

<code>Create_tmp_table_priv: Y</code>

<code>     </code><code>Lock_tables_priv: Y</code>

<code>     </code><code>Create_view_priv: Y</code>

<code>       </code><code>Show_view_priv: Y</code>

<code>  </code><code>Create_routine_priv: Y</code>

<code>   </code><code>Alter_routine_priv: N</code>

<code>         </code><code>Execute_priv: N</code>

<code>           </code><code>Event_priv: Y</code>

<code>         </code><code>Trigger_priv: Y</code>

<code>*************************** 2. row ***************************</code>

<code>                   </code><code>Db: </code><code>test</code><code>\_%</code>

<code>2 rows </code><code>in</code> <code>set</code> <code>(0.31 sec)</code>

<code>優化的操作:</code>

<code>MariaDB [mysql]&gt; truncate table mysql.db;</code>

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

<code>Empty </code><code>set</code> <code>(0.00 sec)</code>

6、如何優化/root/.mysql_history檔案

<code>[root@LVS-DR01 ~]</code><code># tail -20 ~/.mysql_history </code>

<code>flush privileges;</code>

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

<code>delete from mysql.user where user=</code><code>"'molewan1'@'10.10.10.%'"</code><code>;</code>

<code>delete from mysql.db where user=</code><code>'molewan1'</code><code>@</code><code>'10.10.10.%'</code><code>;</code>

<code>delete from mysql.user where user=molewan1;</code>

<code>delete from mysql.user where user=</code><code>'[email protected].%'</code><code>;</code>

<code>delete from mysql.user where user=</code><code>"molewan1"</code> <code>and host =</code><code>"10.10.10.%"</code><code>;</code>

<code>delete from mysql.user where user=</code><code>"molewan"</code> <code>and host=</code><code>"10.10.10.%"</code><code>;</code>

<code>create user molewan@</code><code>'10.10.10.%'</code> <code>identified by </code><code>'molewan'</code><code>;</code>

<code>desc mysql.user;</code>

<code>update mysql.user </code><code>set</code> <code>password=password(</code><code>'admin'</code><code>) where user=</code><code>'admin'</code> <code>and host=</code><code>'localhost'</code><code>;</code>

<code>\q</code>

說明:在Linux/Unix系統下,使用mysql指令行工具執行的所有操作,都會被記錄到一個名為.mysql_history的檔案中,該檔案預設儲存在目前使用者的根目錄下

這個設定原本是為了提升mysql指令行操作體驗,在mysql中操作指令就可以上下翻動了,但某些情況下缺會造成隐患。

如何消除隐患:

<code>方法1:基于DB層的操作</code>

<code>修改MYSQL_HISTFILE環境變量,将其值改為</code><code>/dev/null</code><code>,這樣所有的操作都會被輸出到空,操作的曆史</code>

<code>自然不會被保留。</code>

<code>方法2:基于系統層操作</code>

<code>仍舊保留這個檔案,但是改檔案實際上未</code><code>/dev/null</code><code>的軟連結,這樣所有的操作都會被輸出到空,操作的曆史自然不會被保留。</code>

<code>ln</code> <code>-f -s </code><code>/dev/null</code> <code>~/.mysql_history</code>

<code>這時候就沒有輸出了</code>

到此,安裝完成後的基本優化已經完成

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