shell脚本一键部署mysql数据库简易版
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
最近经常要测试泛微ecology9在Centos 7.9部署教程,就用到了mysql8数据库的安装,每次都略麻烦,写了一个shell脚本 基于虚拟机环境下,进行mysql数据库的一键安装脚本;
环境准备:vmware15.0.4,centos7.9,mysql8.0.31
一键安装mysql脚本:
正确的食用教程,把下面的SHELL脚本复制保存为.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是否运行,如运行则杀掉进程 if [ "$mysql" = 0 ]; then echo "设备上未运行mysql数据库" 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* #此区域需要根据实际情况进行修改 Path=/test #指定mysql压缩包解压的目录,与PathNAME1相呼应 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 #创建mysql用户 useradd -r -g mysql -s /bin/false mysql > /dev/null 2>&1 #安装目录设置为mysql用户和组所有 chown -R mysql:mysql /usr/local/mysql > /dev/null 2>&1 #写入配置文件 echo '[mysqld] ##### # 设置3306端口 port=3306 ##### # 设置mysql的安装目录 basedir=/usr/local/mysql ##### # 设置mysql数据库的数据的存放目录 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 ##### # 允许最大连接数 max_connections=10000 ##### # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 ##### # 服务端使用的字符集默认为UTF8 character-set-server=UTF8MB4 ##### # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB ##### # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password [mysql] ##### # 设置mysql客户端默认字符集 default-character-set=UTF8MB4 [client] ##### #设置mysql客户端连接服务端时默认使用的端口 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加入系统服务,及使用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超时时间设定 0为不限制 # Execute pre and post scripts as root PermissionsStartOnly=true #以root权限来启动程序 # 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 使进程后台运行 # 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 #重定向到系统服务目录内 systemctl daemon-reload #刷新系统服务 systemctl enable mysqld.service --now #设置mysql开机自启 #设置软连接,可直接命令行mysql进入服务 ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql #停止正在运行的mysql,重新启动。 systemctl restart mysqld.service
目前脚本内容就是以上部分,下面这部分手动去完成即可!
#输入mysql -u用户名 -p密码 进入mysql数据库中 mysql -uroot -p'hlafnHntA9(b' #修改mysql默认的root密码 alter user 'root'@'localhost' identified by 'Laoliang.Net'; #添加远程访问用户 CREATE USER 'root'@'%'IDENTIFIED BY 'Laoliang.Net'; grant all privileges on *.* to 'root'@'%' with grant option; flush privileges; #使用修改后的mysql进入数据库 mysql -uroot -p'Laoliang.Net'
使用新密码登录mysql数据库(Laoliang.Net则为密码)
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!
赏
支付宝赞助
微信赞助


免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。
您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源 LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。
敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » shell脚本一键部署mysql数据库简易版