金沙国际官网_金沙国际平台登录

因为这个金沙国际官网_金沙国际平台登录网站与很多的大型澳门赌场都有合作,金沙国际官网_金沙国际平台登录尽职尽责,高效执行,保持好奇心,不断学习,追求卓越,点击进入金沙国际官网_金沙国际平台登录马上体验吧,所以现在也正式地开始了营业。

您的位置:金沙国际官网 > 数据库 > 关于解决sql2012编辑器对象名无效问题,阿里云

关于解决sql2012编辑器对象名无效问题,阿里云

发布时间:2019-11-06 12:29编辑:数据库浏览(59)

    出现以下情况:

    前言

    最近尝试在阿里云RDS与ECS自建库之间搭建主从复制,主要是想用于备份数据,所以对于同步一致性要求不是很高.模拟了几次,遇到的一些坑记录在这里,使用的是基于GTID的主从服务,关于GTID:
    MySQL GTID是在传统的mysql主从复制的基础之上演化而来的产物,即通过UUID加上事务ID的方式来确保每一个事物的唯一性。这样的操作方式使得我们不再需要关心所谓的log_file和log_Pos,只是简单的告诉从库,从哪个服务器上去找主库就OK了。简化了主从的搭建以及failover的过程,同时比传统的复制更加安全可靠。由于GTID是连续没有空洞的,因此主从库出现数据冲突时,可以通过注入空事物的方式进行跳过
    

    MySQL5.7杀手级新特性:GTID原理与实战

    引入EasyUi所有需要的脚本,样式 

    图片 1

    具体过程如下:

    <link href="/easyui/themes/default/easyui.css" rel="stylesheet" />
    <link href="/easyui/themes/icon.css" rel="stylesheet" />
    <script src="/easyui/jquery.min.js"></script>
    <script src="/easyui/jquery.easyui.min.js"></script>
    <script src="/easyui/locale/easyui-lang-zh_CN.js"></script>
    

    解决办法:

    1 准备工作,申请阿里云RDS

    a 登录 RDS 控制台,选择目标实例。
    b 配置从实例读取数据使用的只读账号和授权数据库。
    c 将从实例的 IP 地址加入主实例的 IP 白名单中 [同一地域 则可以内网IP] 
    d 登录主实例 [如果外部无法登录 白名单添加0.0.0.0/0][或者提工单]
    e 查询主实例的 server-id [show variables like '%server_id%';] # 记下这个id,不能与slave的相同
    

    JS脚本部分

    选择“编辑”——“Intellisense”——“刷新本地缓存”

    2 配置从实例 (slave)

    图片 2图片 3

    或者按Ctrl+Shift+R组合键

    需要先安装mysql5.6以上
    https://segmentfault.com/n/1330000014166676#articleHeader8
    
    --$ systemctl stop mysqld
    --$ vim /etc/my.cnf
    
    [mysqld]
    server-id=1629281463  # 从实例的id,不能与master的id相同
    port=3306
    log-bin-trust-function-creators=1 # 设置为1,MySQL不会对创建存储函数实施限制
    
    slave-skip-errors = 1032,1062,1007,1050  # 
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    log-bin=/var/lib/mysql/mysql-bin
    expire_logs_days=10 # 控制binlog日志文件保留时间
    max_binlog_size=100M             
    replicate-ignore-db=mysql   # 不需要同步的库            
    replicate-ignore-db=information_schema    
    replicate-ignore-db=performance_schema   
    #GTID
    gtid_mode=on
    enforce_gtid_consistency=on
    binlog_format=row     # 设置日志格式为row          
    log-slave-updates=1
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Recommended in standard MySQL setup
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    --$ systemctl start mysqld
    
      1 <script type="text/javascript">
      2     $(function () {
      3         obj = {
      4             editRow: undefined, 
      5             add: function () {
      6       
      7                 $('#save,#redo').show();
      8                 if (this.editRow == undefined)
      9                  {
     10                     /*appenRow  在末尾添加一行*/
     11                     $('#box').datagrid('insertRow', {
     12                         index: 0,
     13                         row: {
     14                             cityname: '',
     15                             intro: '',
     16                             code: '',
     17                         }
     18                     });
     19                     //将第一行设置为可编辑状态
     20                     $("#box").datagrid('beginEdit', 0),
     21                    this.editRow =0 ;
     22 
     23                 }
     24             },
     25          
     26             edit:function()
     27             {
     28                 var rows = $('#box').datagrid('getSelections');
     29                 if (rows.length == 1) {
     30                     if (this.editRow != undefined) {
     31 
     32                         $("#box").datagrid('endEdit', this.editRow)
     33 
     34                     }
     35                     if (this.editRow == undefined) {
     36                         var index=$("#box").datagrid('getRowIndex',rows[0])
     37                         $('#save,#redo').show();
     38                         $("#box").datagrid('beginEdit', index)
     39                         this.editRow = index
     40                         //关闭当前行编辑状态
     41                         $("#box").datagrid('unselectRow',index)
     42                     }
     43                 }
     44                 else {
     45                     $.messager.alert('警告', '修改只能选中一行','warning');
     46                 }
     47                 
     48             },
     49             /*删除*/
     50             remove:function()
     51             {
     52                 var rows = $('#box').datagrid('getSelections');
     53                 if (rows.length > 0) {
     54                     $.messager.confirm('确定操作', '您确定要删除所选中的记录吗', function (flag) {
     55                         if (flag)
     56                         {
     57                             var ids = [];
     58                             for (var i = 0; i < rows.length; i++)
     59                             {
     60                                 ids.push(rows[i].cid);
     61                             }
     62                             $.ajax(
     63                                 {
     64                                     url: "/cityManager/cityRemove",
     65                                     data:{"ids":ids.join(',')},
     66                                     type: "post",
     67                                     success: function (data)
     68                                     {
     69                                         if (data.Message == "Success")
     70                                         {
     71                                             $("#box").datagrid("loaded");
     72                                             $("#box").datagrid("load");
     73                                             $("#box").datagrid("unselectAll");
     74                                             $.messager.show({
     75                                                 title: '提示',
     76                                                 msg:data.flag+'个信息被删除成功!',
     77                                             })
     78                                         }
     79                                     },
     80                                     error: function (data)
     81                                     {
     82                                         $.messager.alert(data);
     83                                     }
     84                                 });
     85                                  obj.editRow = undefined;
     86                         }
     87                     }
     88                     )
     89                 }
     90                 else {
     91                     $.messager.alert('警告','请选中一行或多行','info')
     92 
     93                 }
     94             },
     95             save: function ()
     96             {
     97                 //这两句不应该放这里,应该是保存之后放这里
     98                 //$('#save,#redo').hide();
     99                 //this.editRow = false;
    100                 //将第一行设置为结束编辑
    101                 //保存当前行的数据结束编辑     
    102                 $("#box").datagrid('endEdit', this.editRow)
    103              
    104             },
    105             redo: function ()
    106             {
    107                 $('#save,#redo').hide();
    108                 this.editRow = undefined;
    109                 /*回滚所有从创建或上一次调用acceptChanges函数后更该的数据*/
    110                $("#box").datagrid('rejectChanges')
    111             }
    112         };  
    113         /*加载表格*/
    114         $("#box").datagrid({
    115             url: '/cityManager/cityQuery',
    116             singleSelect: false,//多选
    117             pagination: true,//分页
    118             pageSize: 10,//页面大小
    119             pageList: [5, 10, 15, 20, 30, 50, 80, 200],
    120             rownumbers:true,//编号
    121             title: "城市信息",
    122             //右击表格事件
    123             onRowContextMenu:function(e,rowIndex,rowData)
    124             {
    125                 /*去掉默认的右击的面板*/
    126                 e.preventDefault();
    127                 /*显示Menu锁定位置*/
    128                 $('#menu').menu('show', {
    129                     left: e.pageX,
    130                     top: e.pageY,
    131 
    132                 })
    133             },
    134 
    135             //双击选中行执行的事件(索引行,数据)
    136             onDblClickRow: function (rowIndex, rowData) {  
    137                 //将上一次编辑行关闭并且保存        
    138                 if (obj.editRow!=undefined) {
    139                     $("#box").datagrid('endEdit', obj.editRow);
    140                     
    141                 }
    142                 if (obj.editRow == undefined) {
    143                     $('#save,#redo').show();
    144                     $("#box").datagrid('beginEdit', rowIndex);
    145                     obj.editRow = rowIndex;
    146                 }
    147             },
    148             
    149             //编辑结束后事件 *添加和跟新的操作在这了*/
    150           onAfterEdit:function(rowIndex,rowDate,changes)
    151           {
    152               var url = '';
    153               var info = '';
    154               /*从上一次的提交获取所有行,类型参数有,inserted,deleted,updated
    155               返回的一个数组 */           
    156               var inserted = $("#box").datagrid('getChanges', 'inserted');
    157               var updated = $("#box").datagrid('getChanges', 'updated');
    158               /*添加*/
    159                if (inserted.length> 0)
    160                 {
    161                     url = '/cityManager/addCity';
    162                    info = '添加';
    163                }
    164               /*更新*/
    165                 if (updated.length > 0)
    166                 {
    167                     url = '/cityManager/EditCity';
    168                     var info = '更新';
    169                 }
    170                 $.ajax(
    171                     {
    172                         url: url,
    173                         data: rowDate,
    174                         type: "post",
    175                         success: function (data) {
    176                             if (data.Message == "Success") {
    177                                 $("#box").datagrid("loaded");//重新加载
    178                                 $("#box").datagrid("load");//加载
    179                                 $("#box").datagrid("unselectAll");//去掉所有复选框
    180                                 $.messager.show({
    181                                     title: '提示',
    182                                     msg: data.flag + '个信息被"'+info+'"成功!',
    183                                 })                   
    184                             }
    185                         },
    186                         error: function (data) {
    187                             $.messager.alert(data);
    188                         }
    189                     });
    190                 $('#save,#redo').hide();
    191                 obj.editRow = undefined;//将对象重新赋值为undefined                        
    192             },        
    193           columns: [[
    194               {
    195                   field: "cid",
    196                   title: "编号",   
    197                   align: 'center',
    198                   width: 300,
    199                   checkbox:true
    200               },
    201                 {
    202                     field: "cityname",
    203                     title: "城市名称",
    204                     //   hidden: true 隐藏列
    205                     align: 'center',
    206                     width: 300,
    207                     editor: {
    208                         type: 'validatebox',
    209                         options: {
    210                             required:true,
    211                         }
    212                     }
    213                 },
    214                 {
    215                     field: "intro",
    216                     title: "介绍",     
    217                     align: 'center',
    218                     width: 100,
    219                     editor: {  //设置为编辑行
    220                         type: 'validatebox',
    221                         options: {
    222                             required: true,
    223                         }
    224                     }
    225                 },
    226             {
    227                 field: "code",
    228                 title: "代码",
    229                 align: 'center',
    230                 width: 100,
    231                 editor: {  //
    232                     type: 'validatebox',
    233                     options: {
    234                         required: true,
    235                     }
    236                 }
    237             },
    238             {
    239                 field: "createtime",
    240                 title: "创建时间",
    241                 align: 'center',
    242                 width: 100,
    243                 editor: {  //
    244                     type: 'datetimebox',
    245                     options: {
    246                         required: true,
    247                     }
    248                 }
    249             },
    250             ]],
    251             toolbar: "#tb",
    252         })   
    253     })
    254 </script>
    

     

    3 查看是否开启了binlog,及使用的日志格式

    >>> show variables like '%binlog_format%';
    
    1. Row
    日志中会记录成每一行数据被修改的形式,然后在 slave 端再对相同的数据进行修改。
    2. Statement
    每一条会修改数据的 SQL 都会记录到 master 的 bin-log 中。slave 在复制的时候 SQL 进程会解析成和原来 master 端执行过的相同的 SQL 再次执行
    

    View Code

    图片 4

    4 将主实例数据全量同步到从实例 (最好下载RDS控制台的备份数据,不要mysqldump),详见恢复云数据库MySQL的备份文件到自建数据库

    # GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'IDENTIFIED BY 'passwd' WITH GRANT OPTION;
    # CREATE DATABASE sakila DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    # mysqldump -uname -hmasterhost.mysql.rds.aliyuncs.com -p --databases exampledb > exampledb.sql
    # mysqldump -uname -p < exampledb.sql
    

    HTML部分

    本文由金沙国际官网发布于数据库,转载请注明出处:关于解决sql2012编辑器对象名无效问题,阿里云

    关键词: