|
|
|
|
公众号矩阵

MySQL5.7数据库主从架构部署,你再也不用去问度娘了

啰嗦的话,不多说,我们直接开始部署,我相信有点linux基础的人都能看得懂。Mysql5.7.22主从部署,既然是主从那肯定是需要至少2台服务器了,2台的安装都是一样的,请看下面!

作者:阿龙说运维来源:今日头条|2021-01-11 16:19

啰嗦的话,不多说,我们直接开始部署,我相信有点linux基础的人都能看得懂。

Mysql5.7.22主从部署,既然是主从那肯定是需要至少2台服务器了,2台的安装都是一样的,请看下面!

1、 创建mysql用户:useradd -m -d /home/mysql mysql

2、 上传mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz安装包到/app目录下。

附官方下载链接:https://dev.mysql.com/downloads/file/?id=476936

3、 解压安装包到/app目录下tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

4、 将解压完的安装包重命名为:mysql5722

  1. mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql5722 

5、 进入mysql5722目录下创建data、logs目录。

  1. cd mysql5722/  
  2. mkdir data && mkdir logs 

6、 进入刚刚创建的logs目录下创建日志文件

  1. cd logs touch error.log && touch general.log  
  2. 授权/app/mysql5722目录属主属组为mysql  
  3. chown -R mysql:mysql /app/mysql5722 

7、 进入mysql的bin目录下进行初始化设置:

  1. cd ../bin/ ./mysqld --initialize --user=mysql --basedir=/app/mysql5722/ --datadir=/app/mysql5722/data 

注意:初始化的时候会提示root用户的默认密码记得保存,首次登陆需要。

8、 创建mysql配置文件:

  1. cd /etc/&& mv my.cnf my.cnf.bak 

新建配置文件:touch my.cnf,内容如下:

Master节点配置文件内容:

  1. [mysqld] 
  2. server-id=1 
  3. log_bin=master-bin 
  4. log_bin_index=master-bin.index 
  5. binlog_do_db=mysql 
  6. expire_logs_days=7 
  7. #skip-grant-tables 
  8. lower_case_table_names=1 
  9. explicit_defaults_for_timestamp 
  10. port = 3306 
  11. datadir = /app/mysql5722/data 
  12. socket = /app/mysql5722/mysql.sock 
  13. user = mysql 
  14. symbolic-links = 0 
  15. basedir = /app/mysql5722 
  16. big-tables 
  17. character-set-server = utf8 
  18. #general-log-file = /app/mysql5722/logs/general.log 
  19. language = /app/mysql5722/share 
  20. lc-messages-dir = /app/mysql5722/share 
  21. general-log = on 
  22. #GENERAL_LOG=ON 
  23. general-log-file = /app/mysql5722/logs/mysqld.log 
  24. slow-query-log = 1 
  25. pid-file = /app/mysql5722/mysql.pid 
  26. slow-query-log-file = /app/mysql5722/logs/mysqld_slow.log 
  27. slave-load-tmpdir = /app/mysql5722/tmp 
  28. plugin-dir = /app/mysql5722/lib/plugin 
  29. max_connections = 1000 
  30. #innodb 
  31. #innodb_log_file_size=512M 
  32. #innodb_buffer_pool_size=2G 
  33. [mysqld_safe] 
  34. log-error=/app/mysql5722/logs/mysql_error.log 
  35. pid-file=/app/mysql5722/mysql.pid 
  36. [client] 
  37. port = 3306 
  38. socket=/app/mysql5722/mysql.sock 
  39. user=mysql 

9、 配置启动命令:

  1. cd /app/mysql5722/support-files/  
  2. cp mysql.server /etc/init.d/mysqld  
  3. cd /etc/init.d/ 

修改mysqld配置文件内容添加如下两行信息:

MySQL5.7数据库主从架构部署,你再也不用去问度娘了

10、 配置开机启动

  1. chkconfig --add mysqld  
  2. chkconfig mysqld on  
  3. chown -R mysql:mysql mysql5722/ 

11、 启动mysql数据库

  1. service mysqld start 

12、 登录mysql

  1. ./mysql -uroot -p'LRabR;xaS9lh' 

修改root默认密码,不然无法执行sql:

  1. ./mysql -uroot -p'LRabR;xaS9lh' 
  2. 修改root默认密码,不然无法执行sql: 
  3. alter user user() identified by "Abcd@123";修改root用户密码 
  4. flush privileges;刷新 
  5. user mysql; 
  6. create user 'master'@'%' identified by 'Abcd@123'
  7. grant replication slave on *.* to 'master'@'%'
  8. flush privileges 
  9. show master status; 

备slave节点配置文件:

  1. [mysqld] 
  2. server-id=2 
  3. relay_log=slave-relay-bin 
  4. relay_log_index=slave-relay-bin.index 
  5. basedir=/app/mysql5722 
  6. datadir=/app/mysql5722/data 
  7. socket=/app/mysql5722/mysql.sock 
  8. user=mysql 
  9. character-set-server=utf8 
  10. lower_case_table_names=1 
  11. explicit_defaults_for_timestamp 
  12. port=3306 
  13. general-log=1 
  14. general-log-file=/app/mysql5722/logs/general.log 
  15. slow-query-log=1 
  16. long_query_time=1 
  17. slow_query_log_file=/app/mysql5722/slowquery.log 
  18. pid-file=/app/mysql5722/mysql.pid 
  19. slave-load-tmpdir=/app/mysql5722/slavetmp 
  20. max_connections=1000 
  21. # Disabling symbolic-links is recommended to prevent assorted security risks 
  22. symbolic-links=0 
  23. #skip-grant-tables 
  24. [mysqld_safe] 
  25. log-error=/app/mysql5722/logs/error.log 
  26. pid-file=/app/mysql5722/mysql.pid 
  27. [client] 
  28. port=3306 
  29. socket=/app/mysql5722/mysql.sock 
  30. user=mysql 

保存后重启从节点mysql。

备机:(slave)上配置:

登录mysql后执行:

  1. user mysql; 
  2. change master to master_host='10.1.60.71',master_user='master',master_password='abcd@123',master_log_file='master-bin.000001',master_log_pos=154; 
  3. show slave status\G; 
MySQL5.7数据库主从架构部署,你再也不用去问度娘了

保证如下两个值都为YES说明主从复制已经配置成功,需要注意的是两台服务器的防火墙策略,网络必须是互通的。

  1. Slave_IO_Running:YES  
  2. Slave_SQL_Running:YES 

当然此架构如果对外提供服务不想使用服务器的真实IP,你也可以安装keepalived做VIP对外进行提供服务!

【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

4人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

30人订阅学习

数据中心和VPDN网络建设案例

数据中心和VPDN网络建设案例

漫画+案例
共20章 | 捷哥CCIE

212人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微