Mysql5.6数据库安装配置

xiaoxiao2021-02-28  47

一. 安装mysql5.6

1、下载mysql5.6免安装版本

# cd /root # wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz

2、解压mysql5.6到/usr/local/mysql5.6

# mkdir -p /usr/local/mysql5.6 # mkdir -p /data/mysql5.6 # tar xf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz # mv mysql-5.6.37-linux-glibc2.12-x86_64 /usr/local/mysql5.6

3、创建mysql用户

# groupadd mysql # useradd -r -g mysql mysql # chown -R mysql:mysql /usr/local/mysql5.6 # chown -R mysql:mysql /data/mysql5.6

4、初始化mysql

# /usr/local/mysql5.6/scripts/mysql_install_db --user=mysql --datadir=/data/mysql5.6/ --basedir=/usr/local/mysql5.6/

5、修改配置文件

cat /usr/local/mysql5.6/my.cnf [mysqld] basedir = /usr/local/mysql5.6/ datadir = /data/mysql5.6/ port = 3307 socket = /data/mysql5.6/mysql.sock innodb_file_per_table=1 default-storage-engine=INNODB explicit_defaults_for_timestamp=true symbolic-links=0 max_connections=1000 [mysqld_safe] log-error=/data/mysql5.6/mysqld.log pid-file=/data/mysql5.6/mysqld.pid # mv /etc/my.cnf /etc/my.cnfbak # cp /usr/local/mysql5.6/my.cnf /etc/my.cnf # vim /etc/profile export MYSQL_HOME="/usr/local/mysql5.6/" export PATH="$PATH:$MYSQL_HOME/bin" # source /etc/profile

6、开启mysql进程

法一、
# cp /usr/local/mysql5.6/support-files/mysql.server /etc/init.d/mysql5.6 # chkconfig --add mysql5.6 # chkconfig mysql5.6 on # service mysql5.6 start
法二、
# /usr/local/mysql5.6/bin/mysqld_safe --user=mysql --defaults-file=/usr/local/mysql5.6/my.cnf --datadir=/data/mysql5.6/ --basedir=/usr/local/mysql5.6/ &

7、新建远程用户并修改密码

# ln -s /data/mysql5.6/mysql.sock /tmp/mysql.sock # /usr/local/mysql5.6/bin/mysql -uroot -P3307 mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; mysql> update mysql.user set password=password('password') where User="root" and Host="localhost"; mysql> update mysql.user set password=password('password') where User="root" and Host="127.0.0.1"; mysql> update mysql.user set password=password('password') where User="root" and Host="hostname"; mysql> update mysql.user set password=password('password') where User="root" and Host="::1"; mysql> flush privileges;

附、一键安装脚本

#!/bin/bash #=======================================================================# # System Supported: CentOS 6+、7+ # # Description: mysql linux generic version Auto Installer # # Author: Doubles <doubles159@163.com> # # Date: 2018-01-26 # #=======================================================================# GROUP_NAME=mysql USER_NAME=mysql MYSQLDB_BASE_HOME="/usr/local/mysql" MYSQLDB_DATA_HOME="/data/mysql" MYSQLDB_PORT=3307 MYSQL_VERSION="mysql-5.6.37-linux-glibc2.12-x86_64" VERSION_NUM=`echo $MYSQL_VERSION|awk -F - '{print $2}'` MYSQL_START_SCRIPTNAME=mysql ERROR_EXIT=65 #============================== # Function--> echo motd #============================== Echo_motd() { echo "#=======================================================================#" echo "# Setup $MYSQL_VERSION on your system. #" echo "# You will input mysql's root password later. #" echo "#=======================================================================#" sleep 1 } #============================== # Function--> add user and group #============================== Add_user() { # check if user is root if [ $(id -u) != "0" ];then echo "Error: You must be root to run this script!" exit 1 fi # addGroup if [ -z $(cat /etc/group|awk -F: '{print $1}'| grep -w "$GROUP_NAME") ] then groupadd -g 27 $GROUP_NAME if(( $? == 0 )) then echo "group $GROUP_NAME add sucessfully!" fi else echo "$GROUP_NAME is exsits" fi # addUser if [ -z $(cat /etc/passwd|awk -F: '{print $1}'| grep -w "$USE_NAME") ] then adduser -u 27 -g $GROUP_NAME $USER_NAME if (( $? == 0 )) then echo "user $USER_NAME add sucessfully!" fi else echo "$USER_NAME is exsits" fi } #============================== # Function-->download mysql #============================== Down_mysql() { # download mysql rm -rf /tmp/${MYSQL_VERSION}* wget https://dev.mysql.com/get/Downloads/MySQL-5.6/${MYSQL_VERSION}.tar.gz -P /tmp if(( $? == 0 )) then echo "MySQL DownLoad sucessfully!" else echo "MySQL DownLoad failed!" exit $ERROR_EXIT fi } #============================== # Function-->create basedir and datadir #============================== Add_dir() { cd /tmp tar xzvf ${MYSQL_VERSION}.tar.gz # if the basedir ${MYSQLDB_BASE_HOME} is exsits..... if [ -d "${MYSQLDB_BASE_HOME}" ] then echo "The basedir ${MYSQLDB_BASE_HOME} is exsits" DIR_NUM=1 MYSQLDB_BASE_HOME_TMP="${MYSQLDB_BASE_HOME}-$VERSION_NUM" MYSQLDB_DATA_HOME_TMP="${MYSQLDB_DATA_HOME}-$VERSION_NUM" MYSQL_START_SCRIPTNAME_TMP="${MYSQL_START_SCRIPTNAME}-$VERSION_NUM" MYSQLDB_PORT=$((MYSQLDB_PORT + 1)) while [ -d $MYSQLDB_BASE_HOME_TMP ] do echo "The basedir ${MYSQLDB_BASE_HOME_TMP} also exsits" MYSQLDB_BASE_HOME_TMP="${MYSQLDB_BASE_HOME_TMP}_${DIR_NUM}" MYSQLDB_DATA_HOME_TMP="${MYSQLDB_DATA_HOME_TMP}_${DIR_NUM}" MYSQL_START_SCRIPTNAME_TMP="${MYSQL_START_SCRIPTNAME_TMP}_${DIR_NUM}" DIR_NUM=$((DIR_NUM + 1)) done MYSQLDB_BASE_HOME=$MYSQLDB_BASE_HOME_TMP MYSQLDB_DATA_HOME=$MYSQLDB_DATA_HOME_TMP MYSQL_START_SCRIPTNAME=$MYSQL_START_SCRIPTNAME_TMP mv ${MYSQL_VERSION} ${MYSQLDB_BASE_HOME} else mv ${MYSQL_VERSION} ${MYSQLDB_BASE_HOME} fi # if the datadir ${MYSQLDB_DATA_HOME} is exsits..... if [ -d "${MYSQLDB_DATA_HOME}" ] then echo "The datadir $MYSQLDB_DATA_HOME also exsits,please modify the datadir..." exit $ERROR_EXIT else mkdir -p ${MYSQLDB_DATA_HOME} fi # add privileges to the basedir and datadir chown -R $USER_NAME:$GROUP_NAME ${MYSQLDB_BASE_HOME} chown -R $USER_NAME:$GROUP_NAME ${MYSQLDB_DATA_HOME} } #============================== # Function-->install mysql #============================== Install_mysql() { yum install -y perl-Module-Install.noarch # initialize the mysql ${MYSQLDB_BASE_HOME}/scripts/mysql_install_db --user=$USER_NAME --datadir=${MYSQLDB_DATA_HOME} --basedir=${MYSQLDB_BASE_HOME} if(( $? == 0 )) then echo "MySQL Initialize sucessfully!" else echo "MySQL Initialize failed!" exit $ERROR_EXIT fi # modify the my.cnf cd ${MYSQLDB_BASE_HOME} if [ -s my.cnf ];then echo "the my.cnf is exsits,it will be overwrite!" echo " [mysqld] basedir = $MYSQLDB_BASE_HOME datadir = $MYSQLDB_DATA_HOME port = $MYSQLDB_PORT socket = ${MYSQLDB_DATA_HOME}/mysql.sock innodb_file_per_table=1 default-storage-engine=INNODB explicit_defaults_for_timestamp=true symbolic-links=0 max_connections=1000 [mysqld_safe] log-error=${MYSQLDB_DATA_HOME}/mysqld.log pid-file=${MYSQLDB_DATA_HOME}/mysqld.pid" >./my.cnf fi [ $? -eq 0 ] && echo "my.cnf created successfull!!" # add the bin to the path echo "add the $MYSQLDB_BASE_HOME/bin to the path!" cat >> /etc/profile <<EOF export PATH="$PATH:${MYSQLDB_BASE_HOME}/bin" EOF source /etc/profile } #============================== # Function-->start mysql #============================== Start_mysql() { # add the service to the system service directory echo "Add the service to the system as mysql5.6,you can start the service by the command 'service mysql5.6 start' !" cp ${MYSQLDB_BASE_HOME}/support-files/mysql.server /etc/init.d/$MYSQL_START_SCRIPTNAME sed -i "s!^basedir=.*!basedir=$MYSQLDB_BASE_HOME!g" /etc/init.d/$MYSQL_START_SCRIPTNAME sed -i "s!^datadir=.*!datadir=$MYSQLDB_DATA_HOME!g" /etc/init.d/$MYSQL_START_SCRIPTNAME # add to the system service control and it will auto start when the system restart! chkconfig --add $MYSQL_START_SCRIPTNAME chkconfig $MYSQL_START_SCRIPTNAME on service $MYSQL_START_SCRIPTNAME start } #============================== # Function-->create mysql's user and set password #============================== Create_user() { # add the symbol link for the mysql.sock ln -s ${MYSQLDB_DATA_HOME}/mysql.sock /tmp/mysql.sock if(( $? == 0 )) then MYSQL_CONNECT_PARAMETER="-uroot -t" else MYSQL_CONNECT_PARAMETER="-uroot -t -S ${MYSQLDB_DATA_HOME}/mysql.sock" fi # create mysql's user and set root's password read -p "Input Default Mysql user root's password: " MYSQL_PASSWORD HOST_NAME=`hostname` ${MYSQLDB_BASE_HOME}/bin/mysql $MYSQL_CONNECT_PARAMETER <<EOF select Host,User,Password from mysql.user; CREATE USER 'root'@'%' IDENTIFIED BY '$MYSQL_PASSWORD'; GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' WITH GRANT OPTION; update mysql.user set password=password('$MYSQL_PASSWORD') where User="root" and Host="localhost"; update mysql.user set password=password('$MYSQL_PASSWORD') where User="root" and Host="127.0.0.1"; update mysql.user set password=password('$MYSQL_PASSWORD') where User="root" and Host="::1"; update mysql.user set password=password('$MYSQL_PASSWORD') where User="root" and Host="$HOST_NAME"; delete from mysql.user where user=''; flush privileges; select Host,User,Password from mysql.user; EOF } #============================== # Function-->main function,the entrance of the script #============================== Main() { Echo_motd; Add_user; Down_mysql; Add_dir; Install_mysql; Start_mysql; Create_user; } Main;
转载请注明原文地址: https://www.6miu.com/read-2629016.html

最新回复(0)