mysql免编译安装包下载地址:https://dev.mysql.com/downloads/mysql/
linux 选择免安装版本
Atlas 下载地址:https://github.com/Qihoo360/Atlas/releases 根据服务器版本选择,本文档使用rpm版本,因为服务器使用redhat7,所有选择rpm版本,更多服务器和版本对应的信息,下载地址存在文档,请自行查看
Ip地址已实际环境为准,这里主要为了文档描述时标注清晰
数据库中间件服务器:Atlas部署服务器(因为项目原因使用三方插件不能设置端口,所以中间件如果和主库部署在同一服务器时,设置中间件端口为3306)
Ip:192.168.109.252
主库:mysql主库(如果和中间件部署在同一服务器,需要修改端口不能使用3306端口)
Ip:192.168.109.253
从库:mysql 从库
Ip:192.168.109.254
1 .Mysql免编译安装包部署
1.1 创建存放压缩包文件夹
1.2 上传安装包至压缩包存放文件夹
1.3 解压缩包至/user/local/mysql
1.4 安装mysql所需拓展
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison net-tools libaio
1.5 进入mysql文件夹
cd /usr/local/mysql
1.6 创建数据存储文件夹 data
mkdir data
1.7 创建mysql用户组和mysql用户,-s /bin/false 表示用户不能用于登录
groupadd mysql (添加mysql用户组命令)
useradd -r -g mysql -s /bin/false mysql
1.8 为mysql用户添加权限
chown -R mysql:mysql /usr/local/mysql
1.9 拷贝提供的部署中的my.cnf到/etc下,编辑my.cnf 屏蔽sql_mode一行
1.10 初始化数据库 初始化完成会有一个密码,保存一下
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
1.11 配置mysql服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld # 添加到系统服务
chkconfig mysqld on # 开机启动
1.12启动mysql
service mysqld start //启动mysql服务
service mysqld stop //停止mysql服务
service mysqld restart //重启mysql服务
1.13 配置mysql环境变量
vi /etc/profile
添加 export PATH=/usr/local/mysql/bin:$PATH 保存
执行 source /etc/profile 在没有source命令情况下执行. /etc/profile让profile文件立即生效
1.14 登录mysql 修改临时管理员密码
mysql -h 127.0.0.1 -u root –p
执行如下语句,修改本地登录密码为123456
alter
user
'root'
@
'localhost'
identified
by
'123456'
;
设置
mysql
允许远程登录
Use mysql;
Update user set host=’%’ where host=’localhost’ and user=’root’;
执行 flush privileges;命令立即生效
1.15 添加3306端口为开放端口
7以前版本
1、修改vim /etc/sysconfig/iptables文件,增加如下一行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 要开启的端口 -j ACCEPT
2、重启 iptables
命令: service
iptables restart
查询端口是否已打开:
netstat -an | grep 端口 或 netstat -tunlp |grep 端口
方法二:
1、# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
2、# /etc/init.d/iptables restart
3、# /etc/rc.d/init.d/iptables save
7以后使用
查看端口是否开放
firewall-cmd --query-port=3306/tcp
添加端口
firewall-cmd --add-port=3306/tcp --permanent
主库从库部署都以上面为准
2 mysql数据库主从配置
2.1 192.168.109.253(主库配置)
配置项必须添加[mysqld]之后
##########################
## log bin
###########################
server-id = 100 #必须唯一
log_bin = mysql-bin #开启及设置二进制日志文件名称
binlog_format = MIXED
sync_binlog = 1
expire_logs_days =7 #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除
#binlog_cache_size = 128m
#max_binlog_cache_size = 512m
#max_binlog_size = 256M
binlog-do-db = sync #要同步的数据库
binlog-ignore-db = mysql #不需要同步的数据库
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys
重启mysql服务,service mysqld restart
登录mysql mysql -uroot -p 回车 输入密码 回车
执行下面语句(设置从服务器服务权限,方便从服务器用户读取赋值主服务器内容)
grant replication slave,replication on *.* to ‘从库账号’@’从库ip’ identified by ‘从库登陆密码’;
执行flush privileges; 使命令立即生效
执行show master status;查看主服务器的状态
记住此时的File和Position,配置从服务器的时候会用上
2.2 192.168.109.254(从库配置)
配置从服务器/etc/my.cnf
##########
##bin-log
##########
server-id = 110
log_bin = mysql-bin
replicate-do-db =sync #只复制某个库
replicate-ignore-db=mysql #不复制某个库
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
重启mysql服务,service mysqld restart
登录mysql mysql -uroot -p 回车 输入密码 回车
设置主库信息
执行 stop slave; 停止同步
执行 CHANGE MASTER TO MASTER_HOST=’主库ip’,MASTER_PORT=’主库端口’,MASTER_USER=’主库mysql用户’,MASTER_PASSWORD=’主库mysql密码’,MASTER_LOG_FILE=’上面获取的FIEL’,MASTER_LOG_POS=’上面获取的position’;
MASTER_LOG_FILE 从主库的该log_bin文件开始读取同步信息,主库show master status返回结果
MASTER_LOG_POS 从文件中指定位置开始读取,主库show master status返回结果
执行 start slave;开始同步
执行 show slave status;查看同步状态
只有【Slave_IO_Running】和【Slave_SQL_Running】都是Yes,则同步是正常的。
如果是No或者Connecting都不行,可查看mysql-error.log,以排查问题。
3 配置Atlas读写分离
上传atlas安装包Atlas-2.2.1.el6.x86_64.rpm到服务器
执行 rpm -i Atlas-2.2.1.el6.x86_64.rpm 安装altas,安装后的路径为/usr/local/mysql-proxy
修改配置文件 vim /usr/local/mysql-proxy/conf/test.cnf
配置文件中参数都有描述,配置以上述配置文件中为准
开启端口如上面配置mysql的开启端口,开启配置的proxy-address所有配置的端口
Atlas启动,停止,重启命令
/usr/local/mysql-proxy/bin/mysql-proxyd test start 启动
/usr/local/mysql-proxy/bin/mysql-proxyd test stop 停止
/usr/local/mysql-proxy/bin/mysql-proxyd test restart 重启
然后在项目配置,使用Atlas所在服务器所在ip,端口使用Atlas中proxy-address配置端口,用户使用主库用户和密码,主库和从库用户密码需要一致