腳本實現二進制MariaDB數據庫的安裝
阿新 • • 發佈:2019-04-27
link 修改 安裝 鏈接 -i port l命令 reat source 一、實驗目的
mariadb屬於關系型數據庫,通過此實驗掌握mariadb數據庫的二進制安裝
二、實驗準備
mariadb-10.2.23-linux-x86_64.tar.gz安裝包,虛擬機需要安裝expect包
三、實驗腳本
vim /data/mysql.sh #!/bin/bash #create group user 創建用於mysql服務的組和用戶 groupadd -r -g 336 mysql #創建mysql組,系統組,gid336 useradd -r -g mysql -u 336 -s /sbin/nologin -d /data/mysql mysql #創建用戶mysql,系統用戶,指定主組mysql,uid336,shell類型/sbin/nologin,家目錄/data/mysql(需手動創建) #tar and link 解壓文件和創建軟鏈接 tar xvf /data/mariadb-10.2.23-linux-x86_64.tar.gz -C /usr/local/ #解壓文件至/usr/local/目錄下 cd /usr/local/ ln -s mariadb-10.2.23-linux-x86_64/ mysql #創建軟鏈接mysql指向mariadb-10.2.23-linux-x86_64 chown -R root.root /usr/local/mysql/ #遞歸修改mysql的屬主和屬組為root #PATH 修改變量PATH,讓安裝包自帶腳本可以執行 echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile #將自帶腳本路徑添加到變量,也可以在/etc/profile.d/下自己創建.sh後綴的文件存放 source /etc/profile #使變量存放文件生效 #create LV 創建卷組,用來存儲數據庫,方便容量不夠時擴展 mkdir /data/mysql #創建數據庫存放目錄 pvcreate /dev/sdb #創建物理卷 vgcreate vg0 /dev/sdb #創建卷組 lv -n mysql -L 10G vg0 #創建名為mysql,大小10G的邏輯卷 mkfs.xfs /dev/vg0/mysql #將邏輯卷文件系統制作為xfs mount /dev/vg0/mysql /data/mysql #掛載至/data/mysql目錄下 #data準備數據庫數據及目錄 chown mysql.mysql /data/mysql/ #修改數據庫屬主屬組 cd /usr/local/mysql ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql #以指定目錄和身份生成數據庫 #service 準備mysql服務端的配置文件 mkdir /etc/mysql cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf #拷貝模板文件 sed -i "/\[mysqld\]/adatadir=\/data\/mysql" /etc/mysql/my.cnf #在[mysqld]後添加datadir=/data/mysql #start script 準備服務啟動腳本 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld #將服務加入開機啟動 service mysqld start #啟動服務 #securety 安全加固 expect <<EOF spawn mysql_secure_installation #安全加固腳本,可以重新設置密碼 expect "none" {send "\n"} expect "none" {send "\n"} expect "password" {send "y\n"} expect "New" {send "123456\n"} expect "Re-enter" {send "123456\n"} expect "anonymous" {send "y\n"} expect "login" {send "y\n"} expect "database" {send "y\n"} expect "privilege" {send "y\n"} expect eof EOF
測試連接
mysql -uroot -p"password "
執行結果顯示mysql命令未找到,原因是腳本在一個新的子bash進程裏面執行,在這個子bash進程裏面執行的PATH變量添加、刷新並不能繼承至父進程,這才導致PATH變量文件雖然裏面有新的路徑加入,卻還是顯示命令未找到,解決方法是再次使文件生效,即source /etc/profile或. /etc/profile
腳本實現二進制MariaDB數據庫的安裝