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 实现高可用,其中一台挂了 也没有关系,在起来即可 数据不会丢失,启动之后数据会同步回来 保持一致、
转载于:https://www.cnblogs.com/lijiasnong/p/5236175.html
Centos7源码安装mysql及读写分离,互为主从相关推荐
- centos7源码安装mysql报错_CentOS7 下源码安装MySQL数据库 8.0.11
本文主要向大家介绍了CentOS7 下源码安装MySQL数据库 8.0.11,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. CentOS7 下源码安装MySQL 8.0.11 系 ...
- centos7源码安装mysql报错_centos7.3源码安装mysql
环境说明: 该系统第一次安装mysql. 自己指定安装目录,指定数据文件目录. linux系统版本:CentOS 7.3 64位 安装源文件版本:mysql-5.7版本 mysql安装位置:/soft ...
- linux怎么用源码安装mysql,Linux源码安装mysql步骤
创建文件夹: mkdir /usr/local/webserver 安装必要依赖包 yum -y install gcc gcc-c++ make ncurses-devel 安装cmake包: t ...
- centos7源码安装mysql8.0_CentOS7下源码安装MySQL 8.x
会选择使用源码安装MySQL,想必对MySQL及其他的安装方式已经有了一定的了解,这里就不对周边信息进行过多赘述了,直接开始吧. 编译MySQL比较消耗内存,如果机器内存较小,可能会在编译期间出现内存 ...
- Linux源码安装mysql 5.6.12(cmake编译)
转载链接:http://www.2cto.com/database/201307/229260.html Linux源码安装mysql 5.6.12(cmake编译) 1.安装make编译器(默认系统 ...
- 源码安装mysql_CentOS 7中源码安装MySQL 5.7.16 (亲测成功)
最近在CentOS 7中源码安装MySQL 5.7.16,发现MySQL5.7.6+以后的安装方式真的与以前版本的MySQL安装方式大大的不同呀.不自己安装一把,下面这篇文章是通过自己的安装过程总结的 ...
- CentOS 7中源码安装MySQL 5.7.16 ----已测试验证
最近在CentOS 7中源码安装MySQL 5.7.6+,发现MySQL5.7.6+以后的安装方式真的与以前版本的MySQL安装方式大大的不同呀.不自己安装一把,你都不知道不同之处在哪,下面这篇文章是 ...
- l源码安装mysql升级_[Linux]javaEE篇:源码安装mysql
javaEE :源码安装mysql 安装环境 系统平台:CentOS-7-x86_64 数据库版本:mysql-5.6.14 源码安装mysql步骤: 一.卸载mysql 安装mysql之前,先确保l ...
- mysql 安装_源码安装mysql
源码安装mysql 什么是源码 #! /bin/bash echo 'hello'高级语言 ➡️机器码01001001 源码安装mysql逻辑 1.源码包 ⬇ 2.预编译 1.检查当前的操作系统. 2 ...
最新文章
- 正则表达式教程手册、正则一点通(Chinar出品)
- 模拟k8s项目的生命周期
- cocos2dx游戏开发简单入门视频教程 (cocos2d-x)- 第5天
- unity5, Configurable Joint: Anchor, Connected Anchor, Auto Configure Connected Anchor
- (5)数据分析-T检验
- VS C#/C++ 诊断工具找回 诊断工具打开 诊断工具发现
- (转帖)美国人教你这样用Google,你真的会变特工
- JS设计模式——单例模式
- 3S基础知识:MapInfo MapX中如何保存专题地图
- 在maya中安装numpy
- TR5511规格书说明|替代TR5511EDP转LVDS方案|低BOM成本CS5211替代TR5511方案设计
- 1374:铲雪车(snow)
- mysql计算同比和环比的区别_MySQL统计同比环比SQL
- python中,获取设备网卡接口(ethx, mgmt)
- 054 webshell介绍与文件上传漏洞
- Css3动画 Qian锋逆战班
- 新年金市上行动力堪忧 美债收益率大幅上涨
- 设随机变量用计算机模拟,概率论实验报告1.docx
- 微信小程序 ‘腾讯位置服务地图选点插件申请失败’
- C#在 Visual Studio 中快捷生成toString方法重写
热门文章
- 【Vue】组件复用导致的路由切换时页面不刷新问题
- idea启动springboot卡_写给新手看的 Spring Boot 入门学习指南
- element ui 红点_element-ui 自定义表单验证 , 但是不出现小红心了
- CUDA学习-函数前缀__global__
- java实现人字拼,地板怎么玩花式人字拼铺法 人字拼地板家居实例图
- (原創) 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
- 发布国内首个无服务器容器服务,运维效率从未如此高效
- Office 365和SFB更新
- Android友盟增量更新
- SCWS 添加自定义词典