MySQL安裝後的初始優化

 

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

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

 

關於MySQL數據的安裝,能夠參考:MySQL安裝(Windows 7)sql

 

一、刪除test庫

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

 

二、刪除不使用的用戶

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

 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用戶刪除windows

 

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

 

而後,爲 root 用戶設置密碼安全

 

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

 

也能夠在命令行使用 mysqladmin 命令設置密碼:mysqladmin -u root password '123456'服務器


查看一下app

 

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)

 

最後,刷新一下權限dom

 

mysql> flush privileges;

 

 

三、添加局域網管理用戶

 

由於 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

 

能夠成功鏈接了

 

四、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=# 鏈接超時時長,單位爲秒

 

 

 

 

 

 

 

 

 

 

 

 

你好你好你好你好你好

你好你好你好

 

五、help命令

 

MySQL 的官方文檔很是全面,即便您沒有 MySQL 相關經驗,只要有必定的 SQL、DOS/Linux 命令行基礎,就能夠根據官方文檔學習 MySQL 的核心命令和 SQL 語法了。

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

相關文章
相關標籤/搜索