安裝完mysql數據庫後的優化(刪除多餘用戶和數據庫)

一、查看數據庫的版本信息:
mysql

MariaDB [(none)]> select version();
+----------------+
| version()      |
+----------------+
| 5.5.52-MariaDB |
+----------------+
1 row in set (0.18 sec)

二、刪除多餘的帳號(除root和localhost的)
sql

MariaDB [(none)]> use mysql
MariaDB [mysql]> select user,host from mysql.user;
+------+------------------------+
| user | host                   |
+------+------------------------+
| root | 127.0.0.1              |
| root | ::1                    |
|      | localhost              |
| root | localhost              |
|      | lvs-dr01.saltstack.com |
| root | lvs-dr01.saltstack.com |
+------+------------------------+
6 rows in set (0.03 sec)
MariaDB [mysql]> delete from mysql.user where (user,host) not in (select 'root','localhost');
Query OK, 5 rows affected (0.05 sec)
MariaDB [mysql]> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | localhost |
+------+-----------+
1 row in set (0.05 sec)

三、修改mysql默認的mysql管理帳號數據庫

修改默認的mysql管理帳號(root改成mysql,並設置新密碼爲redhat12345)
bash

MariaDB [mysql]> update user set user="admin" where user="root";
MariaDB [mysql]> update mysql.user set user='admin',password=password('redhat12345');
Query OK, 1 row affected (0.08 sec)
Rows matched: 1  Changed: 1  Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.03 sec)
[root@LVS-DR01 ~]# mysql -uadmin -p'redhat12345'
MariaDB [(none)]> user mysql;
MariaDB [mysql]> show tables;

繼續查詢:ide

MariaDB [mysql]> select user,host from mysql.user;
+-------+-----------+
| user  | host      |
+-------+-----------+
| admin | localhost |
+-------+-----------+
1 row in set (0.00 sec)

四、刪除test數據庫:
工具

MariaDB [mysql]> drop database test;
MariaDB [mysql]> flush privileges;
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.06 sec)

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

以下所示:新建MySQL數據庫後,默認建立的test數據庫權限比較怪異,全部可鏈接的用戶都可以擁有權限訪問該庫,並操做其中的對象,Host爲%,User爲空,說明了不受限制,全部能鏈接到MySQL的用戶,所有擁有test及test開頭的數據庫的幾乎全部權限。spa

MariaDB [mysql]> select * from mysql.db where db like 'test%' \G
*************************** 1. row ***************************
                 Host: %
                   Db: test
                 User: 
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: N
         Execute_priv: N
           Event_priv: Y
         Trigger_priv: Y
*************************** 2. row ***************************
                 Host: %
                   Db: test\_%
                 User: 
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: N
         Execute_priv: N
           Event_priv: Y
         Trigger_priv: Y
2 rows in set (0.31 sec)
優化的操做:
MariaDB [mysql]> truncate table mysql.db;
Query OK, 0 rows affected (0.01 sec)
MariaDB [mysql]> select * from mysql.db where db like 'test%' \G
Empty set (0.00 sec)

六、如何優化/root/.mysql_history文件命令行

[root@LVS-DR01 ~]# tail -20 ~/.mysql_history 
flush privileges;
select user,host from mysql.user;
delete from mysql.user where user="'molewan1'@'10.10.10.%'";
delete from mysql.db where user='molewan1'@'10.10.10.%';
select user,host from mysql.user;
delete from mysql.user where user=molewan1;
delete from mysql.user where user='molewan1@10.10.10.%';
flush privileges;
select user,host from mysql.user;
delete from mysql.user where user="molewan1" and host ="10.10.10.%";
flush privileges;
select user,host from mysql.user;
delete from mysql.user where user="molewan" and host="10.10.10.%";
flush privileges;
create user molewan@'10.10.10.%' identified by 'molewan';
select user,host from mysql.user;
desc mysql.user;
update mysql.user set password=password('admin') where user='admin' and host='localhost';
flush privileges;
\q

說明:在Linux/Unix系統下,使用mysql命令行工具執行的全部操做,都會被記錄到一個名爲.mysql_history的文件中,該文件默認保存在當前用戶的根目錄下
orm

這個設定本來是爲了提高mysql命令行操做體驗,在mysql中操做命令就能夠上下翻動了,但某些狀況下缺會形成隱患。

如何消除隱患:

方法1:基於DB層的操做
修改MYSQL_HISTFILE環境變量,將其值改成/dev/null,這樣全部的操做都會被輸出到空,操做的歷史
天然不會被保留。
方法2:基於系統層操做
仍舊保留這個文件,可是改文件實際上未/dev/null的軟連接,這樣全部的操做都會被輸出到空,操做的歷史天然不會被保留。
ln -f -s /dev/null ~/.mysql_history
[root@LVS-DR01 ~]# tail -20 ~/.mysql_history 
這時候就沒有輸出了

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

相關文章
相關標籤/搜索