澳门十大赌场最新排名 > 澳门十大赌场 > 一次事故的回顾,MySQL去除重复数据

原标题:一次事故的回顾,MySQL去除重复数据

浏览次数:78 时间:2019-07-29

简化时间轴如下图:

 九 远程登录

-- 登录到mysql后设置权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
--  再设置密码
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
-- 设置权限
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec)
-- 刷新权限 
mysql>  flush privileges;
Query OK, 0 rows affected (0.01 sec)
-- 设置远程登录权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
Query OK, 0 rows affected, 1 warning (0.00 sec)

  -- 在my.cnf中 添加端口,重启服务
  图片 1

-- 测试端口是否打开
[root@hsr ~]#  firewall-cmd    --query-port=3306/tcp
no
-- 防火墙设置
[root@hsr ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
-- 重新加载
[root@hsr ~]# firewall-cmd --reload
success
-- 再次测试端口
[root@hsr ~]# firewall-cmd    --query-port=3306/tcp
yes

  -- 在windows端拼通成功
  图片 2

  --- 最后使用SQLyog连接成功
  图片 3
  图片 4

  

-f的作用是:Continue even if an SQL error occurs.

总结:

头一回碰到删库情况还是有点蒙,还好主库用的是GTID找binlog日志中的位置相对容易一点。这次恢复最幸运的就是还好从库卡在靠前的位置,要不然即使有了从库,数据也会被删了,恢复起来相对更麻烦些。

对于gtid的恢复,课上吴炳锡老师都讲过,但是一上手还是慢了几拍,还是要通过实战多练习加深手感避免在真实情况下懵逼。

最后特别鸣谢:知数堂叶金荣老师和吴炳锡老师在故障发生时给予的帮助和支持。

转载请注明出处

 八. 设置密码  

  8.1 打开my.cnf文件,添加skip-grant-tables,来重置密码,如下所示
    图片 5
  8.2 启动服务,再次登录,在输入密码处按回车键进入。

[root@hsr ~]# vim /etc/my.cnf
[root@hsr ~]# service mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 
[root@hsr ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.23

  8.3 进入mysql后,修改密码

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set authentication_string=password('123456') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

  退出mysql>quit;  编辑 my.cnf 注释掉#skip-grant-tables

 8.4 重启mysql服务,输入修改后的密码(123456)进入

[root@hsr ~]# service mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 
[root@hsr ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.23

1.将表数据导出:

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

概述  

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

以上相关子查询的SQL在c1上存在索引时效率不算低,但是很遗憾MySQL没有这种写法,类似的替代写法在MySQL中效率也低的令人发指,如中间表等手段。

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

三 步骤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
mysqldump -uroot -p --skip-extended-insert -t DBNAME TABLE>TABLE.sql

然后记一下去重后的记录数:
select count(*) from (select 1 from TABLE group by c1) a;

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

四步骤4:

  4.1 创建RSA private key。

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

  图片 6

  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

2.truncate表,然后创建唯一索引

本文由澳门十大赌场最新排名发布于澳门十大赌场,转载请注明出处:一次事故的回顾,MySQL去除重复数据

关键词: ag娱乐平台

上一篇:GTID复制错误处理之跳过错误,MySQL游标循环取出

下一篇:没有了