首页 > 数据库 >Centos7 编译安装MySQL-5.6

Centos7 编译安装MySQL-5.6

时间:2023-09-20 19:14:00浏览次数:45  
标签:bin 5.6 -- MySQL Centos7 mysqld usr mysql local

 

 

 

CMAKE编译安装

编译命令

  • make 读取makefile里面的指令,编译程序,makefile文件里调用gcc命令去编译源文件
  • cmake命令也是一个编译命令,用于一些跨平台的编译设置

编译步骤

编译安装需要下载源码包、可以定制化编译参数,路径等信息,缺点就是对新手不友好。

 

# 编译参数如下
tar zxf mysql-5.6.20.tar.gz
cd mysql-5.6.20
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 && make && make install && ln -svf /usr/local/mysql/bin/* /usr/local/bin/



#提示,编译时可配置的选项很多,具体可参考本章最后一部分的内容或官方文档。
make
make install

 

 

 

 

 

#!/bin/bash

yum install ncurses-devel libaio-devel -y
yum install cmake -y
yum -y install gcc-c++


groupadd mysql && useradd mysql -g mysql -M -s /sbin/nologin
tar xf mysql-5.6.39.tar.gz
cd mysql-5.6.39
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 && make && make install && ln -svf /usr/local/mysql/bin/* /usr/local/bin/
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
/bin/cp -vf support-files/*.cnf /etc/my.cnf

 

初始化数据库

这一步得到数据库初始化的数据文件

这一步会出现两个OK选项,以及其他日志信息,不得出现error等信息,则表示初始化出问题

出现两个ok表示 初始化成功

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql

 

检查数据文件夹
看到如下数据目录,表示mysql初始化完成
 cd /usr/local/mysql/data/
 ll
total 110724
-rw-rw---- 1 mysql mysql 12582912 Jun 30 12:21 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Jun 30 12:21 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Jun 30 12:21 ib_logfile1
drwx------ 2 mysql mysql     4096 Jun 30 12:21 mysql //存放mysql核心数据
drwx------ 2 mysql mysql     4096 Jun 30 12:21 // 有关性能的库performance_schema
drwxr-xr-x 2 mysql mysql     4096 Jun 30 09:37 test //测试数据库

 

启动mysql

配置mysql启动脚本

 

启动脚本

 

[ -f /etc/init.d/functions ] && source /etc/init.d/functions
bindir="/usr/local/mysql/bin"
datadir="/usr/local/mysql/data"
mysqld_pid_file_path="/usr/local/mysql/`hostname`.pid"
PATH="/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin" #此步对开机启动及定时启动及其关键。
export PATH
return_value=0


# Lock directory.
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql"

log_success_msg(){ 
    echo " SUCCESS! $@" # 注意函数的缩进,下同,也是专业的表现,可放到functions里。
}   
log_failure_msg(){     
    echo " ERROR! $@"
}  

# Start Func
start(){
    # Start daemon
    echo "Starting MySQL"
    if test -x $bindir/mysqld_safe  # 启动文件是否可执行。
    then
        $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path"  >/dev/null &
        return_value=$? # 是否处理好返回值是区别脚本是否专业规范的关键。
        sleep 2

        # Make lock for CentOS
        if test -w "$lockdir"   # 锁目录是否可写。
        then
            touch "$lock_file_path"  # 创建锁文件。
        fi
        exit $return_value
    else
        log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"
    fi
}
# Stop Func
stop(){
    if test -s "$mysqld_pid_file_path" # 是否PID文件存在并大小大于0。
    then
        mysqld_pid=`cat "$mysqld_pid_file_path"`

        if (kill -0 $mysqld_pid 2>/dev/null) # 检查PID对应的进程是否存在。
        then
            echo "Shutting down MySQL"
            kill $mysqld_pid  # 不能带-9,否则后果自负。
            return_value=$?
            sleep 2
        else
            log_failure_msg "MySQL server process #$mysqld_pid is not running!"
            rm -f "$mysqld_pid_file_path"
        fi
        # Delete lock for Oldboy's CentOS
        if test -f "$lock_file_path"
        then
            rm -f "$lock_file_path"
        fi
        exit $return_value
    else
        log_failure_msg "MySQL server PID file could not be found!"
    fi
}
case "$1" in
    start)            
        start
        ;;
    stop)
        stop
        ;;
    restart)
        if $0 stop; then
           $0 start
        else
           log_failure_msg "Failed to stop running server, so refusing to try to start."
           exit 1
        fi
        ;;

    *)
        echo "Usage: $0  {start|stop|restart}"
        exit 1
esac
exit $return_value #是否处理好返回值是区别脚本是否专业规范的关键。

 

启动mysql自动生成的管理脚本

cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

 

chmod 700 /etc/init.d/mysqld

 启动mysql

cp -a /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

 

 /etc/init.d/mysqld status
 ERROR! MySQL is not running

 

/etc/init.d/mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/VM-7-185-centos.err'.
 SUCCESS! 

ps aux |grep mysql
root     31820  0.0  0.0 106244  1420 pts/1    S    12:18   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/VM-7-185-centos.pid
mysql    31928  6.0 23.4 1339780 450424 pts/1  Sl   12:18   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=VM-7-185-centos.err --pid-file=/usr/local/mysql/data/VM-7-185-centos.pid
root     31958  0.0  0.0 103328   944 pts/1    S+   12:18   0:00 grep --color mysql

 

 

初始化

 

/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql_master/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_master/data/ --user=mysql

 

标签:bin,5.6,--,MySQL,Centos7,mysqld,usr,mysql,local
From: https://www.cnblogs.com/mingerlcm/p/14947999.html

相关文章

  • MySQL存储引擎架构深入探讨
    前言MySQL是目前最流行的关系型数据库之一,其存储引擎架构是其核心特性之一。本文将深入探讨MySQL存储引擎架构,包括InnoDB、MyISAM、Memory等常见存储引擎的特点和使用场景。InnoDBInnoDB是MySQL的默认存储引擎,也是最常用的存储引擎之一。它支持事务、行级锁、外键等特性,适合于高......
  • [SpringSecurity5.6.2源码分析十二]:CsrfFilter
    前言• Csrf(跨站伪造请求):指的是用户在A网站认证完成后,A网站Cookie保存在了浏览器中,然后用户在B网站点击了钓鱼链接,使其让钓鱼请求带有了A网站的Cookie,从而让A网站认为这是一次正常的请求• 而SpringSecurity采用的是同步令牌模式(SynchronizerTokenPattern)来预防Csrf攻击•......
  • centos7 环境下yum安装openldap
    1.安装相关openldap的软件yum-yinstallopenldapopenldap-serversopenldap-clientsopenldap-develcompat-openldap2.openldap相关的文件配置/etc/openldap/slapd.conf:OpenLDAP的主配置文件,记录根域信息,管理员名称,密码,日志,权限等/etc/openldap/slapd.d/:这下面是/etc/o......
  • Mysql 定时任务删除过期数据
    1、查看数据库是否开启定时调度SHOWVARIABLESLIKE'event_scheduler';//查看OFF为关SETGLOBALevent_scheduler=ON;//设置开启,重启后失效防止重启后失效设置my.cnf,Linux一般在/etc/my.cnf,在[mysqld]下增加event_scheduler=ON//重启后生效 2、执行命令DROPevent......
  • phpstudy无法启动mysql(启动之后立马关闭)
    好久没有打开本地环境,直到昨天打开phpstudy,正常启动,但是在任务管理器中发现没有mysql服务于是在mysql的bin目录下执行.\mysqld.exe--install  mysql服务是有了,但这个问题就来了重启phpstudy无法启动mysql注意:在此之前注意备份mysql数据,查看现在设置的mysql密码,以便本地项......
  • MySQL高级12-事务原理
    一、事务概念事务是一组操作的集合,他是一个不可分割的工作单位,事务会把所有操作作为一个整体一起向系统提交或者撤销请求操作,即这些操作要么同时成功,要么同时失败。二、事务特性原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败一致性(Consistency):事......
  • mysql数据库服务双主搭建
    mysql数据库服务双主搭建1、搭建两台数据库服务环境,master,slave数据库搭建参考:https://www.cnblogs.com/zuouncle/p/17713806.html2、查看服务运行状态systemctlstatusmysqld 3、主库1(master)配置配置mysql的启动配置文件vim/etc/my.cnf#开启binlog日志log......
  • mysql 行级锁应用
    当在MySQL中需要实现从scheduler_task表中选择一个status='todo'的任务,并将其状态设置为"ongoing"和worker_id设置为"1",同时确保线程安全并返回该任务的信息时,我们需要使用行级锁来实现。介绍在多线程环境下,当多个线程同时执行数据库操作时,可能会出现并发冲突的情况。为了确保线......
  • Mysql中如何批量更新数据库中某个字段值中的部分内容;
    在平时的开发过程中,偶尔会遇到需要批量更新数据库中某个字段值的部分内容,比如某个字段存储的是图片的URL路径,这个路径中的域名无法访问了,需要更新为另一个ip地址。Mysql中提供了REPLACE函数:可以使用了REPLACE函数来替换原来字段中的一部分数据为新值。UPDATEcar_data_hisSETc......
  • MySQL的字段数量以及长度限制
    一、InnoDB行格式行格式紧凑的存储特性增强的可变长度列存储大型索引键前缀支持压缩支持支持的表空间类型REDUNDANTNNNNsystem,file-per-table,generalCOMPACTYNNNsystem,file-per-table,generalDYNAMICYYNNsystem,file-per-table,gener......