第九周 - MySQL 周作業
1、寫一個一鍵安裝 mariadb 資料庫指令碼。
# 實現二進位制安裝mariadb 的一鍵安裝指令碼
#!/bin/bash
#
#*************************************************
#Author: dawn
#Date: 2020-09-25
#FileName: test.sh
#URL: https://blog.csdn.net/xiao_dan_
#Desc: The test script
#Copyright (C):2020 All rights reserved
#*************************************************
. /etc/init.d/functions
src_dir=`pwd`
mariadb_path=''
install_dir=/usr/local/
begin_color='echo -e \033[1;31m'
end_color='\033[0m'
read -p "請輸入壓縮包名稱:" package
read -p "請輸入資料庫root 的口令(可選):" passwd
chk_envir() {
if [ $UID -ne 0 ];then
action "當前使用者不是root,安裝失敗" false
exit 1
fi
if ! [ -e ${src_dir}/${package} ];then
${begin_color}"缺少${package}檔案"${end_color}
${begin_color}"請將軟體安裝包放在${SRC_DIR}目錄下"${end_color}
exit
elif [ -e /usr/local/mariadb ];then
action "資料庫已存在,安裝失敗" false
exit
else
mariadb_path=`echo ${package} | sed -nr 's#^(.*)\..*\..*#\1#p'`
return
fi
}
install_mariadb() {
${begin_color}"開始安裝mariadb 資料庫..."${end_color}
# 建立mysql 系統使用者
id mysql &> /dev/null || { groupadd mysql; useradd -r -g mysql -s /sbin/nologin mysql; action "建立mysql使用者"; }
# 安裝必要的依賴包
yum -y -q install libaio numactl-libs libncurses*
# 將安裝包解壓到/usr/local 目錄下
tar -xf ${package} -C ${install_dir}
cd ${install_dir}
# 建立mysql 的軟連結
ln -sv ${mariadb_path} mysql
chown -R root:root ${install_dir}mysql
# 設定環境變數
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
chmod +x /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
# 建立資料存放位置
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
# 設定mysql 的配置檔案
cat > /etc/my.cnf << EOF
[mysqld]
datadir = /data/mysql
innodb_file_per_table = on
skip_name_resolve = on
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
EOF
# 建立資料庫檔案(初始化資料庫)
./mysql/scripts/mysql_install_db --datadir=/data/mysql --user=mysql
# 建立mysql 服務
cp ./mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
[ $? -ne 0 ] && { ${begin_color}"資料庫啟動失敗,退出!"${end_color};exit; }
# 如果輸入了密碼,則執行資料庫加固操作
if ! ${passwd} &> /dev/null ; then
/usr/local/mysql/bin/mysql_secure_installation << EOF
y
${passwd}
${passwd}
y
y
y
y
EOF
action "資料庫安裝完成,root 口令已修改"
else
action "資料庫安裝完成"
${begin_color}"請執行exec mysql_secure_installation 初始化資料庫並修改root 口令"${end_color}
fi
}
chk_envir
install_mariadb
2、簡述Event 事件介紹以及它的優缺點
事件是MySQL 在相應的時刻呼叫的過程式資料庫物件。一個事件可呼叫一次,也可週期性的啟動。由一個特定的執行緒來管理,即“事件排程器”。跟觸發器類似,都是在某些事情發生的時候啟動。當資料庫上啟動一條語句的時候,觸發器就啟動了。而事件是根據排程事件來啟動的。事件被稱為臨時性觸發器。MySQL 的事件排程器可精確到每秒鐘執行一個任務。
優點:一些對資料定實行操作不再依賴外部程式,而直接使用資料庫本身提供的功能,可實現每秒鐘執行一個任務,在對實時性要求較高的環境下非常實用。
缺點:定時觸發,不可直接呼叫
3、在 students 表中,查詢年齡大於25歲,且為男性的同學的名字和年齡:
select name,age from students where gender="M" and age > 25;
4、在 students 表中,以 ClassID 為分組依據,查詢顯示每組的平均年齡
select classid,avg(age) as 平均年齡 from students group by classid;
5、顯示第2題中平均年齡大於30的分組及平均年齡
select classid,avg(age) as 平均年齡 from students group by classid having avg(age) > 30;
相關文章
- 第九組【團隊作業】第四周作業2
- 4.24第九周作業:團隊練習3
- 第九周翻譯
- 第九周總結
- 第九周學習總結
- 2020-10-23 周作業
- 資料庫第九周翻譯資料庫
- 第九周第三天9.3
- 第九周第一天9.1
- 第九周第二天9.2
- 第九周第五天9.5
- PHP 第九周函式學習記錄PHP函式
- 第八組【團隊作業】第四周作業2
- 第五組【團隊作業】第四周作業2
- 第一組【團隊作業】第四周作業1
- 第一組【團隊作業】第四周作業2
- 第三組【團隊作業】第四周作業3
- [第八組]第四周作業3
- C語言第九周作業(指標變數,記憶體訪問,取址,空指標)C語言指標變數記憶體
- 第四周-雲端計算運維作業運維
- 第九次作業
- 浙大城市學院2022級軟體工程大作業 第十二組 第九周軟體工程
- 周結
- MySQL如何按周統計表中資料MySql
- 周具熱構音約沒至放作lej
- HTTP -- 周邊HTTP
- 周總結
- 周間素食
- 第九組【團隊作業】第三週作業4
- MySQL按分/時/天/周/月/季度/半年/年分組MySql
- 2018暑假假期周進度報告——第四周
- 機器學習 | 吳恩達機器學習第九周學習筆記機器學習吳恩達筆記
- 菜鳥扣程式碼第九天:leetcode463--島嶼的周長LeetCode
- Leetcode周賽119LeetCode
- 第四周
- 周總結7.19
- leetcode周賽 - 406LeetCode
- 第九組【團隊作業】第二週需求分析作業1