Centos7源码安装mysql及读写分离,互为主从
Linux服务器 -源码安装mysql 及读写分离,互为主从
一.环境介绍:
Linux版本: CentOS 7 64位
mysq版本: mysql-5.6.26
这是我安装时所使用的版本,并不是必须的,您可以Red Hat/CentOS 7以及mysql5.6相近的版本
源码安装mysql的运行效率比使用rpm安装的更高, 所以推荐使用源码安装mysql(不过源码安装mysql耗时较久,大约30分钟)
以下都是在实际的工作学习中实践出来,不对的地方请大家指出
二.安装:
1, 安装cmake(mysql编译工具)
- #先安装相关工具(依赖包):
- yum install -y gcc gcc-c++ git ncurses-devel
- yum install -y cmake
yum install 在线安装, 需要连接外网时是才可用,
参数-y 表示安装时自动执行 yes, 即不会再询问您是否安装, -y是yum的参数, 也可放在install前面.

至此cmake编译工具安装成功!
2,准备工作:
- groupadd mysql #创建mysql用户组
- useradd -g mysql mysql -s /sbin/nologin #创建mysql用户,加入mysql组中,并且禁止mysql用户登录系统
- mkdir -p /alidata/server/mysql #创建mysql安装目录
- mkdir -p /alidata/data/mysql #创建mysql数据库存放目录
- chown -R mysql:mysql /alidata/data/mysql #设置mysql数据库存放目录权限
3, 获取mysql源码
http://mysql.mirror.kangaroot.net/Downloads, 您可以这个网站中选择您所需要的mysql版本, 我选择的是mysql-5.6.26, 使用wget下载到linux中
- cd /alidata/server/source #此目录随意
- wget http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.6/mysql-5.6.26.tar.gz #下载
- tar -zxvf mysql-5.6.26.tar.gz #解压
- cd mysql-5.6.26 #进入源码目录
- 使用cmake编译:
- cmake . -DCMAKE_CXX_COMPILER="g++" -DCMAKE_INSTALL_PREFIX=/alidata/server/mysql -DMYSQL_DATADIR=/alidata/data/mysql -DSYSCONFIGDIR=/etc
- #参数解析:
- -DCMAKE_CXX_COMPILER 指定编译器
- -DCMAKE_INSTALL_PREFIX 指定安装文件目录
- -DMYSQL_DATADIR 指定mysql数据库文件目录
- -DSYSCONFIGDIR 指定mysql配置文件目录
执行无误后,则再执行以下命令:
make
make install
无报错则安装成功, 此时还无法正常使用, 需作如下配置:
三.配置:
- rm -rf /etc/my.cnf #删除系统默认的配置文件
- cd /alidata/server/mysql #进入安装目录
- yum install -y perl-Module-Install.noarch
- scripts/mysql_install_db --user=mysql --basedir=/alidata/server/mysql --datadir=/alidata/data/mysql #初始化系统数据库
- ln -s /alidata/server/mysql/my.cnf /etc/my.cnf #添加mysql配置文件的软链接
- vim /etc/my.cnf,在[mysqld]后添加character-set-server=utf8 #设置mysql默认字符集
- cp ./support-files/mysql.server /etc/init.d/mysqld #把mysql加入系统启动
- chmod 775 /etc/init.d/mysqld #添加执行权限
- chkconfig mysqld on 将mysql服务设置成开机自启动
修改/etc/init.d/mysqld文件
vim /etc/init.d/mysqld
#找到basedir和datadir, 改成
basedir=/alidata/server/mysql
datadir=/alidata/data/mysql
:wq #保存并退出
#启动mysql:
service mysqld start
修改/etc/profile文件
- vim /etc/profile
- #在最低下添加如下配置:
- export PATH=/alidata/server/mysql/bin:$PATH
- :wq #保存并退出
- source /etc/profile #使配置生效
以下将mysql库文件链接到系统默认文件, 在编译php等软件时就可以不用指定mysql库目录了
- ln -s /alidata/server/mysql/lib/mysql /usr/lib/mysql
- ln -s /alidata/server/mysql/include/mysql /usr/include/mysql
- mkdir -p /var/lib/mysql
- ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #此文件是创建与mysqld服务器相关的MySQL通信端点所使用的套接字,放至默认文件夹,安装php时不会报错
设置mysql root密码
执行:
mysql_secure_installation
按提示输入root用户密码


创建mysql新用户, 通常程序并不直接连接root用户, root用户也不对远程可访问,所有另外创建用户来连接
mysql -uroot -p #进入mysql,输入刚设置的密码 #创建一个用户
grant all privileges on *.* to '用户名' @'%' identified by '密码' with grant option; #创建一个对所有库所有表有所有操作权限的用户
解析:
all privileges 代表所有权限,也可写具体某一个或多个(多个用,隔开即可),
所有权限有:select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限
on *.*
第一个*代表数据库,第二个*代表该库上的表, *表示全部
如test数据库下oa表就是 on text.oa
to '用户名' 即将前面的权限赋给此用户
@'%'
此%是指用户地址, 可以是localhost,用户ip, 域名, %
填localhost则只能本机访问,
填用户ip, 则只有指定的这个ip才可以使用此用户登录访问,
%表示任何地址
by '密码' 必填项
with grant option(可选)
表示被创建的用户同样可以创建其他用户并赋权限
flush privileges; #写入
#退出ctrl+c
service mysqld restart
至此, 源码安装mysql已经完毕.
实现读写分离-主从复制(从复制主)
如果是互为主从就 住从授权给主,在配置主的 复制操作
配置文件



