1. 数据库安装
安装 MySQL5.7, 主数据库为 192.168.2.221, 从数据库为 192.168.2.222, 服务器内存 8G
sudo apt-get install mysql-server
2. 主数据库配置
修改 / etc/mysql/my.cnf
- #master
- [mysqld]
- #common port = 3306 bind-address = 0.0.0.0 skip-name-resolve max_connections = 512
- #replicate server_id = 1 #replicate database binlog-do-db = test log_bin = mysql-bin
- #innodb innodb_buffer_pool_size = 6G innodb_flush_method = O_DIRECT innodb_log_buffer_size = 16M innodb_log_file_size = 2G innodb_log_files_in_group = 2
- sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
进入数据库, 添加同步用户
- shell>mysql -uroot -p
- mysql>create user 'repl'@'%' identified by 'password'; mysql>grant replication slave on * . * to 'repl'@'%';
记录 master 信息, File 和 Position
mysql>show master status\G ***************** 1. row ***************** File: mysql-bin.000001 Position: 154 Binlog_Do_DB: test Binlog_Ignore_DB: Executed_Gtid_Set:
重启数据库
sudo /etc/init.d/mysql restart
3. 从数据库配置
修改 / etc/mysql/my.cnf
- #slave
- [mysqld]
- #common port = 3306 bind-address = 0.0.0.0 skip-name-resolve max_connections = 512
- #replicate server_id = 2 #replicate database replicate-do-db = test
- #innodb innodb_buffer_pool_size = 6G innodb_flush_method = O_DIRECT innodb_log_buffer_size = 16M innodb_log_file_size = 2G innodb_log_files_in_group = 2 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
配置 slave
shell>mysql -uroot -p mysql>change master to master_host ='192.168.2.221',master_port=3306,master_user='repl',master_password='password',master_log_file='mysql-bin.000001',master_log_pos=154; mysql>start slave;
重启数据库
shell>sudo /etc/init.d/mysql restart shell>mysql -uroot -p mysql>show slave status\G; ***************** 1. row ***************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.2.221 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000006 Read_Master_Log_Pos: 84848971 Relay_Log_File: database-2-relay-bin.000018 Relay_Log_Pos: 84849184 Relay_Master_Log_File: mysql-bin.000006 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: test 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: 84848971 Relay_Log_Space: 84849443 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: afa582dc-2628-11e6-9226-408d5ce1124f Master_Info_File: /var/lib/mysql/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates 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 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version:
连接成功
4. 批量插入性能
批量插入语句
insert into mt_data(mac,time,device_id,intensity,ap_mac,channel,virtual_type)values(......)*n
n 为 300 时, 每秒插入达到 35000 条数据
来源: http://www.linuxidc.com/Linux/2018-08/153815.htm