+++++++++++++++++++++++++++++++++++++++++++
标题: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

最新文章

  1. 【Beta】Daily Scrum Meeting第七次
  2. PHP 实现单一入口 apache配置
  3. scales小谈grunt
  4. Eclipse新建web项目正常启动tomcat不报错,但不能访问项目的解决方法
  5. JSP 数据库连接类 MySql数据库
  6. 【uTenux实验】任务管理
  7. (引用)web安全测试
  8. 关于VC、MFC和ACCESS的一些使用问题
  9. tornado框架之路二
  10. OC编写使用调试器
  11. MongoDB Enterprise提供的服务
  12. vs2015 Xamarin.Android安装
  13. hdu4393 Throw nails(只用模拟前面500来次,后面根据速度、位置、id值排序即可)
  14. Makfile文件编写
  15. 10.0.0.55训练赛 Writeup
  16. Android线程间通信机制——深入理解 Looper、Handler、Message
  17. [转]MTK6252 11B添加模块、task实例
  18. composer 重装常见错误
  19. 图数据库cayley+mongo的起航之旅
  20. (转)python的ConfigParser模块

热门文章

  1. [Redux] redux之combineReducers
  2. 使用DataSet與DataAdapter對數據庫進行操作
  3. Spring Boot使用AOP在控制台打印请求、响应信息
  4. JavaScript 代码简洁之道
  5. SQL Server中几种遍历方式比较
  6. 博弈论入门之nim游戏
  7. RecycleView设置顶部分割线(记录一个坑)
  8. Visual Studio无法调试
  9. Yapi部署说明
  10. CAP理论和Base理论