一、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
謝謝大家的支持。