linux 环境下 部署mysql 集群

概述

  • 环境描述:适用于新环境部署
    安装目录:/data/mysql
    数据目录:/data/mysqldata
    端口号 :3306
    socket :/data/mysqldata/mysql.sock
  • 补充说明
    若为有数据的单库切换为主从,在进行主从搭建操作前,需将主库数据备份还原至从库,再进行锁表建立主从

安装步骤

主从库操作

1、创建mysql用户组(无需设置密码)

groupadd mysql
useradd -g mysql -m mysql

2、下载mysql安装包并解压(放于/data/package)

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
tar -zxf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.25-linux-glibc2.12-x86_64 /data/mysql

3、建立数据目录

mkdir /data/mysqldata
chown -R mysql:mysql /data/mysqldata
chmod -R 777 /data/mysqldata

4、初始化,记下初始化后的随机密码

cd /data/mysql
./bin/mysqld --user=mysql  --basedir=/data/mysql --datadir=/data/mysqldata --initialize

5、配置配置文件
注意 :主从库server-id一定要不一样

vim /etc/my.cnf
[client]
port = 3306
socket = /data/mysqldata/mysql.sock
[mysqld]
#skip-grant-tables
basedir = /data/mysql
port = 3306
socket = /data/mysqldata/mysql.sock
datadir = /data/mysqldata
server-id = 1
log-bin = mysql-bin #打开二进制功能,MASTER主服务器必须打开此项
binlog-format=mixed
#gtid-mode=on
#enforce-gtid-consistency=true
master-info-repository=TABLE
slave-parallel-workers=0
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
expire_logs_days=7
max_binlog_size=1024M #binlog单文件最大值
max_connections = 3000
max_connect_errors = 30
character-set-server=utf8 #服务端默认字符集
wait_timeout=1800 #请求的最大连接时间
interactive_timeout=1800 #和上一参数同时修改才会生效
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #sql模式
max_allowed_packet = 10Md
bulk_insert_buffer_size = 8M
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 4M
key_buffer_size = 256M
read_buffer_size = 16K
skip-name-resolve
slow_query_log=1
long_query_time = 6
slow_query_log_file=slow-query.log
relay-log = /data/mysqldata/relay-bin
slave-skip-errors = 1032,1062
replicate-ignore-db =mysql
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_buffer_pool_size=2G   #此项根据实际修改,我这边4c8g通过性能测试选择的最佳大小 不加此项默认为128M
[mysql]
auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysqldump]
quick
max_allowed_packet = 16M

6、启动mysql

cd /data/mysql
cp -a ./support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start

7、添加环境变量

vim /etc/profile    #交互式
vim /etc/bashrc  #非交互式-加此环境变量为了后续自动化脚本连接数据库操作做准备
export PATH=$PATH:/data/mysql/bin

8、修改mysql root密码,并授予远程登录权限--初次登录为初始化密码

$mysql -u root -p 
mysql>alter user user() identified by '***'
远程登录授权
mysql>grant all privileges on *.* to root@'%' identified by '**';

主库操作
1、创建主从复制slave 账号

mysql>grant replication slave  on *.* to slave@'%' identified by '***';

2、锁表,查看master状态

mysql>flush tables with read lock;
mysql>show  master status;
记录mysql-bin以及pos位置

从库操作

1、change master

msyql>CHANGE MASTER TO

    MASTER_HOST = 'host', #另一台机器的地址

    MASTER_PORT = 3306, #另一台机器的端口

    MASTER_USER = 'slave',#另一台机器上第一步分配的用户名

    MASTER_PASSWORD = 'slave', #另一台机器上第一步分配的密码

    MASTER_LOG_FILE = 'mysql-bin.000001',#另一台机器上执行SHOW MASTER STATUS得到的文件名
    
    MASTER_LOG_POS = 192; #另一台机器上执行SHOW MASTER STATUS得到的偏移量

2、启动主从复制

主服务器执行
mysql>start slave

3、检查主从状态

mysql>show slave status\G;
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容