mysql数据库

JDBC对Mysql utf8mb4字符集的处理

血红的双手。 提交于 2020-04-04 23:28:35
在开发微信开放平台, 接入微信公众号的数据时, 关于用户的nickname和文本消息是,大量出现emoji的文本信息, 超时了utf-8字符集的存储范围 在存储数据时, 出现部分特殊字符存储字符串失败. 服务端解决方案 查阅MySQL官方文档时,给出如下支持utf8转utf8mb4的官方处理办法 https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-conversion.html 上述的步骤只是针对server端的配置. 对于客户端需要额外特殊的处理 因为我目前的项目, 使用的是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC操作的解决方案 JDBC的URL之前的配置方式 String url = "jdbc:mysql://HOST:PORT/DATABASE?useUnicode=true&characterEncoding=UTF-8"; 在连接配置中,声明UTF-8的字符编码,在目前的存储需求上来讲,在存储emoji字符串时会报错. 就算服务端的数据库设置了utf8mb4字符集类型 客户端修改成如下配置 String url = "jdbc:mysql://HOST:PORT/DATABASE?useUnicode=true&characterEncoding=utf8mb4"; 客户端连接时报错

删库了一定要跑路吗?爱情 36 技之记忆重生!

笑着哭i 提交于 2020-04-04 09:51:11
今天一位跨界老码农不知咋回事,兴奋过了头,一不小心把数据库给删掉啦,然后问我咋恢复,然后我告诉他基于 binlog 可以恢复,谁成想没有开启 binlog,最后只能躲在角落里伤心。 爱情 36 技系列,好久没更新啦,真是苦了追逐爱情系列的那些朋友们。 好了,请忘记上面的一切,因为我们的爱情故事系列又要更新啦。 自从 Java 那小子喜获 Python 菇凉的芳心之后,两人就迈入了柴米油盐酱醋茶的生活,但是锅碗瓢盆难免磕磕碰碰, 生活中吵吵闹闹甚是正常 。 不过每次小吵小闹,Python 菇凉都会忍不住想删除存储在 MySQL 上的旅途记忆(不是想删库,就是想跑路)。但是老话说的好:天上月亮圆圆的,小两口吵架总是闹着玩的,况且小两口没有隔夜的仇,所以每次花好月圆之时,Java 那小子总会凭自己精湛的技艺把 Python 菇凉放在 MySQL 上的记忆给恢复如初。 另外 Java 那小子为了帮助其他家庭能够快速重建美好记忆,考虑到家庭稳固,特意把秘诀分享给大家,希望大家拿去使用,估计会屡试不爽。 秘诀一: 记录日志,让你有迹可查 第一步:确认 binlog 日志是否处于开启状态 ? show variables like 'log_%'; 第二步:开启 MySQL binlog 日志 首先找到 my.cnf 文件。 mysql --help | grep 'Default

Django / Python 链接MySQL数据库

空扰寡人 提交于 2020-04-04 09:01:24
https://www.cnblogs.com/wupeiqi/articles/5237704.html python (Django)中使用MySQL 首先python3中没有 MySQLdb 需要安装模块 pymysql 执行下面的代码: import pymysql pymysql.install_as_MySQLdb() 然后在Django的Setting中设置DATABASE: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'数据库名称', 'USER': 'root', 'PASSWORD': '******', 'HOST': '主机号', 'PORT': '端口(默认3306)', } } 通过上面的代码就可以完成Django中的数据库的链接 下面介绍Python直接使用MySQL数据库: __author__ = "WSX" import pymysql conn = pymysql.connect(host = "localhost" , port = 3306 , user = "root" , passwd = "******" , db = "wsxdb",charset = "utf8") cursor = conn.cursor() user_data

DELPHI 使用dbexpress控件连接MySQL数据库方法

