在本文中,我们将详细介绍CentOS7.0下为MySQL5.6.34配置master和slave的各个方面,同时,我们也将为您带来关于CentOS6.5安装与配置MySQL5.5、CentOS7安装后
在本文中,我们将详细介绍CentOS7.0下为MySQL5.6.34配置master和slave的各个方面,同时,我们也将为您带来关于CentOS6.5安装与配置MySQL5.5、CentOS7 安装后 MySQL5.6 如何配置 MySQL5.6 呢?、Centos7 安装和配置MySQL5.7、CentOS7 安装配置RocketMQ --主从模式(master-slave)异步复制的有用知识。
本文目录一览:- CentOS7.0下为MySQL5.6.34配置master和slave
- CentOS6.5安装与配置MySQL5.5
- CentOS7 安装后 MySQL5.6 如何配置 MySQL5.6 呢?
- Centos7 安装和配置MySQL5.7
- CentOS7 安装配置RocketMQ --主从模式(master-slave)异步复制
CentOS7.0下为MySQL5.6.34配置master和slave
上一篇博客有介绍如何在CentOS7.0下安装MysqL5.6.34,这里就不再重复介绍安装问题,直接进入正题。
首先,确保master主服务器防火墙关闭。
命令如下:
systemctl stop firewalld.service#停止firewall
systemctl disable firewalld.service#禁止firewall开机启动
CentOS7默认的防火墙是firewall,不是iptables,如果想使用iptables可以用yum进行安装,命令:yum -y install iptables-services
1.配置Master服务器
vi /etc/my.cnf
在[MysqLd]下面添加如下配置:
#配置二进制日志
log-bin=master-bin
log-bin-index=master-bin.index
#为服务器增加一个id标识,防止跟其他Slave冲突,常用的命名方式是用ip的最后三位,同一局域网中ip后三位不会相#同,便于管理,这里为了简单,就只写为1
server-id=1
重启Master服务器上的MysqL,命令:service MysqL restart
2.在Master上创建一个复制用户
MysqL> grant replication client,replication slave on *.* to
-> 'repl'@'%'
-> identified by 'repl';
Query OK,0 rows affected (0.04 sec)
注:%表示允许在任何机器上远程访问,可以自己定义一个确定的IP地址,这样会更安全些
MysqL>flush privileges;//刷新权限
注:可以用命令MysqL>show master status \G 查看当前Master的状态,状态如下:
*************************** 1. row ***************************
File: master-bin.000002
Position: 422
binlog_Do_DB:
binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
这里我们是对所有的库和表都进行复制操作,所以就不需要忽略任何库,直接默认就行
3.配置Slave服务器
在[MysqLd]下面添加如下配置:
server-id=2relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
重启Slave服务器上的MysqL,命令:service MysqL restart
4.连接Master和Slave
MysqL> change master to
-> master_host='192.168.213.130',//这里输入Master的ip地址,可以用ifconfig命令查看
-> master_user='repl',//这个就是前面建立的用户名和密码
-> master_password='repl';
MysqL> start slave;//启动slave
MysqL> show slave status\G //查看Slave的状态
状态如下:
Slave_IO_State: Waiting for master to send event 表示成功连接 Slave与Master,之后就可以在Master库中进行查询操作了
CentOS6.5安装与配置MySQL5.5
一、MySQL安装
检查系统中是否安装了mysql服务,首先介绍两个linux中的命令
rpm –qa:查看全部已安装的软件包
rpm –q 包名:查看软件包是否已安装
mysql安装包名为mysql-server
[root@root ~]# rpm -q mysql-server
package mysql-server is not installed
没有安装mysql,检查可用的安装包
yum list mysql-server
检查结果为
mysql package
安装msyql服务
yum -y install mysql-server.x86_64
安装完成,可以通过下面几个命令操作mysql服务
/etc/init.d/mysqld start:开启服务
service mysqld start:开启服务
/etc/init.d/mysqld stop:关闭服务
service mysqld stop:关闭服务
/etc/init.d/mysqld restart:重启服务
service mysqld restart:重启服务
service mysqld status:查看mysql状态
mysql:连接mysql
\q:断开mysql连接
二、MySQL的配置
开机自启动设置
chkconfig mysqld on:设置mysql开机启动
chkconfig mysqld off:取消mysql开机启动
修改root用户密码
use mysql;
update user set password=password(''密码'') where user=''root'';
flush privileges;
用root用户登录
mysql -uroot -p
设置远程访问
grant all privileges on *.* to ''root''@''%'' identified by ''密码'' with grant option;
忘记root用户密码
vi /etc/my.cnf
my.cnf
在[mysqld]后面加上skip-grant-tables,保存退出,重启mysql服务。匿名登录mysql,执行
update mysql.user set password=password(''新密码'') where user=''root'';
将/ect/my.cnf中的skip-grant-tables注释掉,重启mysql服务即可。
中文乱码
vi /etc/my.cnf
在[mysqld]后面加上default-character-set=utf8
开放3306端口
vi /etc/sysconfig/iptables
将下面的加入到iptables中,然后重启防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
或者是
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
三、插入几个防火墙命令
查看防火墙状态:
/etc/init.d/iptables status
service iptables status
开启防火墙:
/etc/init.d/iptables start
service iptables start
重启防火墙:
/etc/init.d/iptables restart
service iptables restart
关闭防火墙:
/etc/init.d/iptables stop
service iptables stop
chkconfig iptables on:永久开启
chkconfig iptables off:永久关闭,重启后不会复原
添加到防火墙:
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
从防火墙中移出:
/sbin/iptables -I INPUT -p tcp --dport 3306 -j DROP
/etc/init.d/iptables save
或者是直接修改/etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
CentOS7 安装后 MySQL5.6 如何配置 MySQL5.6 呢?
##### 该文章是接着上篇安装的文章的,注意点如下:
- 建了 mysql 组及 mysql 用户
- mysql 安装位置:usr/local/mysql
- 建了 /data/mysqldata/3306 / 放我们 mysql 的信息及 mysql.sock
一、创建 mysql 服务
1、预备工作就绪,切换到 root 用户先:
su
2、建立我们需要安放 MySQL 配置文件、脚本、备份等的目录
cd data/
mkdir -p /data/mysqldata/{3306/{data,tmp,binlog},backup,scripts}
3、所属组用户归到 mysql
chown -R mysql:mysql mysqldata
4、切换到 mysql 用户
su - mysql
cd /usr/local/mysql/
二、创建我们的自己的配置文件 1、5.6 版本注意:
ll support-files/my*.cnf
我们可以看到:
-rw-r--r--. 1 mysql mysql 1126 Sep 7 14:25 support-files/my-default.cnf
2、为啥安装了 mysql5.6 没有配置文件呢?为啥呢?因为官方 5.6 不像之前版本那样玩了,要求我们对着它的默认配置文件自给自足:
touch /data/mysqldata/3306/my.cnf
3、编辑配置文件
vi /data/mysqldata/3306/my.cnf
添加下列参数:
[client]
port=3306
socket=/data/mysqldata/3306/mysql.sock
# The MySQL server
[mysqld]
port=3306
user=mysql
socket=/data/mysqldata/3306/mysql.sock
pid-file=/data/mysqldata/3306/mysql.pid
basedir=/usr/local/mysql
datadir=/data/mysqldata/3306/data
tmpdir=/data/mysqldata/3306/tmp
open_files_limit=10240
explicit_defaults_for_timestamp
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# Buffer
max_allowed_packet=256M
max_heap_table_size=256M
net_buffer_length=8K
sort_buffer_size=2M
join_buffer_size=4M
read_buffer_size=2M
read_rnd_buffer_size=16M
# Log
log-bin=/data/mysqldata/3306/binlog/mysql-bin
binlog_cache_size=32M
max_binlog_cache_size=512M
max_binlog_size=512M
binlog_format=mixed
log_output=FILE
log-error=../mysql-error.log
slow_query_log=1
slow_query_log_file=../slow_query.log
general_log=0
general_log_file=../general_query.log
expire-logs-days=14
# InnoDB
innodb_data_file_path=ibdata1:2048M:autoextend
innodb_log_file_size=256M
innodb_log_files_in_group=3
innodb_buffer_pool_size=1024M
[mysql]
no-auto-rehash
prompt=(\u@\h) [\d]\_
default-character-set=utf8
然后:wq 保存退出
三、如何启动 MySQL
1、看很多网上教程都是在 mysql 安装目录下的 scripts/mysql_install_db 安装,其实官方不推荐的
2、我们可以尝试启动安装脚本 (没事,你可以照做,不怕)
/usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql
你会看到输出的内容并没有直接安装,而是提示你接下来最好怎么做!
3、在 2 命令的输出内容中如果你遇到 LC_ALL = (unset),LANGUAGE = (unset) 错误信息,请检查你的配置,在 .bashrc 中:
export LC_ALL="en_US.UTF-8"
保存退出后 source 一下
source ~/.bashrc
4、官方建议的启动方式:安全启动(小心漏打一个 mysqld 的 d 或者 defaults 的 s,还有最后一个 &)
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &
5、mysql 成功启动了,我们查看下运行情况
ps -ef | grep bin/mysql | grep -v grep
输出如下信息则表示 MySQL 启动成功
root 3200 1 0 09:50 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf
mysql 3663 3200 0 09:50 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysqldata/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=../mysql-error.log --open-files-limit=10240 --pid-file=/data/mysqldata/3306/mysql.pid --socket=/data/mysqldata/3306/mysql.sock --port=3306
四、配置 MySQL 服务
1、切换到 root 用户:
/usr/local/mysql/bin/mysql
你会发现不用登录名也不用密码,好爽啊,因为前面我们配置的配置文件的功劳 prompt=(\u@\h) [\d]_
2、在 mysql > 中,执行如下命令:
select user,host from mysql.user;
3、可以看到很多 root 用户,我就是不想用 root 怎么办呢,不爽它,而且出于安全我不想叫 root,我换个 system 怎么样,那么:
delete from mysql.user where(user,host) not in (select ''root'',''localhost'');
#新增我们自己的用户和密码
update mysql.user set user=''system'',password=password(''system'');
truncate table mysql.db;
flush privileges;
exit;
退出去以后你可以看到执行 mysql 已经不能直接进入 mysql 服务了,需要指定 -u system -p system
4、至此,我们已经完成了所有的 mysql 安装及配置操作,也可以外部连接了。可是,我想用自定义的脚本来方便管理它怎么办呢?下面有讲,有兴趣的同学可以看看
五、MySQL 服务管理配置
1、创建中间定义文件(自定义 shell 配置文件),目的是提高脚本复用性
vi /data/mysqldata/scripts/mysql_env.ini
编辑它:
# set env
MYSQL_USER=system
MYSQL_PASS=''system''
# check parameter
if [ $# -ne 1 ]
then
HOST_PORT=3306
else
HOST_PORT=$1
fi
:wq 保存关闭
2、修改该文件权限
chmod 600 /data/mysqldata/scripts/mysql_env.ini
3、创建 mysql_db_startup.sh 脚本,用于启动 MySQL 服务:
vi /data/mysqldata/scripts/mysql_db_startup.sh
录入 shell:
#! /bin/sh
# Created by cxgphper 20180909
source /data/mysqldata/scripts/mysql_env.ini
echo "Startup MySQL Service: localhost_"${HOST_PORT}
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/${HOST_PORT}/my.cnf &
4、创建 mysql_db_shutdown.sh ,来关闭 MySQL 服务
vi /data/mysqldata/scripts/mysql_db_shutdown.sh
录入:
#! /bin/sh
# Created by cxgphper 20180909
source /data/mysqldata/scripts/mysql_env.ini
echo "Shutdown MySQL Service: localhost_"${HOST_PORT}
/usr/local/mysql/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PASS} -S /data/mysqldata/${HOST_PORT}/mysql.sock shutdown
5、创建 mysqlplus.sh 脚本文件用于快速登录:
vi /data/mysqldata/scripts/mysqlplus.sh
录入:
#! /bin/sh
# Created by cxgphper 20180909
source /data/mysqldata/scripts/mysql_env.ini
echo "Login MySQL Service:localhost_"${HOST_PORT}
/usr/local/mysql/bin/mysql -u${MYSQL_USER} -p${MYSQL_PASS} -S /data/mysqldata/${HOST_PORT}/mysql.sock $2
6、授予上面几个脚本执行权限,方便调用
chmod +x /data/mysqldata/scripts/*.sh
7、编辑 mysql 用户的环境变量,将上面路径加入到 PATH 中:
echo "export PATH=/data/mysqldata/scripts:\$PATH" >> ~/.bash_profile
source ~/.bash_profile
8、设置开启自启动 MySQL
vi /etc/rc.local
增加下列内容到最后一行:
# autostart mysql,added by cxgphper at 20180909
sudo -i -u mysql /data/mysqldata/scripts/mysql_db_startup.sh 3306 > /home/mysql/mysql_db_startup.log 2>&1
提示: 执行 sudo 命令时可能会遇到下列错误: sudo:sorry,you must have a tty to run sudo 遇到这种情况,可以通过修改 sudo 的配置来避免错误发生,比如执行 visudo 命令,或者更改 /etc/sudoers 文件,注释掉第 56 行,如下:
#Defaults requiretty
然后:wq 退出
9、至此,mysql5.6 安装完成!我们还封装了方便管理的 mysql 开启、关闭、进入的 shell 脚本。
Centos7 安装和配置MySQL5.7
第一步,下载MySQL安装
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
安装mysql安装源
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
第二步,在线安装MySQL
yum -y install mysql-community-server
下载的东西有点多,需要等待一会
第三步,启动MySQL服务
systemctl start mysqld
第四步,设置开机启动
systemctl enable mysqld
systemctl daemon-reload
第五步,修改root登录密码
mysql安装完成之后,会在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。
vim /var/log/mysqld.log
复制此密码,使用此密码登录root
mysql -u root -p
修改密码, mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位
mysql> ALTER USER ''root''@''localhost'' IDENTIFIED BY ''Test2016@'';
Query OK, 0 rows affected (0.01 sec)
第六步,设置允许远程登录
mysql> GRANT ALL PRIVILEGES ON *.* TO ''root''@''%'' IDENTIFIED BY ''Test2016@'' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
第八步,防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
第九步,配置mysql默认编码为utf-8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置
character_set_server=utf8
init_connect=''SET NAMES utf8''
第十步,重启MySQL
systemctl restart mysqld
第十一步,登录root用户查看编码
第十二步,测试远程连接
CentOS7 安装配置RocketMQ --主从模式(master-slave)异步复制
机器信息
配置host【两台机器】
vim /etc/hosts
192.168.119.129 rocketmq-nameserver1
192.168.119.129 rocketmq-master1
192.168.119.128 rocketmq-nameserver2
192.168.119.128 rocketmq-master1-slave
下载【两台机器】
去官网http://rocketmq.apache.org/下载 rocketmq-all-4.4.0-bin-release.zip
上传到服务器
解压【两台机器】
mkdir /usr/local/apache-rocketmq
cd /usr/local/apache-rocketmq
unzip rocketmq-all-4.4.0-bin-release.zip
cd ..
ln -s rocketmq-all-4.4.0-bin-release/ rocketmq
创建存储路径【两台机器】
mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog
mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index
mkdir /usr/local/rocketmq/logs
修改broker配置文件【主】
vim /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties
删除文件的原始内容,添加以下配置
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker 名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer 地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4 点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog 每个文件的大小默认 1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制 Master
#- SYNC_MASTER 同步双写 Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
修改broker配置文件【从】
vim /usr/local/rocketmq/conf/2m-2s-async/broker-a-s.properties
配置如下(只需修改brokerId和brokerRole)
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker 名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer 地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4 点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog 每个文件的大小默认 1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制 Master
#- SYNC_MASTER 同步双写 Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
如果是虚拟机安装,建议启动服务前先调整一下jvm内存的分配大小,默认是4g(主从)
vim /usr/local/rocketmq/bin/runserver.sh
改为
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
vim /usr/local/rocketmq/bin/runbroker.sh
改为
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
启动服务
192.168.119.129
nohup sh bin/mqnamesrv &
nohup sh bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &
检查是否成功启动
如图所示表示启动成功
192.168.119.128
nohup sh bin/mqnamesrv &
nohup sh bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a-s.properties >/dev/null 2>&1 &
检查是否成功启动
安装控制台
去下载页面
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console
下载后修改配置文件
rocketmq.config.namesrvAddr=192.168.119.129:9876;192.168.119.129:9876
然后用idea或者maven打包启动
mvn clean package -Dmaven.test.skip=true
java -jar "D:\project\rocketmq-externals\rocketmq-console\target\rocketmq-console-ng-1.0.1.jar"
浏览器访问
防火墙需要开放10911端口
今天关于CentOS7.0下为MySQL5.6.34配置master和slave的介绍到此结束,谢谢您的阅读,有关CentOS6.5安装与配置MySQL5.5、CentOS7 安装后 MySQL5.6 如何配置 MySQL5.6 呢?、Centos7 安装和配置MySQL5.7、CentOS7 安装配置RocketMQ --主从模式(master-slave)异步复制等更多相关知识的信息可以在本站进行查询。
本文标签: