shell腳本一鍵部署mysql數(shù)據(jù)庫簡易版
[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!
最近經(jīng)常要測試泛微ecology9在Centos 7.9部署教程,就用到了mysql8數(shù)據(jù)庫的安裝,每次都略麻煩,寫了一個shell腳本 基于虛擬機(jī)環(huán)境下,進(jìn)行mysql數(shù)據(jù)庫的一鍵安裝腳本;
環(huán)境準(zhǔn)備:vmware15.0.4,centos7.9,mysql8.0.31
一鍵安裝mysql腳本:
正確的食用教程,把下面的SHELL腳本復(fù)制保存為.sh即可;
#!/bin/bash/ #定義變量 mysql="ps -ef | grep mysql | grep -v grep | wc -l " mysqlPID=" ps -ef | grep mysql | grep -v grep | awk '{print $2}' " #查詢檢測mysql是否運行,如運行則殺掉進(jìn)程 if [ "$mysql" = 0 ]; then echo "設(shè)備上未運行mysql數(shù)據(jù)庫" fi if [ "$mysql" = 1 ]; then kill -9 $mysqlPID fi ##### #刪除舊版mysql包 rpm -qa | grep mariadb|xargs rpm -e --nodeps >/dev/null 2>&1 rm -rf /usr/bin/mysql rm -rf /usr/local/mysql rm -rf /usr/lib/systemd/system/mysql* #此區(qū)域需要根據(jù)實際情況進(jìn)行修改 Path=/test #指定mysql壓縮包解壓的目錄,與PathNAME1相呼應(yīng) PathNAME=/test/mysql-8.0.31-el7-x86_64.tar.gz #此路徑為mysql tar包路徑 PathNAME1=/test/mysql-8.0.31-el7-x86_64 #此路徑為解壓完成的路徑 #刪除mysql用戶和組 userdel -r mysql >/dev/null 2>&1 groupdel mysql >/dev/null 2>&1 groupadd mysql >/dev/null 2>&1 #解壓mysql安裝包 tar -zxf $PathNAME -C $Path #將解壓的安裝包移動到安裝目錄 mv $PathNAME1 /usr/local/mysql mkdir /usr/local/mysql/data #創(chuàng)建mysql用戶 useradd -r -g mysql -s /bin/false mysql > /dev/null 2>&1 #安裝目錄設(shè)置為mysql用戶和組所有 chown -R mysql:mysql /usr/local/mysql > /dev/null 2>&1 #寫入配置文件 echo '[mysqld] ##### # 設(shè)置3306端口 port=3306 ##### # 設(shè)置mysql的安裝目錄 basedir=/usr/local/mysql ##### # 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄 datadir=/usr/local/mysql/data sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION lower_case_table_names=1 ##### # 允許最大連接數(shù) max_connections=10000 ##### # 允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫系統(tǒng) max_connect_errors=10 ##### # 服務(wù)端使用的字符集默認(rèn)為UTF8 character-set-server=UTF8MB4 ##### # 創(chuàng)建新表時將使用的默認(rèn)存儲引擎 default-storage-engine=INNODB ##### # 默認(rèn)使用“mysql_native_password”插件認(rèn)證 default_authentication_plugin=mysql_native_password [mysql] ##### # 設(shè)置mysql客戶端默認(rèn)字符集 default-character-set=UTF8MB4 [client] ##### #設(shè)置mysql客戶端連接服務(wù)端時默認(rèn)使用的端口 port=3306 default-character-set=UTF8MB4' > /etc/my.cnf #初始化mysql,需記住初始密碼 cd /usr/local/mysql/ ./bin/mysqld --initialize --console &>passwd.txt tem_passwd=$(cat /usr/local/mysql/passwd.txt |grep "temporary"|awk '{print $NF}') chown -R mysql:mysql /usr/local/mysql echo "初始密碼為:'$tem_passwd'" echo '初始密碼已保存至/root/password.txt中' echo "$tem_passwd" > /root/password.txt #將mysql加入系統(tǒng)服務(wù),及使用systemctl管理 echo '[Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql PIDFile=/usr/local/mysql/data/mysqld.pid # Disable service start and stop timeout logic of systemd for mysqld service. TimeoutSec=0 #systemd的service超時時間設(shè)定 0為不限制 # Execute pre and post scripts as root PermissionsStartOnly=true #以root權(quán)限來啟動程序 # Needed to create system tables #ExecStartPre=/usr/bin/mysqld_pre_systemd # Start main service ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid #注意這里要加上 --daemonize 使進(jìn)程后臺運行 # Use this to switch malloc implementation #EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit LimitNOFILE = 5000 Restart=on-failure # 故障時重啟 RestartPreventExitStatus=1 PrivateTmp=false' > /usr/lib/systemd/system/mysqld.service #重定向到系統(tǒng)服務(wù)目錄內(nèi) systemctl daemon-reload #刷新系統(tǒng)服務(wù) systemctl enable mysqld.service --now #設(shè)置mysql開機(jī)自啟 #設(shè)置軟連接,可直接命令行mysql進(jìn)入服務(wù) ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql #停止正在運行的mysql,重新啟動。 systemctl restart mysqld.service
目前腳本內(nèi)容就是以上部分,下面這部分手動去完成即可!
#輸入mysql -u用戶名 -p密碼 進(jìn)入mysql數(shù)據(jù)庫中 mysql -uroot -p'hlafnHntA9(b' #修改mysql默認(rèn)的root密碼 alter user 'root'@'localhost' identified by 'Laoliang.Net'; #添加遠(yuǎn)程訪問用戶 CREATE USER 'root'@'%'IDENTIFIED BY 'Laoliang.Net'; grant all privileges on *.* to 'root'@'%' with grant option; flush privileges; #使用修改后的mysql進(jìn)入數(shù)據(jù)庫 mysql -uroot -p'Laoliang.Net'
使用新密碼登錄mysql數(shù)據(jù)庫(Laoliang.Net則為密碼)
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!
賞
支付寶贊助
微信贊助


免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。
您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責(zé)聲明》全部內(nèi)容的認(rèn)可->聯(lián)系老梁投訴資源 LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請聯(lián)系站長并出示版權(quán)證明以便刪除。
敬請諒解! 侵權(quán)刪帖/違法舉報/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉(zhuǎn)載請注明出處: » shell腳本一鍵部署mysql數(shù)據(jù)庫簡易版