MySQL 主从模式部署

本贴最后更新于 2221 天前,其中的信息可能已经渤澥桑田

1.下载 tar.gz 格式的安装包

下载地址 https://dev.mysql.com/downloads/mysql/

2.解压

tar -zvxf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql5719 mv mysql5719 /mysql chown -R mysql:mysql /mysql/mysql5719

3.配置 my.cnf

master 节点配置,进入到/mysql/mysql5719 目录下面,创建文件 my.cnf,文件内容如下

[mysqld] datadir=/mysql/mysql5719/data socket=/mysql/mysql5719/data/mysql.sock tmpdir = /tmp user=mysql basedir = /mysql/mysql5719 log-bin = master-bin log-bin-index = master-bin.index server-id = 1 # Disabling symbolic-links is recommended to prevent assorted security risks #symbolic-links=0 #key_buffer = 16M key_buffer_size = 32M max_allowed_packet = 16M thread_stack = 128K thread_cache_size = 64 query_cache_limit = 8M query_cache_size = 64M query_cache_type = 1 # Important: see Distributing the Databases and Setting max_connections max_connections = 3000 binlog_format=mixed log_bin_trust_function_creators = 1 ## @!!@ lower_case_table_names = 1 #default-storage-engine=InnoDB #character_set_client=utf8 #default-collation=utf8_unicode_ci character-set-server=utf8 collation-server=utf8_unicode_ci read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 8M join_buffer_size = 8M lower_case_table_names = 1 # InnoDB settings innodb_data_home_dir=/mysql/mysql5719/data innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 64M innodb_buffer_pool_size = 2G innodb_thread_concurrency = 8 innodb_flush_method = O_DIRECT innodb_log_file_size = 512M #skip-grant-tables #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

slave 节点配置,进入到/mysql/mysql5719 目录下面,创建文件 my.cnf,文件内容如下

[mysqld] datadir=/mysql/mysql5719/data socket=/mysql/mysql5719/data/mysql.sock user=mysql port = 3306 basedir =/mysql/mysql5719 tmpdir =/tmp relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index server-id = 2 # Disabling symbolic-links is recommended to prevent assorted security risks #symbolic-links=0 #key_buffer = 16M key_buffer_size = 32M max_allowed_packet = 16M thread_stack = 128K thread_cache_size = 64 query_cache_limit = 8M query_cache_size = 64M query_cache_type = 1 # Important: see Distributing the Databases and Setting max_connections max_connections = 3000 binlog_format=mixed log_bin_trust_function_creators = 1 ## @!!@ lower_case_table_names = 1 #default-storage-engine=InnoDB #character_set_client=utf8 #default-collation=utf8_unicode_ci character-set-server=utf8 collation-server=utf8_unicode_ci read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 8M join_buffer_size = 8M lower_case_table_names = 1 # InnoDB settings innodb_data_home_dir=/mysql/mysql5719/data innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 64M innodb_buffer_pool_size = 2G innodb_thread_concurrency = 8 innodb_flush_method = O_DIRECT innodb_log_file_size = 512M #skip-grant-tables #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

4.创建数据目录

mkdir /mysql/mysql5719/data

5.修改 mysql 服务启动脚本

mysql_4-1.png


mysql_4-2.png

6.初始化数据库(root 操作)

./bin/mysqld --defaults-file=./my.cnf --initialize

mysql_5-1.png

上图红框里面就是 root 的初始密码

7.启动 MySQL 服务(root 操作)

mysql_6-1.png

8.设置 mysql.sock

ln -s /mysql/mysql5721/data/mysql.sock /tmp/mysql.sock

mysql_7-1.png

9.设置 root 密码(初始密码在初始化数据库的时候生成)

set password for root@localhost = password('Zaq1@wsx');

mysql_8-1.png

10.设置 MySQL 服务

cp mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld

mysql_9-1.png

如果出现下面的报错

mysql_9-2.png

原因:MySQL 默认的日志:/var/log/mysqld.log 被占用了,删除即可。

mysql_9-3.png

11.设置 MySQL 客户端

mv /usr/bin/mysql /usr/bin/mysql.bak #删除备份旧的mysql命令,若不存在可忽略 cp mysql /usr/bin/ chmod 755 /usr/bin/mysql

mysql_10-1.png

到此为止,master 机器的安装配置完成,接下来安装 slave 机器,slave 机器的安装和 master 类似,但请注意 my.cnf 配置不一样

12.在 master 上添加主从同步用户

GRANT REPLICATION SLAVE ON *.* TO 'rep_user'@'%' IDENTIFIED BY 'Qwer1@#$';

mysql_11-1.png

查看主服务器,出现以下类似信息

mysql> show master status;

mysql_11-2.png

13.配置 slave 服务器

mysql -u root -p #进入MySQL控制台 stop slave; #停止slave同步进程 change master to master_host='134.176.72.82',master_user='rep_user',master_password='Qwer1@#$',master_log_file='master-bin.000002' ,master_log_pos=837; #执行同步语句 start slave; #开启slave同步进程 SHOW SLAVE STATUS\G #查看slave同步信息,出现以下内容

mysql_12-1.png

mysql_12-2.png

注意查看:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上这两个参数的值为 Yes,即说明配置成功!

14.测试 MySQL 主从服务器双机热备是否成功

(1)进入 MySQL 主服务器

mysql -u root -p #进入主服务器MySQL控制台 mysql> create database test; mysql> use test; #进入数据库 mysql> CREATE TABLE test ( id int not null primary key,name char(20) ); #创建test表 mysql> insert into test values(001,'zhangsan'); mysql> insert into test values(002,'lisi');

(2)进入 MySQL 从服务器

mysql -u root -p #进入MySQL控制台 use test; #进入数据库 show tables; #查看mstest库,会看到有一个新建的表test,表示数据库同步成功 select * from test;
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...