MySQL安裝后的初始優化


 

mysql數據庫在安裝之后,有一些內置的庫(test庫)、用戶(如root@localhost.localdomain)是不需要的,而且在Linux系統上,yum安裝的mysql是默認無root密碼的,這些都給數據庫服務器的安全帶來了隱患。
這篇文章就是介紹如何進行初始優化,把這些隱患消除掉,以及在root用戶被禁止遠程登陸的情況下創建普通用戶用於局域網管理。

我們的操作環境是64位windows 7系統上面安裝的mysql 5.5

 

關於MySQL數據的安裝,可以參考:MySQL安裝(Windows 7)

 

1、刪除test庫

1 C:\Users\Administrator>mysql -uroot -p123456
2 
3 
4 mysql> show databases;
5 
6 mysql> drop database test;

 

2、刪除不使用的用戶

在 Linux 系統上 yum 安裝 mysql 時,直接使用 mysql 命令即可連接到 mysql,這是因為 mysql 的內置用戶(用戶名為空而且也沒有密碼)導致的。甚至 root 用戶也沒有密碼,即使root用戶不能進行遠程連接,這也是不安全的。

 1 mysql> select user, host, password from mysql.user;
 2 +------+-----------------------+----------+
 3 | user | host                  | password |
 4 +------+-----------------------+----------+
 5 | root | localhost             |          |
 6 | root | localhost.localdomain |          |
 7 | root | 127.0.0.1             |          |
 8 |      | localhost             |          |
 9 |      | localhost.localdomain |          |
10 +------+-----------------------+----------+
11 5 rows in set (0.00 sec)

 

首先,把用戶名為空的用戶刪除

 

mysql> delete from mysql.user where user = '';

 

然后,把root@localhost.localdomain用戶刪除

 

mysql> delete from mysql.user where host = 'localhost.localdomain';

 

然后,為 root 用戶設置密碼

 

mysql> update mysql.user set password = password('123456');

 

也可以在命令行使用 mysqladmin 命令設置密碼:mysqladmin -u root password '123456'


查看一下

 

1 mysql> select user, host, password from mysql.user;
2 +------+-----------+-------------------------------------------+
3 | user | host      | password                                  |
4 +------+-----------+-------------------------------------------+
5 | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
6 | root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
7 +------+-----------+-------------------------------------------+
8 2 rows in set (0.00 sec)

 

最后,刷新一下權限

 

mysql> flush privileges;

 

 

3、添加局域網管理用戶

 

因為 root 已經被禁止了遠程連接,即使是局域網主機,也不能連接。但是我們有需要從遠程連接到mysql服務器進行管理。此時可以:

創建用戶,允許從局域網主機連接,可以授予所有庫、所有表的所有權限,也可以只授予某些庫、某些表的某些權限。

 

我們通常的解決方案是:一個擁有所有權限的管理員用戶(用戶名密碼只能幾個核心管理者擁有,甚至可以把host設置在很小的范圍內),管理不同庫的多個普通用戶(不同系統的管理者擁有,彼此盡量無交集)

下面我們看一下創建用戶的語法:創建system用戶,授予所有庫、所有表的所有權限,允許局域網192.168.0網段主機連接,密碼是123456

 

 1 mysql> GRANT ALL ON *.* TO 'system'@'192.168.0.%' IDENTIFIED BY '123456';
 2 mysql> GRANT ALL ON *.* TO 'system'@'localhost' IDENTIFIED BY '123456';
 3 mysql> GRANT ALL ON *.* TO 'system'@'127.0.0.1' IDENTIFIED BY '123456';
 4 
 5 mysql> select user, host, password from mysql.user;
 6 +--------+--------------+-------------------------------------------+
 7 | user   | host         | password                                  |
 8 +--------+--------------+-------------------------------------------+
 9 | root   | localhost    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
10 | root   | 127.0.0.1    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
11 | system | 192.168.0.%  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
12 | system | localhost    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
13 | system | 127.0.0.1    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
14 +--------+--------------+-------------------------------------------+
15 5 rows in set (0.00 sec)
16 
17 mysql> flush privileges;

 

從 192.168.0.10 主機進行遠程連接

 

C:\Users\Administrator>mysql -usystem -p123456 -h 192.168.0.105

 

可以成功連接了

 

4、mysql命令主要選項

 

-?, --help 顯示幫助
-D, --database=name 指定使用的數據庫
--default-character-set=name

設置客戶端連接編碼

mysql -uroot -p123456 --default-character-set=gbk

-e, --execute=name

執行語句后退出,這個選項在編寫shell腳本時很有用

mysql -uroot -p123456 --default-character-set=gbk -e "select * from test.t_user;"

-h, --host=name 連接主機名。默認loadlhost。在連接遠程數據庫時使用
-p, --password[=name] 密碼,如果未指定這個選項,會在mysql命令行提示輸入
-P, --port=# 服務端口,默認3306
-S, --socket=name 連接使用的socket文件
-u, --user=name 連接使用的用戶
-V, --version 輸出版本信息
--connect-timeout=# 連接超時時長,單位為秒

 

 

 

 

 

 

 

 

 

 

 

 

你好你好你好你好你好

你好你好你好

 

5、help命令

 

MySQL 的官方文檔非常全面,即使您沒有 MySQL 相關經驗,只要有一定的 SQL、DOS/Linux 命令行基礎,就可以根據官方文檔學習 MySQL 的核心命令和 SQL 語法了。

在 mysql 控制台里面,可以使用 help 來查看幫助,如:查看 create 的幫助可以使用 help create 語句、查看刪除表的幫助可以使用 help drop table 語句......

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM