+++++++++++++++++++++++++++++++++++++++++++
标题:MySQL数据库实力部署
时间:2019年3月9日
内容:MySQL源码包进行编译,然后部署MySQL单实例
重点:了解源码包编译过程,重点掌握MySQL单实例部署流程及注意事项
+++++++++++++++++++++++++++++++++++++++++++
1. MySQL源码包编译
1.1 安装编译环境
# yum install -y gcc gcc-c++
# 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 cmake.x86_64 //如果cmake版本过低,卸载低版本,安装高版本的cmake。
# wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
# tar zxvf boost_1_59_0.tar.gz
# mv boost_1_59_0 /usr/local/boost
1.2 编译参数详解
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #mysql编译安装目录
-DMYSQL_DATADIR=/home/mysql3306/mysql3306 #mysql默认数据目录
-DDEFAULT_CHARSET=utf8 #mysql默认编码
-DEXTRA_CHARSETS=all #编译其他编码
-DSYSCONFDIR=/etc #配置文件默认目录
-DENABLED_LOCAL_INFILE=1 #是否允许载入外部数据文件
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock #默认sock文件地址
-DDEFAULT_COLLATION=utf8_general_ci #默认排序规则
-DMYSQL_TCP_PORT=3306 #默认端口
-DMYSQL_USER=mysql #默认用户
-DWITH_MYISAM_STORAGE_ENGINE=1 #引擎支持
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_BOOST=/usr/local/boost #指定c++ boost库的位置
1.3 . MySQL软件编译
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/home/mysql3306/mysql3306 -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DSYSCONFDIR=/etc -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_BOOST=/usr/local/boost
# make
# make install
2. MySQL单实例部署
2.1 配置MySQL安装环境
# useradd -s /sbin/nologin mysql //该用户不需要登录权限
# mkdir -p /data/mysql/mysql
# mkdir -p /data/mysql/logs
# chown -R mysql:mysql /data/mysql
2.2 配置MySQL配置文件
# cp my.cnf /etc/my.cnf
# vim /etc/my3306.cnf
修改配置文件中的与路径相关的参数
port = 3306
socket = /tmp/mysql3306.sock
datadir = /data/mysql/mysql
server-id = 441203306 //MySQL实例的唯一标号
innodb_buffer_pool_size = 256M //实验环境下,根据实际情况分配内存
其他参数则需要根据具体需求进行修改。
2.3 MySQL实例内存分配原则
单实例:建议单独部署在单独的服务器中,分配内存为服务器内存的75%。
多实例:建议核心节点单独部署在单独的服务器中,内存具体分配根据数据库服务器的压力决定。
2.4 MySQL实例初始化
# tar zxvf mysql-5.7.19.el6.tar.gz -C /usr/local/
# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/mysql/ --user=mysql
注意:
--initialize mysql5.7初始化会创建随机密码;--initialize-insecure 初始化启动后没有密码。
MySQL5.6版本的数据库初始化脚本为mysql_install_db;MySQL5.7版本数据库初始化脚本为mysqld。
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
注意:启动时先指定配置文件
# ps -ef |grep mysql
2.5 配置MySQL环境变量
# vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH:$HOME/bin
# source /etc/profile