MySQL(一)——在Linux下安裝MySQL

一、MySQL在Linux下的安裝

時常接觸Linux的同學可能知道,Linux下的安裝包一般包含有三種不同的格式:yum、tar.gz、rmp,這三者的大致區別如下

tar.gz:tar.gz就是一個壓縮包,類似於win上面的zip等文件

rpm:rpm是一種用來打包軟件的的文件格式,他是一種特定的專門用來進行軟件的安裝、卸載等操作的格式

yum:yum可以理解爲一個專門用來管理軟件的體系,有點類似於Java中的maven,可以管理軟件之間相互依賴的問題,他和前兩種的不同之處就是,他的安裝不是簡單的使用tar和rmp命令行就可完成對某一個軟件的安裝,而是通過配置yum文件實現對軟件的一個自動下載、安裝以及缺失依賴的自動過程。

下面正式開始在centos中安裝MySQL

1.我們選擇rmp格式的MySQL軟件包進行安裝,類似於window上的MySQL和SQLyog圖像化界面,在Linux下也有MySQL對應的server端和client端。到官網把這兩端的rmp包下載下來https://downloads.mysql.com/archives/community/ 並上傳到Linux上,我的放到了/usr/local/app/mysql路徑下(app和mysql這兩個目錄是我自己創建的)。

2.在安裝MySQL之前需要先卸載掉centos自帶的MySQL,否則會衝突導致安裝失敗

   1)輸入rpm -qa|grep mysql,查看centos自帶的MySQL。可以看到確實有自帶的MySQL

   2)通過命令rpm -e --nodeps 軟件名,將自帶的MySQL卸載

3.安裝MySQL的服務器端和客戶端:rpm -ivh 軟件名

4.啓動MySQL服務:service mysql start

5.將MySQL添加到系統服務中去並設置開機啓動(類比一下windows下的場景)

    添加到系統服務中:chkconfig --add mysql

    開機後自動啓動:chkconfig mysql on

我們可以通過命令ntsysv來看一下是否設置成功,輸入ntsysv回車後出現如下界面,前面有*號的表示是開機自啓服務,沒有*的就不會開機自啓。我們看到MySQL前面有*號,說明設置成功了。按tab鍵切到ok按鈕上,回車退出界面。

6.登陸MySQL

現在我們在控制檯直接輸入mysql就可以登錄MySQL數據庫了(不需要密碼),如下圖:

這是因爲我們在安裝MySQL服務端的時候,系統本身就沒有讓我們設置root用戶對應的密碼,所以就出現了像上面那樣,即使我們直接輸入mysql,不輸入密碼也可以登陸mysql的情況。因此我們必須重置密碼,否則數據庫的很多操作我們是不能使用的。

7.修改密碼:修改的方式有兩種,一種是在mysql命令下修,一種是在linux命令下修改,兩者都可以用,看個人喜好:

    mysql命令下:set password = password('你的新密碼')

    Linux命令下:/usr/bin/mysqladmin -u root password '你的新密碼'   

8.開啓MySQL遠程登陸權限

默認情況下爲了安全起見,MySQL不支持遠程登陸,所以需要手動設置開啓MySQL遠程登錄的權限。登陸MySQL後輸入如下命令:

    grant all privileges on *.* to 'root' @'%' identified by 'root';

    (上面命令的形式:grant all privileges on *.* to 'root'@'電腦的ip地址' identified by '密碼';)

    flush privileges;

9.開放Linux的3306端口,輸入如下命令:

    /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

    /etc/rc.d/init.d/iptables save     //將修改永久保存到防火牆中

二、MySQL的一些核心目錄

在做數據庫優化等工作的時候,我們會與很多各種MySQL的目錄打交道,今天我們就先熟悉一下幾個比較常用到的。

先通過ps -ef|grep mysql命令查看一下數據庫存放目錄:重點關注如下兩個

datadir=/var/lib/mysql                             //數據存放目錄

pid-file=/var/lib/mysql/centos6.pid         //pid文件存放目錄

通過上面的兩個路徑我們可以看到,pid文件就存放在/var/lib/mysql目錄下,我們進入到/var/lib/mysql目錄看一下里面都有那些文件:用紅框圈出幾個比較重要的文件,其中test是MySQL在Linux環境下自帶的一個測試用的數據庫,mysql.sock是與通信相關的東西

MySQL的一些核心目錄總結:

    1. /var/lib/mysql             //MySQL安裝與存放目錄

    2. /usr/bin                      //可執行命令目錄(如mysqladmin、mysqldump等命令)

    3. /etc/init.d/mysql         //mysql的啓停腳本存放目錄

    4. /usr/share/mysql        //存放MySQL相關配置文件的目錄

我們進入 /usr/share/mysql目錄看一下,發現有很多配置文件,我們重點看一下紅框中的四個,分別對應部署不同規模服務器時所對應的配置文件。

my-huge.cnf              //高端服務器配置(1~2G內存)

my-large.cnf              //中等規模

my-medium.cnf         //一般規模

my-small.cnf             //較小規模

但是以上的這四個配置,MySQL默認是識別不出來了,默認只能識別/etc/my.cnf這個配置文件。所以要想識別出上面四個中的某個配置文件,必須把它複製一份到/etc/路徑下,把原來的my.cnf替換掉。比如我們想讓my-huge.cnf 這個配置文件生效,那麼就需要通過如下指令複製一份my-huge.cnf文件到/etc路徑下,把my.cnf替換掉cp /usr/share/mysql/my-huge.cnf /etc/my.cnf (注意這個指令已經將my-huge.cnf複製到了/etc/目錄下,並且重命名爲my.cnf)

另外需要注意的是,MySQL5.5默認的配置文件是/etc/my.cnf,而MySQL5.6默認的默認的配置文件是/etc/my-defaut.cnf,二者名字略有差異

三、編碼問題

首先我們登陸MySQL,通過sql命令show variables like '%char%';看一下編碼。可以看到下面有兩項是拉丁編碼,我們需要把他改爲utf8

那麼如何設置編碼呢?

當然是修改配置文件,這就需要用到我們在上面提到my.cnf配置文件了。爲了操作方便通過ctrl+shift+F1快捷鍵把centos切換到圖形界面進入到etc文件夾,找到my.cnf(可以通過ctrl+f搜索)並打開my.cnf,我們需要在如下三個模塊中追加內容:

[mysql]

default-character-set=utf8

[client]

default-character-set=utf8

[mysqld]

character_set_server=utf8

character_set_client=utf8

collation_server=utf8_general_ci

上面注意下劃線_和中線-的區別。修改完成後我們通過service mysql restart重啓MySQL,然後登陸MySQL,再通過show variables like '%char%';查看一下修改後的編碼,可以看到剛纔的兩個拉丁編碼已經被我們修改爲utf8編碼了。

需要注意的一點是,修改編碼只對之後創建的數據庫生效,對修改之前已經存在的數據庫不會生效。比如我們在修改編碼前有A、B兩個數據庫,修改編碼後又創建了C數據庫,那麼A、B庫還是用原來的那套編碼,C庫使用最新的編碼。

最後的最後,再說兩個在MySQL中常用的清屏命令:ctrl+L(這個是Linux自帶的)和system clear

謝謝大家的支持。

 

 

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