mysql -uroot -p
授权个从服务器,可复制主的数据
GRANT REPLICATION SLAVE ON *.* to ‘mysync’@‘%’ identified by ‘123456';
//一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.134.145,加强安全
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 250 | |
| +------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
配置从服务器,设置向主服务器连接的参数
mysql>change master to master_host='192.168.134.144',master_user=‘mysync',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=250;
//注意不要断开,“250”无单引号。
Mysql>start slave; //启动从服务器复制功能
查看状态

注意:
auto.cnf 的uuid应该是不一样的。
[auto]
server-uuid=6dcee5be-8cdb-11e2-9408-90e2ba2e2ea6
如果是互为主从
在通过keepalived 实现高可用,其中一台挂了 也没有关系,在起来即可 数据不会丢失,启动之后数据会同步回来 保持一致、
Centos7源码安装mysql及读写分离,互为主从的更多相关文章
- centos 6x系统下源码安装mysql操作记录
在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...
- lnux下源码安装MySQL 5.6
nux下源码安装MySQL 5.6 说明:本文是我自己测试的MySQL5.6源码安装,经本人亲自实践,完全可用,另在5.6之前的版本也是可以按照本文源码安装的.我是在两台linux下一台安装5.5,另 ...
- CentOS 7下源码安装MySQL 5.7
网上说linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有几十M左右,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点 ...
- CentOS 6.4 源码安装MySQL 5.6
1.安装前准备工作 1.1 必备的包 gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.cmake :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本. ...
- centos7源码安装Python3的前提条件
centos7源码安装Python3的前提条件: # yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline- ...
- Linux平台下源码安装mysql多实例数据库
Linux平台下源码安装mysql多实例数据库[root@linux-node1 ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6 ...
- 源码安装mysql,及主从同步
源码安装mysql [可选] 如果用源码安装cmake软件: cd /home/oldboy/tools/ tar xf cmake-.tar.gz cd cmake- ./configure #CM ...
- CentOS 7下源码安装MySQL 5.6
本文转载,并非原创. 目录 准备工作 运行环境 确认你的安装版本 下载MySQL 安装MySQL 准备安装环境 编译和安装 配置MySQL 单实例配置 单实例配置方法 添加防火墙 启动MySQL 重启 ...
- centos7源码安装mysql5.7.19
centos7源码包安装mysql5.7 5.7.20安装方法和5.7.19的一样. 1.安装前准备 清空环境.安装相应的软件包 1>关闭防火墙和SELinux 2>配置yum源(阿里云, ...
随机推荐
- Asp.Net Mvc5 之Controller
经过前面介绍了路由系统之后,我们知道任何一个请求在经过asp.net url路由系统的拦截之后,会生成以controller/action 名称为核心的路由数据.asp.net mvc 根据此解析出目 ...
- CircleProgressBar
http://www.eoeandroid.com/thread-333984-1-1.html CircleProgressBar.rar
- android116 轮播 viewPager实现
布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to ...
- Eclipse 安装反编译插件jadclipse(经验总结)
方法/步骤 先下载jadClipse的jar包 链接:sourceforge.net/projects/jadclipse/ 然后,将net.sf.jadclipse_3.3.0.jar拷贝到 ...
- 如何在Linux桌面环境下自动启动程序?
大多数Linux桌面环境有各自的图形用户界面(GUI),让用户可以配置针对特定用户的自动启动程序或服务.本文将介绍如何在各种Linux桌面环境下,自动启动某个程序的方法. AD:WOT2014:用户标 ...
- C# 之 读取Word时发生 “拒绝访问” 及 “消息筛选器显示应用程序正在使用中” 异常的处理
1.Asp.net中建立Microsoft.Office.Interop.Word.Application时出现 “ 拒绝访问 ” 错误 项目中要实现在服务器端打开一个Word模版文件,修改其内容后再 ...
- js用斜率判断鼠标进入div的四个方向
网上大部分判断鼠标移入div移入移出都是使用一下方法: 这个方法确实十分奇特,使用起来十分方便. 后来自己看了一些文章,看到有另一种以斜率的方法来判断鼠标的移动方向. 上图是此方法的示意图,以浏览器左 ...
- iOS之文本属性Attributes的使用
1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSFontAttributeName : [UIFont systemFontOfSize:_fontS ...
- 浅谈android应用性能之内存(转)
如何测试一个APP的内存占用情况?一个APP占用的内存分哪些部分?如何检查一个APP是否存在内存泄漏? 一.Android内存介绍: 在java开发过程中,是通过new来为对象分配内存的,而内存的释放 ...
- (译文)12个简单(但强大)的JavaScript技巧(一)
原文连接: 12 Simple (Yet Powerful) JavaScript Tips 我将会介绍和解析12个简单但是强大的JavaScript技巧. 这些技巧所有的JavaScript程序员都 ...