rpm方式快速部署mysql

rpm方式快速部署mysql

rpm包获取

官网下载地址:https://dev.mysql.com/downloads/mysql/
网盘下载地址:

链接:https://pan.baidu.com/s/1pPHICQftXG5o5vtLRm1ACw
提取码:wa37

环境准备

[root@dbtest1 mysql]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@dbtest1 mysql]# uname -a 
Linux dbtest1 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@dbtest1 mysql]# cat /proc/version #查看内核版本
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015
[root@dbtest1 mysql]# ldd --version #检查GNU C库的简单命令
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

安装脚本

创建安装脚本 mysql_deploy

#!/usr/bin/env bash

version=5.7.34

if [ ! -n "$install_path" ] ;then
    install_path=/opt/idss
fi

if [ ! -n "$port_mysql" ] ;then
    port_mysql=3306
fi

#防止环境缺少libaio导致mysql安装失败
libaio=`rpm -qa | grep libaio`
if [ -z "${libaio}" ]; then
    rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
fi

#卸载mariadb,防止与安装冲突
mariadb=`rpm -qa | grep mariadb`
if [ $? -eq 0 ];then
    yum -y remove $mariadb
fi


#卸载mysql,防止与安装冲突
ori_mysql=`rpm -qa | grep mysql`
rpm -e $ori_mysql --nodeps
rm -rf $install_path/mysql
rm -rf /var/log/mysqld.log


# 安装mysql 建议按顺序安装:common --> libs --> clients --> server
rpm -ivh mysql-community-common-$version-1.el7.x86_64.rpm \
mysql-community-libs-$version-1.el7.x86_64.rpm \
mysql-community-libs-compat-$version-1.el7.x86_64.rpm \
mysql-community-client-$version-1.el7.x86_64.rpm \
mysql-community-server-$version-1.el7.x86_64.rpm --nodeps

#创建数据库目录
if [ ! -d "$install_path/mysql" ]; then
    mkdir -p $install_path/mysql
    chown mysql.mysql $install_path/mysql
fi

#创建my.cnf配置文件
cat > /etc/my.cnf <<EOF
[client]
port                                     = $port_mysql
socket                                   = $install_path/mysql/mysql.sock
default_character_set                    = utf8mb4

[mysqld]
user                                     = mysql
port                                     = $port_mysql
basedir                                  = $install_path/mysql
datadir                                  = $install_path/mysql/data
socket                                   = $install_path/mysql/mysql.sock
pid-file                                 = $install_path/mysql/mysql.pid
log-error                                = $install_path/mysql/mysqld.log
character-set-server                     = utf8mb4
default_time_zone                        = "+8:00"

innodb_buffer_pool_size                  = 8196M
innodb_buffer_pool_instances             = 4
innodb_data_file_path                    = ibdata1:256M:autoextend
innodb_log_file_size                     = 512M
innodb_log_buffer_size                   = 8M
innodb_flush_log_at_trx_commit           = 2

tmp_table_size                           = 512M
read_buffer_size                         = 8M
sort_buffer_size                         = 4M
join_buffer_size                         = 4M
thread_cache_size                        = 64
max_connections                          = 2048
max_connect_errors                       = 1000000
EOF


#创建mysqld服务文件
cat > /lib/systemd/system/mysqld.service <<EOF
[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
Type=forking
PIDFile=$install_path/mysql/mysql.pid

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Execute pre and post scripts as root
PermissionsStartOnly=true

# Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=$install_path/mysql/mysql.pid $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
EOF

#重新加载服务文件
systemctl daemon-reload
#初始化mysql数据库
systemctl start mysqld

#获取root用户密码
if [ $? -eq 0 ];then
    echo -e "install succefull"
    OLD_PASSWORD=`grep 'temporary password' $install_path/mysql/mysqld.log | awk '{print $NF}'`
else
    echo -e "install error"
fi

#修改新密码
echo "reset password"
mysql -uroot -p$OLD_PASSWORD --connect-expired-password <<EOF
ALTER USER 'root'@'localhost'  IDENTIFIED BY '$ze1bw0,7E[9V';
CREATE USER 'root'@'%' IDENTIFIED BY '$ze1bw0,7E[9V';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF

#设置开机自启
systemctl enable mysqld



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值