linux下的mysql安裝遠程連接配置(基於centos7,mysql5.6.37)

最近突然想折騰下linux,由於有一段時間沒接觸了,有點生疏。基於現在很多人都是用centos代替redhat來作爲服務器,所以我們也用centos來折騰吧!本人用虛擬機,所以很簡單,直接去centos官網下載鏡像我是選擇最小安裝鏡像的,虛擬機安裝centos可參考這裏,特別要注意的是到了“安裝信息摘要”那裏,記得在“網絡和主機名”,那裏將網絡打開,不然會不安裝網卡,那到時就坑了 ,我安裝時沒截圖,下圖是網絡上找到。



接下來回到正傳了,首先因爲某某原因大家都知道了,所以還是先把改下yum的下載源改爲阿里yum源的吧!按照他的幫助在linux終端中執行 

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


然後執行yum makecache生成緩存就行了。

1、開始安裝mysql

按照以前的做法,直接運行yum命令

yum install -y mysql-server mysql mysql-deve

安裝mysql,mysql-server和mysql-deve即可,然後到最後你會發現,哎呀,報錯了,找不到mysql-server,哼,第一步就出錯了,真是的。好吧!這是目前centos7中的yum中沒有mysql-server的原因。解決方法有兩種,

(1)自己去mysql官網下載mysql-server的rpm包,自己手動安裝。(例子可自己百度下centos安裝mysql-server,本人就是使用這個解決方法)

(2)不安裝mysql了,安裝mariadb,這是MySQL社區開發的分支,也是一個增強型的替代品。上面的命令則是改爲

yum -y  install MariaDB-server MariaDB MariaDB-devel

即可,但相對的以後有些地方,如啓動服務什麼的都得用mariaDB這個服務名,如systemctl start mariadb(個人喜歡統一名字,且敲慣mysql,所以我使用第一種方案解決)

安裝完後默認root用戶是沒有密碼的,我們可以直接登錄,然後設置密碼,執行的命令如下

//保險起見,先重啓下服務
service mysqld restart
//使用root用戶,不用密碼直接登錄
mysql -u root
//登錄成功,轉到mysql數據庫
mysql > use mysql;
//設置密碼
mysql > update user set password=password('123456') where user='root';
//添加密碼後,退出,以後就可以用root密碼登錄了
mysql > exit;

接下來就可以進行一些mysql的設置了,這裏就不多說了,但需要注意的是設置編碼爲utf-8的形式又改了,以前裝的時候都是設置default-character-set=utf8,現在mysql拆分成了服務端和客戶端,我們現在裝的是服務端,所以在my.cnf中的配置是

[mysqld]
character_set_server=utf8

2、創建mysql用戶

我們要給遠程使用肯定不能用root用戶了,給不同的人分配不同的權限,所以我們就需要創建不同的用戶了,執行命令如下

------------------------------------
use mysql
//創建賬號user1密碼爲password的用戶
CREATE USER 'user1'@'%' IDENDIFIED BY 'password';

//這裏的%號代表所有的ip都可以連接,如果要指定ip可訪問,只需將%改成指定的ip即可

其中這裏還有一個坑,%號說是所有ip都可以訪問,但是確不包括localhost的,所以你會發現在本機根本登不進去,所以想本機也可以登錄有兩種方式一種是將本地的mysql訪問ip改爲本機的ip,不要使用localhost。第二種則是再執行一次上面的創建用戶命令,把%號改爲localhost即可。

3、爲用戶授權

接下來你使用user1登錄mysql後,你會發現任何數據庫和表都操作不了,這是因爲還沒給該用戶設置可以訪問哪些數據庫的權限。

命令爲GRANT privileges ON databasename.tablename TO 'username'@'host' 
我想讓user1通過任一ip訪問的都可以訪問所有數據庫,且有增刪改查的權限,所以執行以下命令
//通過任何ip地址訪問,都可以訪問所有數據庫表且有所有權限
GRANT ALL ON *.* TO 'user1'@'%' 

想對創建mysql用戶和授權更多瞭解的可參考這篇文章

4、配置防火牆

現在你在本地可以用user1登錄操作數據庫了,但是你會發現使用遠程連接是根本連不上,是的,被防火牆堵了。
解決方式也有兩種1、直接關閉防護牆。2、配置通行端口或服務

由於centos7的防火牆改成了firewall-cmd,所以網上很多都是介紹關閉firewall-cmd,啓用iptables,配置通行端口。(這個網上很多,這裏不說了)。但居然centos7都用firewall-cmd了,那以後的版本應該都是會用這個東西的,既然如此我們就瞭解下,用用吧!想了解更多的可參考這裏,這裏就只針對mysql進行配置。我們知道mysql默認端口是3306通過tcp傳輸,所以我們增加3306可以訪問的權限就可以了。命令如下

//zone代表區域,這裏讓所以的都通行,add-port表示增加的端口,--permanent表示永久協議
firewall-cmd --zone=public --add-port=3306/tcp --permanent
//重新加載防火牆規則
firewall-cmd --reload//我爲了保險,一般不會執行這個命令,而是直接重啓防火牆服務,反正他重啓很快

service firewalld restart

好的!到了這裏我們就可以使用user1用戶進行遠程登錄我們的mysql數據庫 








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章