• MySQL工作中遇到的问题记录


    1:log_slave_updates:

    从库1搭建级联从库2,从库1需要开启log_slave_updates,修改/etc/my.cnf,增加一行log_slave_updates=1,重启数据库。

    http://blog.itpub.net/12679300/viewspace-1319263/

    2:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,or READS SQL DATA in its declaration and binary logging is enabled(you *might* want to use the less safe log_bin_trust_function_creators variable)

    主从复制架构下,从库报1418,SQL线程停止。解决:关闭log_bin=OFF,或者从库设置set global log_bin_trust_function_creators=TRUE;

    3:遇到的问题:gunzip < /tmp/test.sql.gz  |mysql -uroot -proot --socket=/u02/33061/tmp/mysql.sock test,第一次导入表数据,第二次导入表的增量数据,第二次的数据覆盖掉第一次导入的数据。

    当将备份test.sql.gz导入新的数据库之后,如果再通过这种方式导入同一张表的增量数据时,会覆盖掉第一次导入的数据。

    实验演示:

     1 在同一个MySQL数据库实例下进行验证
     2 session1:
     3 mysql> use mydb1;
     4 Reading table information for completion of table and column names
     5 You can turn off this feature to get a quicker startup with -A
     6 Database changed
     7 mysql> select * from test;
     8 +------+--------+
     9 | id   | name   |
    10 +------+--------+
    11 |    1 | test1  |
    12 |    2 | test2  |
    13 |    3 | test3  |
    14 |   10 | test10 |
    15 |   11 | test11 |
    16 |   12 | test12 |
    17 |   13 | test13 |
    18 |   20 | test20 |
    19 |   21 | test21 |
    20 |   22 | test22 |
    21 |   23 | test23 |
    22 +------+--------+
    23 11 rows in set (0.00 sec)
    24 新建数据库test
    25 mysql> create database test;
    26 session2:备份mydb1下的test表的数据
    27 mysqldump -uroot -p --socket=/u02/33061/tmp/mysql.sock mydb1 test |gzip > /tmp/test.sql.gz
    28 导入到新数据库test
    29 gunzip < /tmp/test.sql.gz  |mysql -uroot -proot --socket=/u02/33061/tmp/mysql.sock test
    30 session1:
    31 验证test表的数据,可见,数据库成功恢复到test库
    32 mysql> use test;
    33 mysql> select * from test;
    34 +------+--------+
    35 | id   | name   |
    36 +------+--------+
    37 |    1 | test1  |
    38 |    2 | test2  |
    39 |    3 | test3  |
    40 |   10 | test10 |
    41 |   11 | test11 |
    42 |   12 | test12 |
    43 |   13 | test13 |
    44 |   20 | test20 |
    45 |   21 | test21 |
    46 |   22 | test22 |
    47 |   23 | test23 |
    48 +------+--------+
    49 11 rows in set (0.00 sec)
    50 
    51 此时,mydb1库test表新增数据
    52 mysql> use mydb1;
    53 mysql> insert into test values (100,'test100');
    54 mysql> select * from test;
    55 +------+--------+
    56 | id   | name   |
    57 +------+--------+
    58 |    1 | test1  |
    59 |    2 | test2  |
    60 |    3 | test3  |
    61 |   10 | test10 |
    62 |   11 | test11 |
    63 |   12 | test12 |
    64 |   13 | test13 |
    65 |   20 | test20 |
    66 |   21 | test21 |
    67 |   22 | test22 |
    68 |   23 | test23 |
    69 |  100 | test100|
    70 +------+--------+
    71 12 rows in set (0.00 sec)
    72 session2:
    73 对新增数据进行备份:
    74 mysqldump -uroot -p --socket=/u02/33061/tmp/mysql.sock mydb1 test  --where="id>23" |gzip > /tmp/test1.sql.gz
    75 
    76 第二次导入新数据:
    77 gunzip < /tmp/test1.sql.gz  |mysql -uroot -proot --socket=/u02/33061/tmp/mysql.sock test
    78 
    79 session1:
    80 mysql> use test;
    81 Reading table information for completion of table and column names
    82 You can turn off this feature to get a quicker startup with -A
    83 
    84 Database changed
    85 mysql> select * from test;
    86 +------+---------+
    87 | id   | name    |
    88 +------+---------+
    89 |  100 | test100 |
    90 +------+---------+
    91 1 row in set (0.00 sec)
    92 由此可见,覆盖掉了第一次导入的数据。
    View Code
  • 相关阅读:
    Pandas 学习记录(一)
    python 列表常用操作
    pandas 基本操作
    Numpy np.array 相关常用操作学习笔记
    JS控制背景音乐 没有界面
    Linux Awk使用案例总结
    Yii2 定时任务创建(Console 任务)
    YII2项目常用技能知识总结
    /etc/fstab readyonly 解决办法
    Redis 排行榜 自己简单练习
  • 原文地址:https://www.cnblogs.com/elontian/p/8436225.html
Copyright © 2020-2023  润新知