xml地图|网站地图|网站标签 [设为首页] [加入收藏]
delete表别名用法简介,开发进阶篇系列
分类:数据库

转自:http://www.maomao365.com/?p=6973 

背景:MySQL5.6.40,库比较小,row+gtid复制环境,但由于以前种种原因,备份还原在从库后,开启复制存在大量1062,1032错误,gtid卡在靠前位置。做复制的时候没有任何从库,每小时的备份也被运维停了。

概述  

  对于二进制安装,优点是可以安装到任何路径下,灵活性好,一台服务器可以安装多个mysql。缺点是已经绎过编译,性能不如源码编译得好,不能灵活定制编译参数。如果用户即不想安装最简单却不够灵活的RPM包,又不想安装复杂费时的源码包,那么已编译好的二进制包将是最好的选择。

摘要:
在sql脚本编写中,如果需要在update delete 中使用表别名的方法,必须按照一定的规则编写,否则将会出现相应的异常信息,如下所示:
实验环境:sqlserver 2008 R2

以前从来没遇到过这种情况,相对测试环境正式环境比较复杂,而且猜测可能是之前备份还原从来没用过备份一致性参数导致,并且发现错误也没有手工检查(这个问题还在研究中,有遇到并知道原因的小伙伴欢迎指导)。

一.步骤1: 解压glib包

-- 在 /usr/local 下创建一个mysql文件夹,用来存放
[root@hsr local]# mkdir mysql
[root@hsr local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src

-- 在原有/usr/tool目录将gz压缩包解压
[root@hsr tool]# tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisam_ftdump
mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisamchk
mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisamlog
mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisampack
mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql
mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql_client_test_embedded
mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql_config_editor
.....

--将解压的文件复制到/usr/local/mysql目录下
[root@hsr tool]# sudo cp -r mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql

--在mysql-->mysql-5.7.23-linux-glibc2.12-x86_64路径下 解压的文件共9个 目录如下: 
[root@hsr mysql]# ls mysql-5.7.23-linux-glibc2.12-x86_64 bin COPYING docs include lib man README share support-files

  注意:mysql-5.7.23-linux-glibc2.12-x86_64目录层次要去掉,变为/usr/local/mysql 下的9个目录,在文章后面会去掉这层。

  图片 1


为了今后避免因为恢复不及时导致的数据丢失,特别总结本次故障过程和大家讨论、分享。

二. 步骤2:    

   2.1 添加mysql用户 useradd -r -g 用户名 用户组

[root@hsr mysql]# groupadd mysql
[root@hsr mysql]# useradd -r -g mysql mysql

  2.2 切换到 /usr/local/mysql 目录下,改变目录拥有者为mysql

[root@hsr mysql]# chown -R  mysql.mysql /usr/local/mysql

  2.3 新环境安装libaio包 mysql 依赖于libaio

[root@hsr mysqld]# yum search libaio

 

简化时间轴如下图:

三 步骤3:  

  安装mysql,使用 --initialize,basedir 基础目录,datadir 为数据目录。

[root@hsr ~]# cd /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/bin
[root@hsr bin]# ./mysqld  --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2018-08-23T06:56:21.157088Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-08-23T06:56:21.157246Z 0 [ERROR] Can't find error-message file '/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2018-08-23T06:56:26.287087Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-08-23T06:56:27.059913Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-08-23T06:56:27.138616Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a7e28575-a6a1-11e8-af13-000c29affb65.
2018-08-23T06:56:27.154064Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-08-23T06:56:27.155635Z 1 [Note] A temporary password is generated for root@localhost: ro0ssOGT?ocf
---update 表别名的写法
update [别名] set [别名].[字段] =[字段值] from [表名] as [表别名] where [条件]
---delete 表别名的写法
delete [别名] set [别名].[字段] =[字段值] from [表名] as [表别名] where [条件]

开始---->备份主库---->恢复从库---->复制error1032,1062---->删除从库再次恢复---->复制error1032,1062---->reset master从库、主库---->准备删除从库---->误操作删主库----->恢复主库----->跳过大量1062、1032错误---->找drop db位置恢复从库---->对比主从数据---->手工补数据---->结束

四步骤4:

  4.1 创建RSA private key。

[root@hsr bin]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

  图片 2

  4.2 修改当前目录拥有者为 root 用户,修改data 目录拥有者为 mysql

[root@hsr bin]# chown -R root:root /usr/local/mysql
[root@hsr bin]# chown -R mysql:mysql /usr/local/mysql/data

本文由澳门新葡亰手机版发布于数据库,转载请注明出处:delete表别名用法简介,开发进阶篇系列

上一篇:GROUPING用法简介及说明,Server函数之空值处理 下一篇:没有了
猜你喜欢
热门排行
精彩图文