zoukankan      html  css  js  c++  java
  • mysql安装

    一. 安装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;
    
    
  • 相关阅读:
    c博客作业05--指针
    C博客作业04--数组
    C博客作业03--函数
    C博客作业02--循环结构
    C博客作业01--分支、顺序结构
    我的第一篇博客
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
  • 原文地址:https://www.cnblogs.com/doublexi/p/8761027.html
Copyright © 2011-2022 走看看