RHEL 6.5 编译安装mysql 5.6

本文包含了RHEL编译安装5.6 和 5.7的全部过程。


1. 如果需要重新变异, 清理CMakeCache.txt文件。 并运行CMAKE



2. BOOST库支持
首先删除BOOST库yum install -y boost.x86_64
然后需要指向到安装包里面的boost库目录


3. ncurses库支持 yum search ncurses


4.   5.7编译cmake要求版本最低为2.8,需要重新安装CMAKE
首先删除 yum reinstall cmake
然后手动变异安装cmake


5. 其他组件相关:基本组件
yum install gcc gcc-c++ -y
yum install -y ncurses-devel.x86_64
yum install -y libaio.x86_64
yum install -y bison.x86_64
yum install -y gcc-c++.x86_64
yum install -y libtoo*
yum install -y automake


5.1  安装jemalloc,优化步骤
cd /app/source
wget http://www.canonware.com/download/jemalloc/jemalloc-4.1.1.tar.bz2
tar  xjf  jemalloc-4.1.1.tar.bz2
cd jemalloc-3.6.0
./configure
make && make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig


ldconfig -p | grep jemalloc


5.2 安装cmake
   cd cmake-2.8.9
   ./configure 
   make -j 12
   make -j 12 install
   cmake --version


5.3 Hugepages配置
/etc/sysctl.conf


###add for hugepages,系统一共64G内存, 50G内存给mysql使用, 保留14G给操作系统使用
vm.nr_hugepages=25600
vm.swappiness=1


cat /etc/security/limits.conf
* soft memlock 52539381
* hard memlock 52539381






6. 快速make 
 make -j `grep processor /proc/cpuinfo  |wc -l` 
 
7. 添加用户
useradd mysql1
useradd mysql2


echo 'mysql#123' | passwd  --stdin mysql1
echo 'mysql#123' | passwd  --stdin mysql1


7.1 磁盘挂载参数


pvcreate /dev/xvdf
vgcreate datavg /dev/xvdf
lvcreate -L 480G -n mysqldata datavg
mkfs.ext4 /dev/datavg/mysqldata


###########挂载参数优化
mount /dev/datavg/mysqldata /mysqldata -o rw,noatime,nodiratime,nobarrier,data=ordered -t ext4


7.2 建立目录
mkdir -p /mysqldata/mysql1/log
mkdir -p /mysqldata/mysql1/bin
mkdir -p /mysqldata/mysql1/data
mkdir -p /mysqldata/mysql1/run
mkdir -p /mysqldata/mysql1/bin/mysql-bin
chown -R mysql1:mysql1 /mysqldata/mysql1


 
8. 编译配置
8.1 注意反斜杠后面不能有空格\反斜杠后面必须接回车
8.2 MySQL5.7编译参数设置


主库参数---:
/usr/local/bin/cmake \
-DWITH_BOOST=/ecs/mysql-5.7.12/boost/ \
-DCMAKE_INSTALL_PREFIX=/home/mysql1/mysql  \
-DMYSQL_DATADIR=/mydata/mysql1/data  \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/mysqldata/mysql1/run/mysql.sock \
-DMYSQL_TCP_PORT=3301 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled 


备库参数---:
/usr/local/bin/cmake \
-DWITH_BOOST=/ecs/mysql-5.7.12/boost/ \
-DCMAKE_INSTALL_PREFIX=/home/mysql2/mysql  \
-DMYSQL_DATADIR=/mydata/mysql2/data  \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/mysqldata/mysql2/run/mysql.sock \
-DMYSQL_TCP_PORT=3301 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled 


8.2 MySQL5.6编译参数设置
/usr/local/bin/cmake \
-DCMAKE_INSTALL_PREFIX=/home/mysql3/mysql  \
-DMYSQL_DATADIR=/mydata/mysql3/data  \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/mysqldata/mysql3/run/mysql.sock \
-DMYSQL_TCP_PORT=3301 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled 


8.3 初始化MySQL数据库


./mysql_install_db --basedir=/home/mysql1/mysql --datadir=/mysqldata/mysql1/data --user=mysql1 --skip-name-resolve 
./mysql_install_db --basedir=/home/mysql2/mysql --datadir=/mysqldata/mysql2/data --user=mysql2 --skip-name-resolve 


8.4 启动MySQL
/home/mysql1/mysql/bin/mysqld_safe --defaults-file=/etc/my1.cnf --user=mysql1  --datadir=/mysqldata/mysql1/data &
/home/mysql2/mysql/bin/mysqld_safe --defaults-file=/etc/my2.cnf --user=mysql2  --datadir=/mysqldata/mysql2/data &


8.5 改root密码:
/home/mysql1/mysql/bin/mysqladmin -S /mysqldata/mysql1/run/mysql.sock -u root password 'root123'
/home/mysql2/mysql/bin/mysqladmin -S /mysqldata/mysql2/run/mysql.sock -u root password 'root123'
============================mysql  for   5.6 ==================================


9. 初始化mysql5.7 数据库


9.1 主库        
###有效初始化启动方法#
bin/mysqld  --initialize --user=mysql1 --basedir=/home/mysql1/mysql --datadir=/mysqldata/mysql1/data 
bin/mysqld_safe --defaults-file=/etc/my1.cnf --user=mysql1  --datadir=/mysqldata/mysql1/data &


###初始化以后需要改变生成的随机root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
flush privileges;


############最终初始化和启动结果t######################
bin/mysqld --defaults-file=/etc/my1.cnf --initialize --user=mysql1 --basedir=/home/mysql1/mysql --datadir=/mysqldata/mysql1/data
bin/mysqld_safe --defaults-file=/etc/my1.cnf --user=mysql1  --datadir=/mysqldata/mysql1/data &
############最终初始化和启动结果t######################


9.2 备库
mkdir -p /mysqldata/mysql2/log
mkdir -p /mysqldata/mysql2/bin
mkdir -p /mysqldata/mysql2/data
mkdir -p /mysqldata/mysql2/run
mkdir -p /mysqldata/mysql2/bin/mysql-bin


chown -R mysql2:mysql2 /mysqldata/mysql2


#####初始化并启动备库
bin/mysqld  --initialize --user=mysql --basedir=/home/mysql/mysql1 --datadir=/mysqldata/mysql2/data 
bin/mysqld_safe --defaults-file=/etc/my2.cnf --user=mysql2  --datadir=/mysqldata/mysql2/data &






10.2 jemalloc优化到mysql
sed -i 's@executing mysqld_safe@executing mysqld_safe\nexport LD_PRELOAD=/usr/local/lib/libjemalloc.so@'  ./mysqld_safe
lsof -n | grep malloc




10.#######系统禁用THP


########THP说明############
 Transparent HugePages memory is enabled by default with Red Hat Enterprise Linux 6, SUSE Linux Enterprise Server 11, and Oracle Linux 6 with earlier releases of Oracle Linux Unbreakable Enterprise Kernel 2 (UEK2) kernels. Transparent HugePages memory is disabled in later releases of Oracle Linux UEK2 kernels.


Transparent HugePages can cause memory allocation delays during runtime. To avoid performance issues, Oracle recommends that you disable Transparent HugePages on all Oracle Database servers. Oracle recommends that you instead use standard HugePages for enhanced performance.


Transparent HugePages memory differs from standard HugePages memory because the kernel khugepaged thread allocates memory dynamically during runtime. Standard HugePages memory is pre-allocated at startup, and does not change during runtime.
o check if Transparent HugePages memory is enabled, run one of the following commands as the root
########THP说明############


cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never> /sys/kernel/mm/redhat_transparent_hugepage/enabled


cat /sys/kernel/mm/redhat_transparent_hugepage/defrag 
echo never >  /sys/kernel/mm/redhat_transparent_hugepage/defrag 




echo 'echo never> /sys/kernel/mm/redhat_transparent_hugepage/enabled' >> /etc/rc.local
echo 'echo never >  /sys/kernel/mm/redhat_transparent_hugepage/defrag '>> /etc/rc.local








11. 主从配置:


11.1 主库建立复制账号:
grant replication slave on *.* to 'repl_bcdb'@'%' identified by 'Br13j_Hhrhl';
flush privileges;


主库查看当前状态:
初始化主库,清理所有bin-log日志
reset master;
show master status;




11.2 从库
change master to 
master_host='10.143.22.202',
MASTER_PORT=3301,
master_user='repl_bcdb',
master_password='Br13j_Hhrhl',
master_log_file='mysql-bin.000001',
master_log_pos=120;




start slave;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值