二进制安装Mariadb
第一個實驗:
實現二進制安裝mariadb 用腳本或ansible的role實現
我們先手動執行一遍,能夠更好的了解其流程
第一步:將我們下載的mariadb二進制包解壓
由于我們下載的是二進制的程序包,所以,源碼編譯的步驟已經有人替我們做了,所以,我們可以跳過編譯。但是,源碼編譯必須要指定編譯目錄,所以,我們必須知道二進制安裝完后它存放的位置。所以,我們解壓縮的時候,要指定存放路徑,而usrlocal就是默認的存放路徑
tar xvf mariadb-10.2.23-linux-x86_64.tar.gz -C usrlocal
第二步:
我們進入到usrlocal目錄下,因為在下載二進制源包的網頁上,有非常詳細的安裝過程,在這里,我只安裝位置相關的一小部分:
In the example below we install MariaDB in the usrlocalmysql directory (this is the default location for MariaDB for many platforms). However any other directory should work too.
We install the binary with a symlink to the original name. This is done so that you can easily change MariaDB versions just by moving the symlink to point to another directory.
大概意思就是,我們默認的安裝路徑是在usrlocalmasql目錄下,并且推薦使用軟連接來指向mysql,這方便我們日后對mariaDB進行升級和降級,我們只需要將軟連接重新指向一個新的版本就行了。
cd usrlocal ln -s mariadb-10.2.23-linux-x86_64 mysql第三步:
cd mysql
當我們ls -l 之后,發現,目錄內的所有者和所屬組是有些問題的,所以,我們需要改變該目錄下所有的所屬者和所屬組,這里,我們修改為root就行
chown -R root.root mysql
第四步:
在正常的應用服務程序上,都會創建一個和該服務對應的用戶賬號,該用戶的職責就只只負責對應的服務程序,在yum安裝的時候,會自動創建,但是我們是手動的二進制安裝,所以,我們需要創建對應的用戶和用戶組
groupadd -r -g 336 mysql useradd -r -g my sql -u 336 -s sbinnologin -d datamysql mysql我們指定了家目錄,這個家目錄就意味著我們以后存放數據庫的路徑,但是我們指定的家目錄不會自動生成,所以,我們需要手動創建
mkdir datamysql chown -R mysql.mysql datamysql第五步:
我們需要創建數據庫文件,很多數據庫文件都是二進制,我們,很難創建,但是,在usrlocalmysqlscripts目錄下有一個mysql_install_db可執行程序,它就可以幫助我們創建數據庫文件。
需要注意的是,我們進入到usrlocalmysqlscripts這個目錄中,因為,我們沒有添加到PATH變量中去,所有,我們要在這個目錄下執行此程序,理論上是可以成功的
我們需要執行此程序的用戶和生成數據庫文件的路徑
但是,它會報錯,內容如下:
FATAL ERROR Could not find .binmy_print_defaults
而這個文件存放在usrlocalmysqlbin目錄下,我們需要在它的上一級目錄下執行此命令,也就是usrlocalmysql目錄下
scriptsmysql_install_db --user=mysql --datadir=datamysql
執行之后,就會在datamysql目錄下生成數據庫文件,并且所屬組和所屬者的身份是mysql,
yum install libaio.x86_64 -y scriptsmysql_install_db --user=mysql --datadir=datamysql注意:如果有的同學發現執行之后會報錯,報錯內容為卻少一個libaio.so.1的動態共享庫,我們可以yum install libaio.x86_64 手動安裝這個包
第六步:
接下來,我們要創建一個數據庫的配置文件,
數據庫的默認配置文件etcmy.cnf文件,但是這個配置文件默認的內容的是不符合要求的,我們可以自己創建一個配置文件,etcmysqlmy.cof,這個文配置文件的優先級要比系統自帶的配置文件要高
我們可以參考解壓縮文件中的usrlocalmysqlsupport-files目錄下my-huge.cnf文件來當做配置文件
第七步:
配置文件我們已經創建好了,接下來就是服務啟動腳本了,CentOS7服務啟動的腳本存放在etcinit.d下,我們不用自己編寫這個啟動腳本,當然,有能力的同學也可以自己編寫,我們解壓縮的二進制包很友好的給我們提供了服務啟動的程序,在usrlocalmysqlsupport-files這個目錄下的mysql.server文件,我們將這個文件復制到etcinit.d并且改名為mysqld,然后我們將服務腳本添加到列表中,然后啟動服務就好了。3306端口已經處于監聽狀態了
cp usrlocalmysqlsupport-filesmysql.server etcinit.dmysqld chkconfig --add mysqld chkconfig --list systemctl start mysqld第八步:
添加PATH路徑,以后我們直接敲命令就好了 echo PATH='usrlocalmysqlbin$PATH' etcprofile.dmysql.sh . etcprofile.dmysql.sh第九步:
我們現在就可以直接使用mysql密令登錄到數據庫了,但是,目前數據庫很不安全,所以,我們需要對數據庫進行安全加固。
安全加固:mysql會自帶一個安全加固的一個程序mysql_secure_installation,這個是個交互式的方式,大概內容如下:
第十步:
測試連接,當執行完安全加固后,我們就必須要指定用戶和密碼登錄了
mysql -u'user' -p'passwd'
示例
mysql -uabc -p123456
第二個實驗:實現用shell腳本來完成上面的工作
注意:我們要模擬的真實的環境,所以,我們推薦把mariaDB的數據庫存放在LV邏輯卷上,這樣就可以靈活的實現空間的擴容了
先復習以下邏輯卷的創建過程,以我的虛擬機為例
我們添加一塊新硬盤:20G devsdb3
在原有的磁盤上有一個sda3,掛載目錄是在data下, devsdb1
這次用devsdae3和devsdb1來創建邏輯卷
步驟如下:
示例腳本:
#!binbash #install mysql #Create LVM sleep 1 echo start install...... null=devnull umount devsda3 & $null sed -i '11d' etcfstab fdisk devsda & $null EOF 8e w EOF partprobe devsda p 1+5G t 8e w EOF echo disk create---done pvcreate devsda3 devsdb1 & $null EOF y lvcreate -L 5G -n mysql_data mysql & $null mkfs.xfs devmysqlmysql_data & $null mkdir datamysql mount -aecho LVM create done #bin install mariadb cd usrlocal ln -s mariadb-10.2.23-linux-x86_64 mysql & $null chown -R root.root mysql & $null echo decompress done #create MASQL user groupadd -r -g 336 mysql useradd -r -g mysql -u 336 -s sbinnologin -d datamysql mysql chown -R mysql.mysql datamysql echo User create done #create MYSQL DB file cd usrlocalmysqlecho create mairiaDB file done #create configure fiel mkdir etcmysql touch etcmysqlmy.cnf cp usrlocalmysqlsupport-filesmy-huge.cnf etcmysqlmy.cnf sed -i '28adatadir=datamysql' etcmysqlmy.cnf#start service script cp usrlocalmysqlsupport-filesmysql.server etcinit.dmysqld chkconfig --add mysqld & $null systemctl start mysqld #add PATH echo PATH='usrlocalmysqlbin$PATH' etcprofile.dmysql.sh . etcprofile.dmysql.sh echo start service done #secure enhance mysql_secure_installation & $null EOFy centos centos y y y y EOF echo secure done sleep 3 echo tasks done第二種:用ansible 實現完成安裝
還有些問題,正在改善,不好意思!
轉載于:https://blog.51cto.com/14116879/2388850
總結
以上是生活随笔為你收集整理的二进制安装Mariadb的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中的反射(一)
- 下一篇: bloc+rxdart解决代码混乱大问题