MySQL一键部署教程
该教程是通过shell脚本进行实现
#!/bin/bash
source_dir="/home"
mysql_dir="/usr/local/mysql"
mysql_package="mysql-boost-5.7.29.tar.gz"
mysql_SRC_first=$(echo $mysql_package | sed 's/.tar.gz//g')
mysql_SRC=$(echo $mysql_SRC_first | sed 's/boost-//g')
function init()
{
# close selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
# check yes/no x86_64
if [ `uname -m` != "x86_64" ];then
echo "your system is 32bit ,not install libunwind lib!"
fi
# download depend on the packages
LANG=C
yum -y install gperftools make cmake gcc gcc-c++ autoconf automake libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre pcre-devel
mkdir $log_dir
groupadd mysql && useradd mysql -s /sbin/nologin -g mysql
echo "www and mysql user && group create!"
}
function mysql_install()
{
echo "######## start install mysql ########"
##test yes/no have mysqld/mariadb progress
ps -ef|grep -w mysqld|grep -v "grep" &> /dev/null
if [ $? -eq 0 ];then
mysqlbasedir=`ps -ef|grep -w "mysqld"|grep -v "grep"|awk '{print $9}'|tr -d '\-\-'`
mysqldatadir=`ps -ef|grep -w "mysqld"|grep -v "grep"|awk '{print $10}'|tr -d '\-\-'`
fi
rpm -qa | grep mariadb* &> /dev/null
if [ $? -eq 0 ];then
yum remove mariadb* -y
fi
ls /etc/my.cnf &> /dev/null
if [ $? -eq 0 ];then
mv /etc/my.cnf /etc/my.cnf.bak
fi
ls /etc/init.d/mysql &> /dev/null
tar zxvf $mysql_package
cd $mysql_SRC
echo "start cmake..."
cmake -DCMAKE_INSTALL_PREFIX=$mysql_dir -DMYSQL_UNIX_ADDR=$mysql_dir/mysql.sock -DSYSCONFDIR=$mysql_dir/etc -DSYSTEMD_PID_DIR=$mysql_dir -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_DATADIR=$mysql_dir/data -DWITH_BOOST=boost -DWITH_SYSTEMD=1 > $log_dir/configure_mysql.log
sleep 1
echo "start make && make install..."
make && make install
sleep 2
chown -R mysql.mysql $mysql_dir/
cd $mysql_dir/
echo '######create my.cnf######'
if [ ! -s my.cnf ];then
cat >> my.cnf << EOF
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
default-character-set=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF
else
continue
fi
chown mysql.mysql my.cnf
cp $mysql_dir/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
rm -rf $mysql_dir/data/*
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld
systemctl enable mysqld
ps -ef|grep mysql
systemctl status mysqld
echo '######mysql is install completed done.######'
}
init
sleep 1
mysql_install
该脚本执行方式如下:
下载mysql 5.7的安装包,地址如下:
https://download.csdn.net/download/hotkoko/12410040
下载之后,传到服务器的家目录下
# scp mysql-boost-5.7.29.tar.gz root@10.10.1.2:/home
# vi /home/mysql.sh
将脚本内容输入到mysql.sh文件中
# sh mysql.sh
# systemctl status mysqld
进入数据库中(默认密码为空)
# mysql -uroot -p
为安全起见,可以通过一下命令进行修改用户密码
mysql> use mysql;
mysql> alter user ‘root’@’localhost’ identified by ‘123456’ ;
mysql> flush privileges;
mysql> exit
在安装时,尽量使用干净的环境安装,若出现报错信息:
报错信息: syntax error near unexpected token `$’\r
参考博客: https://blog.csdn.net/hotkoko/article/details/106063428
报错信息:CMake Error at libmysqld/cmake_install.cmake:36 (FILE): file INSTALL cannot copy file
参考博客:https://blog.csdn.net/hotkoko/article/details/105794218如在使用过程中出现其他问题,欢迎留言评论,我再做以改进