Mysql中怎么创建数据库并配置主从

59次阅读
没有评论

共计 4757 个字符,预计需要花费 12 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 Mysql 中怎么创建数据库并配置主从,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1、主服务器上创建一个用于复制的账户。

mysql GRANT REPLICATION SLAVE ON *.* TO repl @ 192.168.101.3 IDENTIFILED BY Mysqlrepl
 mysql flush privileges;

2、主服务器参数修改

[root@localhost ~]# vi /usr/my.cnf
修改如下内容
server-id = 1
 log-bin=mysql-bin

3、主服务器备份数据,并传输

mysql   flush tables with read lock;
 mysql show master status;
 +——————+———-+————–+——————+——————-+
 | File  | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 +——————+———-+————–+——————+——————-+
 | mysql-bin.00002 |  120 |  |  |  |
 +——————+———-+————–+——————+——————-+
 1 row in set (0.00 sec)

[root@localhost ~]# mysqldump -uroot -p –all-databases | gzip export_t.sql.gz
 [root@localhost ~]# scp export_t.sql.gz root@192.168.101.3:/tmp/

mysql unlock tables;

4、从服务器恢复数据

[root@localhost bin]# gunzip export_t.sql.gz
 [root@localhost bin]# mysql -uroot -p
 mysql source /tmp/export_t.sql.gz;

5、修改从服务器配置

[root@localhost bin]# vi /usr/my.cnf
添加如下内容
server-id = 2
重启服务器
[root@localhost ~]# service mysql restar

6、从服务器设置主从配置

mysql CHANGE MASTER TO
 – MASTER_HOST= 192.168.101.5 ,
 – MASTER_USER= repl , 
 – MASTER_PASSWORD= Mysqlrepl ,
 – MASTER_LOG_FILE= mysql-bin.00002 ,
 – MASTER_PORT=3306,
 – MASTER_LOG_POS=120;

 MASTER_HOST 指的是主服务器的 IP 地址,
MASTER_USER 指的是复制的账户
MASTER_PASSWORD 指的是账户的密码
MASTER_PORT 指的是主服务器端口
MASTER_LOG_FILE 指的是 bin-log 的文件
MASTER_LOG_POS 指的是日志文件位

7、从服务器启动 slave 线程

mysql start slave;
 mysql show processlist;
 +—-+————-+———–+——+———+——+—————————————————————————–+——————+———–+—————+
 | Id | User  | Host  | db  | Command | Time | State  | Info  | Rows_sent | Rows_examined |
 +—-+————-+———–+——+———+——+—————————————————————————–+——————+———–+—————+
 |  1 | system user |  | NULL | Connect |  714 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL  |  0 |  0 |
 |  2 | system user |  | NULL | Connect |  714 | Waiting for master to send event  | NULL  |  0 |  0 |
 |  4 | root  | localhost | NULL | Query  |  0 | init  | show processlist |  0 |  0 |
 +—-+————-+———–+——+———+——+—————————————————————————–+——————+———–+—————+
 3 rows in set (0.08 sec)

这已经表明主从已经搭建成功。

8、测试

主服务器中

mysql use test
 Database changed
 mysql select * from aaa;
 +——+——+
 | a  | b  |
 +——+——+
 |  1 |  2 |
 |  1 |  2 |
 |  1 |  2 |
 |  2 |  3 |
 |  2 |  7 |
 +——+——+
 5 rows in set (0.06 sec)

从服务器中

mysql   use test;
 Database changed
 mysql select * from aaa;
 +——+——+
 | a  | b  |
 +——+——+
 |  1 |  2 |
 |  1 |  2 |
 |  1 |  2 |
 |  2 |  3 |
 |  2 |  7 |
 +——+——+
 5 rows in set (0.21 sec)

主服务器中

mysql insert into aaa values (5,7),(56,21);
 Query OK, 2 rows affected (0.21 sec)
 Records: 2  Duplicates: 0  Warnings: 0

mysql select * from aaa;
 +——+——+
 | a  | b  |
 +——+——+
 |  1 |  2 |
 |  1 |  2 |
 |  1 |  2 |
 |  2 |  3 |
 |  2 |  7 |
 |  5 |  7 |
 |  56 |  21 |
 +——+——+
 7 rows in set (0.00 sec)

从服务器中

mysql select * from aaa;
 +——+——+
 | a  | b  |
 +——+——+
 |  1 |  2 |
 |  1 |  2 |
 |  1 |  2 |
 |  2 |  3 |
 |  2 |  7 |
 |  5 |  7 |
 |  56 |  21 |
 +——+——+
 7 rows in set (0.00 sec)

9、管理主从

查看从服务器状态

mysql show slave status \G;
 *************************** 1. row ***************************
  Slave_IO_State: Waiting for master to send event
  Master_Host: 192.168.101.5
  Master_User: repl
  Master_Port: 3306
  Connect_Retry: 60
  Master_Log_File: mysql-bin.00002
  Read_Master_Log_Pos: 120
  Relay_Log_File: localhost-relay-bin.000001
  Relay_Log_Pos: 283
  Relay_Master_Log_File: mysql-bin.000036
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  Replicate_Do_DB:
  Replicate_Ignore_DB:
  Replicate_Do_Table:
  Replicate_Ignore_Table:
  Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
  Last_Errno: 0
  Last_Error:
  Skip_Counter: 0
  Exec_Master_Log_Pos: 120
  Relay_Log_Space: 460
  Until_Condition: None
  Until_Log_File:
  Until_Log_Pos: 0
  Master_SSL_Allowed: No
  Master_SSL_CA_File:
  Master_SSL_CA_Path:
  Master_SSL_Cert:
  Master_SSL_Cipher:
  Master_SSL_Key:
  Seconds_Behind_Master: 0
 Master_SSL_Verify_Server_Cert: No
  Last_IO_Errno: 0
  Last_IO_Error:
  Last_SQL_Errno: 0
  Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
  Master_Server_Id: 1
  Master_UUID: 86d34969-fa5d-11e6-b372-000c29c88c3f
  Master_Info_File: /usr/master.info
  SQL_Delay: 0
  SQL_Remaining_Delay: NULL
  Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
  Master_Retry_Count: 86400
  Master_Bind:
  Last_IO_Error_Timestamp:
  Last_SQL_Error_Timestamp:
  Master_SSL_Crl:
  Master_SSL_Crlpath:
  Retrieved_Gtid_Set:
  Executed_Gtid_Set:
  Auto_Position: 0
 1 row in set (0.00 sec)

关心的两个信息是 Slave_IO_Running 和 Slave_SQL_Running 是否是 YES。Slave_IO_Running 是从主服务器读取 BINLOG 日志,并写入到从服务器的中继日志中;Slave_SQL_Running 负责读取和执行中继日志信息。

注意:如果需要从服务器禁止写入操作,则需要更改参数 read-only,使从服务器非 root 账户只能读数据。

关于 Mysql 中怎么创建数据库并配置主从就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计4757字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)