在Ubuntu/Linux環境下使用MySQL:開放/修改3306端口、開放訪問權限


一、查看3306端口是否開放

 netstat -an|grep 3306

如果看到下圖這樣的,說明端口並未打開:



二、修改訪問權限

vim /etc/mysql/mysql.conf.d/mysqld.cnf

注意上圖中的第一行紅色的注釋:

“By default we only accept connections from localhost”,這幾句話的意思是說“在默認情況下我們只允許本地服務訪問MySQL”,

所以我們需要注釋掉下方那條配置,直接在它前面加上一個井號即可:

# bind-address = 127.0.0.1

如下圖所是,這條配置也變成了注釋:


拓展一下思路,如果我們出於安全考慮,希望限制只有某台應用服務器可以訪問MySQL的話,那么其實就需要調整這條配置項就可以了。

三、修改端口號

還是這個配置文件,看到這個配置文件的中間部分的配置項:

我們需要在其中增加一條端口配置:

port = 3306

加完以后整個配置文件看起來是這樣的:

修改完文件之后記得保存。

四、開放root賬戶的訪問權限

在第三步中,我們僅僅只是取消了本地訪問限制,但是我們還是沒有對賬戶權限進行設置。

重啟MySQL服務,並進入MySQL控制台:

service mysql stop
service mysql start

mysql -u root -p



切換到系統數據庫“mysql”中: 

use mysql;


查看一下該數據庫中的所有的表:

show tables;


我們要修改上圖中的最后一張表“user”,看一下這張表有哪些字段:

desc user;


字段非常多,就不一一羅列了。我們要用到的只是“Host”和“User”兩個字段而已:

select host,user from user;

在這張表里,我們看到root用戶僅僅只能在本地訪問MySQL服務,所以我們要把它修改為“%”,意思是無論在哪里root賬戶都能夠訪問數據庫服務:

update user set host='%' where user='root';
flush privileges;​


注意,在真實的生產環境中,並不建議這么修改,因為安全風險太大。我建議根據實際情況將root用戶的host項修改為某個指定的ip地址,或仍然保持localhost

一般情況下 最后一項可以不設置,不看。 

最后一項設置,開放root賬戶所有權限:

grant all privileges on *.* to 'root'@'%' identified by '你的root賬戶密碼';

使各種權限設置立即生效:

flush privileges;​

五、再次確認3306端口狀態

netstat -an|grep 3306

如果看到下圖這樣,就可以了:


免責聲明!

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



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