centos7安装MySQL及配置实现主从同步

1.下载安装:

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

yum localinstall mysql57-community-release-el7-8.noarch.rpm
(提示进程占用,直接kill就行)

检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
进行安装
yum install mysql-community-server
安装完成后启动一下 看看有什么问题没;
systemctl start mysqld

没啥问题修改密码:
sudo grep 'temporary password' /var/log/mysqld.log
通过上述命令找到你的密码
mysql -uroot -p
输入密码进入修改你的root账号密码

修改完密码退出MySQL,出来修改目录了。

2.修改目录:
由于MySQL的数据存的比较大,需要换个路径储存数据,你不可能把你的所有的数据都放在数据库安装的目录下把,所以我们在data目录下创建一个datamysql目录来专门放MySQL的数据。
*以下操作需要root权限:

mkdir datamysql
mkdir datamysql/mysql
 cp -R /var/lib/mysql/* /data/datamysql/mysql/
 chown -R mysql:mysql /data/datamysql/mysql/
 cp /etc/my.cnf /etc/my.cnf.bak

修改配置文件:


# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[client]
port=3306
socket=/data/datamysql/mysql/mysql.sock
default-character-set=utf8

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/data/datamysql/mysql
socket=/data/datamysql/mysql/mysql.sock

port=3306
explicit_defaults_for_timestamp
skip-host-cache
skip-name-resolve
user=mysql
max_connections=1000
tmp_table_size=512M
max_heap_table_size=512M
read_buffer_size=200M
read_rnd_buffer_size=200M
sort_buffer_size=200M
innodb_log_buffer_size=200M
innodb_buffer_pool_size=16G
character-set-server=utf8
wait_timeout=32000000
interactive_timeout=32000000
net_write_timeout=1800
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:10G

innodb_file_per_table=1
innodb_print_all_deadlocks=1

# master-slave configuration
server-id=1234
log_bin=mysql-bin
relay_log=mysql-relay-bin
log-slave-updates=on
gtid-mode=on
enforce-gtid-consistency=on
slave-skip-errors=all
max_binlog_size=500M binlog最大文件 超过这个 系统就重生成一个
binlog-do-db=你需要同步的数据库名称
binlog-ignore-db=mysql
binlog-ignore-db=information_schema 忽略同步的数据库,这里面方的是权限,表信息等 这个不需要同步。
binlog-ignore-db=performance_schema

# MTS for master
binlog_group_commit_sync_delay=30
binlog_group_commit_sync_no_delay_count=20

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

修改完成后,使用mysql -uroot -p 登录 在VM虚拟机 我遇到报错,找不到sock.需要进入mysql 的log下查看:
cd /var/log
tail -n 300 mysqld.log
要是你是如下报错:
MySQL [Warning] Can’t create test file xxx lower-test

image.png

假如有这个错误,直接执行下面的命令:

  • 首先关掉MySQL服务:
  • service mysql stop
  • 执行如下命令
  • setenforce 0
  • 重启MySQL服务
  • systemctl start mysqld

[注意]:这个命令你下次开机的时候应该还需要再次执行一次,否则还是抛出上面的异常,假如你不想这么麻烦,可以百度一下永久解决方案。
参考文章链接:
https://www.cnblogs.com/ajianbeyourself/p/4158874.html

这个时候我们关掉MySQL服务,重新启动MySQL,并且查看现在的状态:
``
systemctl status mysqld

image.png

3.登录远程访问(VM虚拟机 centos7):
mysql -uroot -p
输入密码为 进入MySQL
接下来我们开始授权:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'MyNewPass4!' WITH GRANT OPTION; FLUSH PRIVILEGES;
这个命令的意思是myuser这个用户用户可以在任何IP(%代表任何IP),.代表任何表的权限,来访问数据库。

开完之后,执行命令,开机自启动systemctl enable mysqld
systemctl daemon-reload

这个时候不出意外是肯定无法使用navicat进程远程访问的,需要进行一下操作:
1.查看虚拟机IP


image.png

2.本地cmd ping一下


image.png

3.进MySQL 查看你的端口多少
show variables like '%port%';
4.开放3306端口,你的可能不是3306 看配置文件也可以
安装iptables服务
sudo yum install iptables-services

开启服务

sudo systemctl enable iptables 
sudo systemctl enable ip6tables 

启动服务

sudo systemctl start iptables 
sudo systemctl start ip6tables

修改配置文件
vi /etc/sysconfig/iptables
在-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT 后面加这个一行-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
wq保存推出
重启网卡服务
service iptables restart

开始配置主从同步:

1.登陆主数据库,修改密码后,创建一个账号来进行主从同步
grant replication slave on *.* to 'slave'@'从库的IP' identified by '密码';
7.登陆从库 按照上面的迁移目录和修改配置文件都来一套,主要是配置文件里面的service_id不要和从库的重复即可,其他一模一样都可以。

然后开始在从库进行如下操作:

CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_PORT=主库端口, MASTER_USER='slave', MASTER_PASSWORD='刚刚主库的slave密码', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1615;

注意!!!,上面的MASTER_LOG_FILE 和MASTER_LOG_POS 需要你在主库查看再设置,SQL为 在主库运行:show master status\G;

image.png

8.以上配置完成后,再从库进行开启主从同步 执行如下SQL:
start slave;
9.然后在从库:show slave status\G,查看是否正常同步:

image.png

红色框内都是Yes就代表是已经主从设置完成了。

tips:

  • 主从同步的表一定要在设置完主从后再创建,否则是不会同步到从库的。
  • 可以在主库创建需要主从同步的表,写入测试数据,查看是否从库有这些数据。
  • 主从有时候会出现不同步的情况,例如一个超级大的事务,可能导致主从数据不一样,这种情况情况下建议配置为:MTS(Multi-Threaded Slaves),即多线程复制,这样并发量很大,或者有大事务的时候,避免一些延迟情况。
    配置参考:
# MTS for salve
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=4    
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

参考链接:
https://www.cnblogs.com/MYSQLZOUQI/p/6894464.html

遇到的问题:
1.主库创建的用户在从库服务器无法登陆:
这个应该是你端口问题,直接按照我上面的进行设置就行。
参考资料:
1.https://www.osyunwei.com/archives/566.html
2.https://www.cnblogs.com/ivictor/p/5146247.html
3.https://blog.csdn.net/lliangdd/article/details/52092542
4.https://www.jianshu.com/p/7b8c4dea6829
5.https://www.cnblogs.com/gumuzi/p/5711495.html
6.https://www.cnblogs.com/dump/p/9238543.html
7.https://blog.csdn.net/asd104/article/details/80158147
8.https://segmentfault.com/a/1190000017827680

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容