MySql5.7源码安装

在5.7以后安装cmake的时候必须指定-DWITH_BOOST的目录,在下载MySql源码时候包括带boost和不带boost的源码

  1. 不含有boost的时候,需要自己单独下载boost,解压,cmake的时候指定 -DWITH_BOOST=(解压后的boost)
  2. 含有boost,此时boot已经在MySql源码包中,不需要单独下载,cmake的时候指定-DWITH_BOOST=boost即可

boost下载地址
MySql5.7源码安装_第1张图片

本文以含有boost MySql源码安装

安装环境

使用Mysql mysql-boost-5.7.24;
使用Linux CentOS-7-x86_64-DVD-1804

安装目录结构

mysql安装实例my3306目录结构如下:

/u01/my3306--------------------------------------- 项目名
      ├─data------------------------------------------ 数据
      ├─log-------------------------------------------- 日志
            ├─iblog------------------------------------- innodb存储引擎日志
                  ├─ib_logfile0------------------------- innodb引擎自己的日志
                  ├─idbdata----------------------------- 数据字典
            ├─binlog------------------------------------ Server日志(sql语句的操作)
            ├─slow.log---------------------------------- 满日志
       ├─my.cnf--------------------------------------- 生成
       ├─run-------------------------------------------- 生成
            ├─mysqld.pid------------------------------
            ├─mysql.sock------------------------------
       ├─tmp--------------------------------------------


1.1 系统优化

1.1.1 关闭防火墙

CentOS7查看和关闭防火墙

1.1.2 检查操作系统上是否安装了MySQL
#查看是否已经有mysql:
[root@localhost ~]#  rpm -qa|grep mysql

#如果linux上已经安装过mysql删除mysql:
[root@localhost ~]#   yum remove mysql*   
或者   
[root@localhost ~]#   rpm -e mysql****

1.2下载mysql源码包解压

#创建目录
[root@localhost ~]# mkdir -p /u01/mysql   

#切换到u01目录下
[root@localhost ~]# cd /u01

#下载mysql
[root@localhost u01]#  wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz

#解压
[root@localhost u01]# tar -zxvf mysql-5.7.24.tar.gz 

解压后的文件
在这里插入图片描述

手动下载MySQL源码包下载MySQL安装包

1.3 添加用户和组

#添加mysql组
[root@localhost u01]# groupadd mysql

#新建用户
[root@localhost u01]# useradd -d /home/mysql -g mysql -m mysql

#设置密码
[root@localhost u01]# passwd mysql

#查看用户
[root@localhost u01]id mysql

对命令不熟悉可以看Linux常用命令—groupadd,useradd(一)

1.4 创建目录和授权

#创建目录
[root@localhost u01]# mkdir -p /u01/my3306/data
[root@localhost u01]# mkdir -p /u01/my3306/log/iblog
[root@localhost u01]# mkdir -p /u01/my3306/log/binlog
[root@localhost u01]# mkdir -p /u01/my3306/run
[root@localhost u01]# mkdir -p /u01/my3306/tmp

#授权
[root@localhost u01]# chown -R mysql:mysql /u01/my3306
[root@localhost u01]# chmod -R 755 /u01/my3306

1.5 安装cmake,make和make install

#安装依赖包
[root@localhost u01]# yum install -y cmake gcc gcc-c++ ncurses-devel bison zlib libxml 
[root@localhost u01]# yum install –y openssl openssl-devel ncurses ncurses-devel
[root@localhost u01]# yum install -y autoconf

#进入mysql-5.7.24目录下
[root@localhost u01]# cd mysql-5.7.24

#cmake文件
[root@localhost mysql-5.7.24]#  cmake \
        -DCMAKE_INSTALL_PREFIX=/u01/my3306 \
        -DINSTALL_DATADIR=/u01/my3306/data  \
        -DDEFAULT_CHARSET=utf8 \
        -DDEFAULT_COLLATION=utf8_general_ci \
        -DEXTRA_CHARSETS=all \
        -DWITH_SSL=yes \
        -DWITH_EMBEDDED_SERVER=1 \
        -DENABLED_LOCAL_INFILE=1 \
        -DWITH_MYISAM_STORAGE_ENGINE=1 \
        -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
        -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
        -DWITH_FEDERATED_STORAGE_ENGINE=1 \
        -DWITH_PARTITION_STORAGE_ENGINE=1 \
        -DMYSQL_UNIX_ADDR=/u01/my3306/run/mysql.sock \
        -DMYSQL_TCP_PORT=3306 \
        -DENABLED_LOCAL_INFILE=1 \
        -DSYSCONFDIR=/etc \
        -DWITH_BOOST=boost \
        -DWITH_READLINE=on
        
#编译
[root@localhost mysql-5.7.24]#  make

#安装到指定目录/u01/my3306中。
[root@localhost mysql-5.7.24]#  make install

如果报错请看Linux下MySQL源码安装安装常见错误

1.6 MySQL参数配置

#进入my3306目录中
[root@localhost mysql-5.7.24]# cd ../my3306/

#在my3306中创建my.cnf配置文件,添加如下内容
[root@localhost my3306]# vim my.cnf

-----------------------------------------  具体内容start -----------------------------------------
[client]
port=3306
socket=/u01/my3306/run/mysql.sock

[mysql]
default-character-set=utf8

[mysqld]
autocommit=1
general_log=off
explicit_defaults_for_timestamp=true

# system
basedir=/u01/my3306
datadir=/u01/my3306/data
pid_file=/u01/my3306/run/mysqld.pid
max_allowed_packet=1g
max_connections=3000
max_user_connections=2800
open_files_limit=65535
port=3306
server_id=101
skip_name_resolve=ON
socket=/u01/my3306/run/mysql.sock
tmpdir=/u01/my3306/tmp

#binlog
log_bin=/u01/my3306/log/binlog/binlog
binlog_cache_size=32768
binlog_format=row
expire_logs_days=7
log_slave_updates=ON
max_binlog_cache_size=2147483648
max_binlog_size=524288000
sync_binlog=100

#logging
log_error=/u01/my3306/log/error.log
slow_query_log_file=/u01/my3306/log/slow.log
log_queries_not_using_indexes=0
slow_query_log=1
log_slave_updates=ON
log_slow_admin_statements=1
long_query_time=1

#relay
relay_log=/u01/my3306/log/relaylog
relay_log_index=/u01/my3306/log/relay.index
relay_log_info_file=/u01/my3306/log/relay-log.info

#slave
slave_load_tmpdir=/u01/my3306/tmp
slave_skip_errors=OFF


#innodb
innodb_data_home_dir=/u01/my3306/log/iblog
innodb_log_group_home_dir=/u01/my3306/log/iblog
innodb_adaptive_flushing=ON
innodb_adaptive_hash_index=ON
innodb_autoinc_lock_mode=1
innodb_buffer_pool_instances=8

#default
innodb_change_buffering=inserts
innodb_checksums=ON
innodb_buffer_pool_size= 128M
innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
innodb_doublewrite=ON
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=1000
innodb_lock_wait_timeout=10
innodb_log_buffer_size=67108864
innodb_log_file_size=1048576000
innodb_log_files_in_group=4
innodb_max_dirty_pages_pct=60
innodb_open_files=60000
innodb_purge_threads=1
innodb_read_io_threads=4
innodb_stats_on_metadata=OFF
innodb_support_xa=ON
innodb_use_native_aio=OFF
innodb_write_io_threads=10

[mysqld_safe]
datadir=/u01/my3306/data
----------------------------------   具体内容end ------------------------------------------

#重新分配权限
[root@localhost my3306]# chown -R mysql:mysql /u01/my3306

1.7 初始化MySQL脚本

root@localhost my3306]# ./mysqld --defaults-file=/u01/my3306/my.cnf --initialize --datadir=/u01/my3306/data --user=mysql

老版本的命令:mysql_install_db
新版本的命令:./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

如果报错请看Linux下MySQL源码安装安装常见错误

1.8 启动MySQL

#进入my3306/bin目录
[root@localhost my3306]# cd bin

#启动MySQL
 [root@localhost bin]#  ./mysqld_safe --defaults-file=/u01/my3306/my.cnf --user=mysql &

1.9 登录MySQL

#登录mysql
[root@localhost bin]#   mysql -uroot  -p 

#登录修改密码
mysql>  set password for root@localhost = password('root'); 

#你想root使用root从任何主机连接到mysql服务器的话。
 mysql>  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 
#如果你想允许用户root从ip为192.168.1.3的主机连接到mysql服务器,并使用root作为密码 
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 
    'root' WITH GRANT OPTION; 

1.10 配置MySQL环境变量

 #切换用户,切换到/home/mysql目录
[root@localhost u01]su - mysql 
    
#配置用户mysql环境变量
 [mysql@localhost ~]$ vim .base_profile

MySql5.7源码安装_第2张图片

#使修改的环境变量生效:
[mysql@localhost ~]$ source .bash_profile
    
#退出mysql用户登录,重新用root登录,回到/u01目录下:
[mysql@localhost ~]$ exit

这样以后就能用mysql用户启动了
用mysql用户登录测试
MySql5.7源码安装_第3张图片

1.11 设置开机启动

[root@localhost ~]$ cd /u01/my3306/
[root@localhost my3306]$ cp support-files/mysql.server /etc/init.d/mysql

#添加服务mysql
[root@localhost my3306]$ chkconfig --add mysql

#设置服务开机自启
[root@localhost my3306]$ chkconfig mysql on

#启动服务
[root@localhost my3306]$ service mysql start

你可能感兴趣的:(网络)