首页 > 技术文章 > mysql免安装部署,主从配置和Atlas数据库中间件的使用

wang1204 2020-08-06 17:18 原文

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配置端口,用户使用主库用户和密码,主库和从库用户密码需要一致 

 

推荐阅读