丶灬走出姿态 提交于 2020-04-04 08:04:42
1. 在窗体上放置4个控件: SQLConnection1,SimpleDataSet1,DataSource1,DBGrid (注意: 如果 出现"Operation not allowed on unidirectional dataset"错误提示原因如下:)。 在网上查到一篇文章如下: 错误描述: 当使用dbExpress控件操作数据库时,用到sqlconnection1、sqlquery1、datasource1和dbgrid1。按顺序连接,当将dbgrid的DataSource属性设为datasource1控件时发生错误:"Operation not allowed on unidirectional dataset"。 错误原因: 由于sqlquery控件是游标单向的,而dbgrid控件是双向的。两者不配合,所以产生以上的错误信息。(sqldataset、sqltable都是单向的) 所以dbgrid不能与单向的数据集连接。 解决办法: (1)换用SimpleDataSet; (2)使用SQLQuery+DataSetProvider+ClientDataSet+DataSource +DBGrid 2. 设置方法: SQLConnection1: SimpleDataSet1 (注意这个: 输入SQL语句后,Active属性要设成True, DBGrid

关于Aborted connection告警日志的分析

坚强是说给别人听的谎言 提交于 2020-04-03 18:40:06
前言: 有时候,连接MySQL的会话经常会异常退出,错误日志里会看到" Got an error reading communication packets "类型的告警。本篇文章我们一起来讨论下该错误可能的原因以及如何来规避。 1.状态变量Aborted_clients和Aborted_connects 首先我们来了解下Aborted_clients和Aborted_connects这两个状态变量的含义,当出现会话异常退出时,这两个状态值会有变化。根据官方文档描述,总结如下: 造成Aborted_connects状态变量增加的可能原因: 客户端试图访问数据库,但没有数据库的权限。 客户端使用了错误的密码。 连接包不包含正确的信息。 获取一个连接包需要的时间超过connect_timeout秒。 造成Aborted_clients状态变量增加的可能原因: 程序退出前,客户机程序没有调用mysql_close()。 客户端睡眠时间超过了wait_timeout或interactive_timeout参数的秒数。 客户端程序在数据传输过程中突然终止。 简单来说即:数据库会话未能正常连接到数据库,会造成Aborted_connects变量增加。数据库会话已正常连接到数据库但未能正常退出,会造成Aborted_clients变量增加。 2.Got an error reading

MYSQL 5.6版本占用内存高的问题

跟風遠走 提交于 2020-04-03 12:13:31
Mysql5.6.28-log版本,再创建数据库导入大量表以后,重启启动,16G内存几乎占满. 5.6.28 有对应performance_schema 性能监控模块(估计是5.6.28的bug) 5.6.40 performance_schema 模块启用可正常使用 可以尝试通过调整 performance_schema的对应参数来调试 参考 5.6.40的参数修改 performance_schema_accounts_size =100 performance_schema_digests_size =5000 performance_schema_events_stages_history_long_size =1000 performance_schema_events_stages_history_size =10 performance_schema_events_statements_history_long_size =1000 performance_schema_events_statements_history_size =10 performance_schema_events_waits_history_long_size =1000 performance_schema_events_waits_history_size =10 performance

搭建Mantis 缺陷管理系统

我的未来我决定 提交于 2020-04-03 04:09:17
什么是 Mantis MantisBT is a free popular web-based bugtracking system (feature list). It is written in the PHP scripting language and works with MySQL, MS SQL, and PostgreSQL databases and a webserver. MantisBT has been installed on Windows, Linux, Mac OS, OS/2, and others. Almost any web browser should be able to function as a client. It is released under the terms of the GNU General Public License (GPL). Mantis 是一个 BUG 管理系统。主要特点如下: 1、 用 php 写的系统,安装方便,不用像 bugzilla 那样安装那么多 perl 支持; 2、 系统相对简单轻磅,使用简单; 3、 出色的多语支持,对于对日开发等公司非常合适; 界面图示: 在线演示地址: http://www.futureware.biz/mantisdemo 环境搭建及 Mantis 安装、配置 由于

MySQL 备份恢复

强颜欢笑 提交于 2020-04-03 04:04:29
1:备份常用工具: mysqldump, xtrabackup mysqldump: 原生数据导出工具,以sql的形式导出保存 xtrabackup: percona团队提供的备份工具,基于文件系统的备份 2:备份全库: mysqldump -h10.6.29.1 -uroot -p --all-databases > 20140925_all_db_10.6.29.1.sql mysqldump是直接屏幕输出,所以重定向后即可得到对应的备份文件。 存在问题: 1:会锁全库,影响业务 2:有可能缺失常规表以外的内容,如存储过程 3:未记录binlog同步点,不能用于主从同步以及利用binlog增量恢复 4:对于数据集较大的表,可能会吃掉server端大量内存    mysqldump -h10.6.29.1 -uroot -p --all-databases --master-data=2 --routines --events --quick --single-transaction > 10.6.29.129.sql --master-data=2 表示需要记录导出数据当时主库的binlog位置 --routines 表示导出存储过程(可视实际库表决定是否使用) --events 表示导出事件(可根据实际库表决定是否使用) --quick 表示让服务端不将结果集一次发送

mysql练习题练习

巧了我就是萌 提交于 2020-04-03 01:57:05
1、数据库是按照原文制作的,表格结构一样具体存储的数据有些差异 原文地址: MySQL练习题 原答案地址: MySQL练习题参考答案 2、查询“生物”课程比“物理”课程成绩高的所有学生的学号; select wl.sid from (select sc.student_id as sid,sc.number as grade from score sc,course c where c.cid=sc.course_id and c.cname='物理') as wl,(select sc.student_id as sid,sc.number as grade from score sc,course c where c.cid=sc.course_id and c.cname='生物') as sw where wl.sid=sw.sid and sw.grade>wl.grade; 3、查询平均成绩大于60分的同学的学号和平均成绩; select student_id,avg(number) as avg from score group by student_id having avg(number)>60; 4、查询所有同学的学号、姓名、选课数、总成绩; select s.sid,s.sname,w.total,w.sum from student s,(select

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

江枫思渺然 提交于 2020-04-02 21:54:36
前言:朋友说我运行一个简单的建议update声明失败。症状,如下面: mysql> update order_info set province_id=15 ,city_id= 1667 where order_from=10 and order_out_sn='1407261241xxxx'; ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction mysql> QQ远程过去。開始check 1,查看数据库的隔离级别: mysql> select @@tx_isolation; +-----------------+ | @@tx_isolation | +-----------------+ | REPEATABLE-READ | +-----------------+ 1 row in set (0.00 sec) mysql> 2。去查看先当前库的线程情况: mysql> show full processlist; +----------+-----------------+-------------------+-----------------+-------------+---------+-------------------------+----------------