梦里花落知多少一一能捡多少是多少

开发

开发

技术栈:
知识点:

mariadb常用命令

  • #容器安装mariadb前条件置
  • dnf install libaio
  • #安装mariadb
  • dnf install mariadb-server
  • #初始化文件
  • mariadb-install-db
  • #mariadb初始化设置
  • mariadb-secure-installation
  • #授权远程访问(淘汰)
  • GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
  • #授权远程访问
  • RENAME USER 'root'@'localhost' TO 'root'@'%';
  • #还原备份文件(数据库存在的情况)
  • mariadb -u root -p 数据库名</home/文件名.sql
  • #备份
  • mariadb-dump -uroot -p lxpwechat>lxpwechat.sql
  • #备份 --extended-insert
  • mariadb-dump -uroot -p --extended-insert lxpwechat>lxpwechat.sql
  • #主从检查
  • SHOW SLAVE STATUS
  • #缓存设置
  • SHOW variables like '%query_cache%'
  • #缓存使用情况
  • SHOW STATUS LIKE 'Qcache%';

mariadb主从同步Slave_IO_Running:NO/Slave_SQL_Running:NO处理

  • #方法一:可手动同步不一致的情况
  • STOP SLAVE;
  • SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;#跳过当前错误,报错信息可以看到sql语句可以手动处理
  • START SLAVE;
  • #方法二:Binlog位置不同
  • SHOW MASTER STATUS#主库执行
  • STOP SLAVE;#故障库执行
  • #reset slave#尽量别用,用了以后两个都会是yes,但是很有之前不同布的数据就不同步了
  • change master to master_log_file = 'master-bin.000012', master_log_pos=71474;#master-bin.000012和71474来源第一个主库执行
  • #完整语法如下,非必须
  • #CHANGE MASTER TO
  • #MASTER_HOST='master_server_ip',
  • #MASTER_USER='replication_user',
  • #MASTER_PASSWORD='replication_password',
  • #MASTER_PORT=3306, #-- 主库端口
  • #MASTER_LOG_FILE='binlog_filename', #-- 主库最新的Binlog文件名
  • #MASTER_LOG_POS=log_pos_value; #-- 主库Binlog中的位置
  • START SLAVE;
  • #方法三:终极解决办法重做同步
  • flush tables with read lock;#主库只读
  • mysqldump -uroot -p databasename>databasename.sql;#备份主数据库
  • mariadb -u root -p 数据库名</home/文件名.sql;#还原到故障数据库
  • SHOW MASTER STATUS#主库查询,主数据库查询文件和位置
  • STOP SLAVE;#故障库执行
  • change master to master_log_file = 'master-bin.000012', master_log_pos=71474;#故障库设置master-bin.000012和71474来源第一个主库执行
  • START SLAVE;#故障库同步
  • unlock tables#主库执行解锁

mariadb互为主从

  • /etc/my.cnf #服务器A
  • [mysqld]
  • server-id=10
  • log-bin=master-bin
  • relay-log=relay-bin
  • sync-binlog = 1
  • binlog-ignore-db = mysql #不同步的数据库名称
  • binlog-ignore-db = information_schema #不同步的数据库名称
  • character-set-server=utf8mb4
  • skip-name-resolve
  • auto_increment_increment=2
  • auto_increment_offset=1
  • expire_logs_days=30
  • table_definition_cache = 2000
  • slave_net_timeout=3600
  • max_connections=3000
  • innodb_file_per_table = 1
  • performance_schema=ON
  • innodb_buffer_pool_size = 4G
  • innodb_log_file_size=512M
  • performance_schema
  • performance_schema_events_waits_history_size=20
  • performance_schema_events_waits_history_long_size=15000
  • max_allowed_packet=100M
  • innodb_lock_wait_timeout=120
  • join_buffer_size = 2M
  • binlog_cache_size=16M
  • query_cache_size=256M
  • query_cache_type=1
  • expire_logs_days=30
  • table_definition_cache = 2000
  • slave_net_timeout=3600
  • [Service]
  • LimitNOFILE=10000
  • LimitNPROC=10000
  • [client]
  • default-character-set=utf8mb4
  • /etc/my.cnf #服务器B
  • [mysqld]
  • server-id=20
  • log-bin=master-bin
  • relay-log=relay-bin
  • sync-binlog = 1
  • binlog-ignore-db = mysql #不同步的数据库名称
  • binlog-ignore-db = information_schema #不同步的数据库名称
  • auto_increment_increment=2
  • auto_increment_offset=2
  • expire_logs_days=30
  • table_definition_cache = 2000
  • slave_net_timeout=3600
  • max_connections=3000
  • innodb_file_per_table = 1
  • performance_schema=ON
  • innodb_buffer_pool_size = 4G
  • innodb_log_file_size=512M
  • performance_schema
  • performance_schema_events_waits_history_size=20
  • performance_schema_events_waits_history_long_size=15000
  • max_allowed_packet=100M
  • innodb_lock_wait_timeout=120
  • join_buffer_size = 2M
  • binlog_cache_size=16M
  • query_cache_size=256M
  • query_cache_type=1
  • expire_logs_days=30
  • table_definition_cache = 2000
  • slave_net_timeout=3600
  • [Service]
  • LimitNOFILE=10000
  • LimitNPROC=10000
  • [client]
  • default-character-set=utf8mb4
  • #两台机器添加
  • GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';#创建同步帐号
  • flush privileges
  • #A机器执行
  • SHOW MASTER STATUS
  • #B机器执行
  • STOP SLAVE;
  • CHANGE MASTER TO MASTER_HOST='A机器IP', MASTER_USER='slave刚刚帐号', MASTER_PASSWORD='刚刚的密码', MASTER_PORT=3306, MASTER_LOG_FILE='上一个查询A机器文件名', MASTER_LOG_POS=上一个查询A机器位置;
  • START SLAVE;
  • #B机器执行
  • SHOW MASTER STATUS
  • #A机器执行
  • STOP SLAVE;
  • CHANGE MASTER TO MASTER_HOST='B机器IP', MASTER_USER='slave刚刚帐号', MASTER_PASSWORD='刚刚的密码', MASTER_PORT=3306, MASTER_LOG_FILE='上一个查询B机器文件名', MASTER_LOG_POS=上一个查询B机器位置;
  • START SLAVE;