| #!/bin/bash |
| |
| |
| . /etc/init.d/functions |
| |
| MYSQL_version=mysql-8.0.19-linux-glibc2.12-x86_64 |
| TAR=tar.xz |
| MYSQL=${MYSQL_version}.${TAR} |
| |
| SRC_DIR=/usr/local |
| |
| |
| MYSQL_DIR=/apps/mysql |
| |
| MYSQL_ROOT_PASSWORD=123456 |
| |
| |
| Mysql_user=zabbix |
| |
| |
| |
| |
| CPUS=`lscpu|grep "^CPU(s)"|awk '{print $2}'` |
| |
| os_type=`grep "^NAME" /etc/os-release |awk -F'"| ' '{print $2}'` |
| |
| os_version=`awk -F'"' '/^VERSION_ID/{print $2}' /etc/os-release` |
| |
| color () { |
| if [[ $2 -eq 0 ]];then |
| echo -e "\e[1;32m$1\t\t\t\t\t\t[ OK ]\e[0;m" |
| else |
| echo $2 |
| echo -e "\e[1;31m$1\t\t\t\t\t\t[ FAILED ]\e[0;m" |
| fi |
| } |
| |
| check () { |
| if [ $UID -ne 0 ];then |
| color "当前用户不是root,安装失败" 1 |
| exit 1 |
| fi |
| |
| if [ ! -e /opt/${MYSQL} ];then |
| color "${MYSQL}安装包不存在" 1 |
| echo "请将安装包放在/opt目录下,退出!" |
| exit 1 |
| fi |
| } |
| |
| install_mysql () { |
| color "开始安装mysql数据库" 0 |
| yum -y install libaio numactl-libs libaio &>/dev/null |
| tar -xvf ${MYSQL} -C ${SRC_DIR} |
| cd ${SRC_DIR} |
| ln -s ${MYSQL_version} mysql |
| chown -R root:root mysql |
| useradd -s /sbin/nologin -r mysql |
| color "创建mysql用户" 0 |
| echo "PATH=${SRC_DIR}/mysql/bin:\$PATH" >/etc/profile.d/mysql.sh |
| . /etc/profile.d/mysql.sh |
| ln -s ${SRC_DIR}/mysql/bin/* /usr/bin/ |
| if [ ! -d /apps/mysql ];then |
| mkdir -p /apps/mysql |
| fi |
| cat > /etc/my.cnf <<EOF |
| [mysqld] |
| #bind地址设置为0.0.0.0,否则默认监听IPV6的3306端口 |
| bind-address=0.0.0.0 |
| server-id=`hostname -I|awk -F. '{print $4}'` |
| datadir=/apps/mysql |
| #skip_host_cache |
| skip_name_resolve |
| socket=/apps/mysql/mysql.sock |
| |
| log-error=/apps/mysql/mysql.log |
| pid-file=/apps/mysql/mysql.pid |
| #default_authentication_plugin=mysql_native_password |
| |
| #mysqlx=1 # 默认开启,0为关闭,多实例时必须关闭 |
| #mysqlx_port=33060 # 端口号为33060 |
| #mysqlx_bind_address=0.0.0.0 #默认监听IPV6 |
| |
| [client] |
| socket=/apps/mysql/mysql.sock |
| EOF |
| |
| mysqld --initialize --user=mysql --datadir=/apps/mysql |
| |
| cp ${SRC_DIR}/mysql/support-files/mysql.server /etc/init.d/mysqld |
| chkconfig --add mysqld |
| chkconfig mysqld on |
| systemctl start mysqld |
| systemctl is-active mysqld |
| if [ $? -ne 0 ];then |
| color "mysql服务启动失败" 1 |
| exit 1 |
| fi |
| |
| mysqladmin -uroot -p`awk '/temporary password/{print $NF}' /apps/mysql/mysql.log` password ${MYSQL_ROOT_PASSWORD} |
| color "mysql数据库安装完成" 0 |
| |
| } |
| |
| |
| grant_user(){ |
| |
| if [ ${Mysql_user}='zabbix' ];then |
| mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create database ${Mysql_user} character set utf8 collate utf8_bin;" |
| mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create user ${Mysql_user}@'10.0.0.%' identified by '123456'" |
| mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "grant all privileges on ${Mysql_user}.* to ${Mysql_user}@'10.0.0.%'" |
| mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "use mysql;\ |
| alter user ${Mysql_user}@'%' identified with mysql_native_password by '123456';\ |
| flush privileges;" |
| else |
| mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create database ${Mysql_user}" |
| mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create user ${Mysql_user}@'10.0.0.%' identified by '123456'" |
| mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "grant all on ${Mysql_user}.* to ${Mysql_user}@'10.0.0.%'" |
| fi |
| |
| } |
| |
| check |
| |
| install_mysql |
| |
| |
| |
| |
| exit 0 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?