热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysqlon使用_Mysql使用总结

1.Sql1.1.1插入insert的使用1.insertignoreinto1.insertignoreinto当插入数据时,如出现错误时,如重复数据

1.Sql

1.1.1 插入insert的使用

1.insert ignore into

1.insert ignore into

当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如:

INSERT IGNORE INTO books (name) VALUES ('MySQL Manual')

2.on duplicate key update

当primary或者unique重复时,则执行update语句,如update后为无用语句,如id=id,则同1功能相同,但错误不会被忽略掉。例如,为了实现name重复的数据插入不报错,可使用一下语句:

INSERT INTO books (name) VALUES ('MySQL Manual') ON duplicate KEY UPDATE id = id

3.insert …select…where not exist

根据select的条件判断是否插入,可以不光通过primary和unique来判断,也可通过其它条件。例如:

INSERT INTO books (name) SELECT 'MySQL Manual' FROM dual WHERE NOT EXISTS (SELECT id FROM books WHERE id = 1)

4.replace into

如果存在primary or unique相同的记录,则先删除掉。再插入新记录。

REPLACE INTO books SELECT 1, 'MySQL Manual' FROM books

1.1.2 grant使用

grant select on testdb.* to teamuser@10.161.204.81 identified by '123456!';

赋予用户teamuser从服务器10.161.204.81上查询数据库testdb所有表的权限;注意赋予内网时,登录也得用内网ip,mysql -h10.161.204.81 -uteamuser -p'123456!'

所有权限用all,即用all代替select

导出数据:

mysql -uroot -p'123456!' testdb -e "select id,name from testarticle where id=\"123456\"" > /home/app/a.txt

导出insert语句

mysqldump -uroot -p'123456!' testdb categorys --default-character-set=utf8 > /home/b.txt

二.数据库维护

2.1故障处理

2.1.1主从不同步的处理-1062

1)查看slave状态:show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.100.22.15

Master_User: repl_user

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000362

Read_Master_Log_Pos: 175989792

Relay_Log_File: relay-bin.000540

Relay_Log_Pos: 258368116

Relay_Master_Log_File: mysql-bin.000361

Slave_IO_Running: Yes

Slave_SQL_Running: No

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 1062

Last_Error: Error 'Duplicate entry '1342170' for key 'PRIMARY'' on query. Default database: 'usercenter'. Query: 'insert into test_charge ……

Skip_Counter: 0

Exec_Master_Log_Pos: 673522500

Relay_Log_Space: 836682055

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: NULL

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 1062

Last_SQL_Error: Error 'Duplicate entry '1342170' for key 'PRIMARY'' on query. Default database: 'usercenter'. Query: 'insert into test_charge ……

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

分析:

0ea94836131a6ddd41df67cd179a9c87.png

正常情况Seconds_Behind_Master应该为0

解决方法:

A)这种适用于该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况,具体命令:

slave stop;

set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

slave start;

B)由此表可知MySQL Server System Variables, slave_skip_errors 是无法被动态改变的.

要改变 slave_skip_errors 的方法就只有在 MySQL 启动时加:

--slave_skip_errors=all

或者于 /etc/my.cnf 加入:

slave-skip-errors=all # 于 [mysqld] 下面加入此行

再 restart mysql 即可

确认是否忽略所有错误

mysql> show variables like "%slave%";

slave_skip_errors => ALL # 看到 ALL 就代表会忽略掉所有错误讯息

忽略某个错误编号

若只要排除 Duplicate entry (Last_Errno: 1062), 可以单独指定 Error No, 多个写法如下:

--slave-skip-errors=1062,1053

--slave-skip-errors=all

于 my.cnf 设定忽略

vim /etc/my.cnf

slave-skip-errors=1062 # 于 [mysqld] 下面加入此行

2)扩展:

3e9893cedbd16f75073dac756d0b8251.png

2.1.2主从不同步的处理,errcode:1236

1)查看slave状态:show slave status\G;

Last_IO_Errno:1236Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'

解决方法:

A)进入mysql server,即mysql -uusername -ppassword

在mysql命令行中运行如下:

set global max_allowed_packet = 2*1024*1024*10

退出mysql命令行,然后重新登录。

show VARIABLES like '%max_allowed_packet%';

查看下max_allowed_packet是否编辑成功

B)可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

max_allowed_packet = 20M

如果找不到my.cnf可以通过

mysql --help | grep my.cnf

去寻找my.cnf文件。

有了配置文件,在配置文件中的[mysqld]下边加些常用的配置参数。重启mysql服务器后,该参数即可生效。

2.2 主从设置

2.1.2 从指定位置同步

1)有的时候主从同步有问题了以后,需要从log位置的下一个位置进行同步,相当于跳过那个错误,这时候也可以使用CHANGE MASTER命令来处理,只要找到对应的LOG位置就可以,比如:

slave stop;

CHANGE MASTER TO

MASTER_HOST='10.1.1.75',MASTER_USER='replication',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=106;

slave start;

2.3 备份

2.3.1 逻辑备份

1)备份:

mysqldump -hdb.test.com -uusername -ppassword testdb table1 table2 table3 | gzip > /home/mysql_bak/bakup-`date +%Y-%m-%d`.sql.gz

2)恢复:

gunzip

2.4 启动和停止服务器

2.4.1 启动mysql

1)配置my.cnf文件,然后启动:

./bin/mysqld_safe --user=mysql &

2.4.2 停止mysql

$mysql_dir/bin/mysqladmin -uuser -ppassword shutdown

或./bin/mysqladmin  -S /tmp/mysql.sock -uroot -pq1234 shut

2.5优化处理

2.6 常用命令使用

2.6.1 常用命令

1.show processlist;解释:显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。

2.telnet 123.124.92.80 3306 查看是否有权限

3.查看创建表语句:

showcreate table tablename;

例如:

要查看jos_modules表结构的命令:

show create table jos_modules;

4.查看一个表的索引:show index from tblname;



推荐阅读
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • vue使用
    关键词: ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
author-avatar
ecrbw_9870105634
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有