由于现在数据库的版本是5.5.2,但是看网上说要直接存储emoji表情,需要升级到5.5.3然后把字符集设置为utf8mb4,但是升级数据库感觉属于敏感操作. 考虑了多久之后直接考虑使用正则来替换,但是emoji表情的unicode码太多了,在网上找了一份代码,还是2年前更新的,想了想还是算了. PHP 版本 最简单的办法就是直接找到接受到的文本中的字符串中4个字节的内容,做rawurlencode编码,再入库.输出的时候再替换回来,然后再用rawurldecode转码回unicode到手机再解…
锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素.从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂.本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议. MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著…
前提:此方法只是参考其它博客的一个记录,未经亲自验证 当在mysql客户端设置一些变量时提示如下报错: 于是想能否有办法在不重启的情况下设置这些只读变量,在网上搜索别人的博客后发现如下方法 1.命令行模式下 gdb -p $(pidof mysqld) -ex "set log_error=/path/to/XXX" -batch 2.mysql客户端模式下 system gdb -p $(pidof mysqld) -ex "set log_error=/path/to/X…
首先linux要使用局域网 环境要求:局域网,  windows系统,  linux系统,  mysql安装包mysql.tar.gz 注意:32位操作系统用32位安装包,64位系统用64位安装包,不要搞错了 第一步:在windows中设置共享文件夹,并将mysql.tar.gz安装包放入共享文件夹中 第二步:配置linux的网卡,使其能够访问局域网 第三步:挂载共享文件夹 mount -t cifs -o username=administrator,password=”123” //192.…
[障碍再现] 状况描述01:     在LINUX下调一个程序经常报出找不到表,但是我明明是建了表的,     测试的时候,遇到一些问题,从Windows平台访问虚拟机中的Web应用,经常报出找不到表,但自己明明在数据库中看到相关的数据表和数据,在linux中通过MYSQL的命令行下也可以查到,为什么从Windows平台上的程序来访问虚拟机中的MySql时,就找不到呢?   [原因分析]     原来是LINUX下的MYSQL默认是要区分表名大小写的,而在windows下是不区分.     从w…
1.下载绿色版mysql 从该地址http://dev.mysql.com/downloads/mysql/ 中选择windows的版本,选择下载. 2.将下载的压缩包解压. 3.将根目录下的my-default.ini复制重命名为my.ini. 4.打开my.ini文件,将下面的源码添加修改到my.ini中 [client]default-character-set=utf8 [mysqld] # 设置mysql服务器编码character_set_server=utf8 #basedir设置…
1.关闭MySql: #service mysqld stop 2.转移数据: #cd /var/lib   #ls   #cp -a mysql /opt/mysql/ 3.修改配置文件,一下三个: #vi /etc/my.cnf   在[client]下添加   socket=/opt/mysql/mysql.sock   注释掉之前的代码   #datadir=/var/lib/mysql   #socket=/var/lib/mysql/mysql.sock   修改为:   datad…
vs连接数据库事实上就是将mysql数据库.h头文件接口.lib链接文件和dll运行文件增加到项目中.以下是配置怎样增加. 转于http://www.cnblogs.com/justinzhang/archive/2011/09/23/2185963.html 一.VS2013project设置工作 首先,建立一个windows应用程序的project.将C/C++->预处理器->预处理器定义下的_WINDOWS改为_CONSOLE, 将连接器->系统->子系统 选择为控制台. 因…
普通的UTF8编码是不支持emoji表情插入的,会报异常: Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xB0\xE5\x9C...' for column 'name' at row 1 将表字段的编码单独改成utf8mb4,即可支持emoji表情的插入. 修改的sql语句为 mysql) character set utf8mb4; 下面整理了常用的编码相关命令: 查看数据库默认字符集 mys…
索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 2.对于多列索引,不是使用的第一部分(第一个),则不会使用索引 3.like查询是以%开头 4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引 5.如果mysql估计使用全表扫描要比使用索引快,则不使用索引 此外,查看索引的使用情况 show sta…
表的主关键字 自动建立唯一索引 如zl_yhjbqk(用户基本情况)中的hbs_bh(户标识编号) 表的字段唯一约束 ORACLE利用索引来保证数据的完整性 如lc_hj(流程环节)中的lc_bh+hj_sx(流程编号+环节顺序) 直接条件查询的字段 在SQL中用于条件约束的字段 如zl_yhjbqk(用户基本情况)中的qc_bh(区册编号) select * from zl_yhjbqk where qc_bh='7001' 查询中与其它表关联的字段 字段常常建立了外键关系 如zl_ydcf(…
在mysql插入emoji表情,出现错误: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8A' for column 'content' at row 原因是当前mysql的字符集为utf-8,最多3个字节,emoji表情需要4个字节来表示.所以导致insert报错. 一般的方法是将字符集改为utf8mb4 2. utf8mb4这样的字符集需要mysql 5.5才支持,当时我的版本微5.1,所以自己去官网下了5.6的…
1.在知道原密码的情况下,进入MySQL: mysql -u root -p 2.进入 mysql数据库,然后通过语句修改密码: 我的MySQL版本是:mysql  Ver 14.14 Distrib 5.7.20, for Linux (i686) using  EditLine wrapper这里需要注意的是,有的MySQL版本的修改密码语句是: update user set password=password("root1234") where user='root'; 但是会…
数据表结构 CREATE TABLE `jx_goods_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `goods_name` varchar(100) DEFAULT NULL, `shop_price` varchar(100) DEFAULT NULL, `goods_content` text, `original_img` varchar(222) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=Inno…
本文主要介绍一个在MySQL命令行下执行脚本文件的例子,通过这个例子让我们来了解一下在命令行下MySQL是怎样执行脚本的吧.现在我们开始介绍这一过程. 1.首先编写sql脚本,保存为的:book.sql,内容如下: use test; create table book ( tisbn varchar(20) primary key, tbname varchar(100), tauthor varchar(30), chubanshe varchar(40), bookdate date, b…
一.场景呈现 Mac 下Eclipse+mysql开发j2ee的时候,在页面像数据库中插入中文数据的时候,数据库会报错.而且即使插入成功,在控制台或者其他可视化数据库操作软件看数据发现都是??,错误的原因是数据库的编码问题. 二.问题解决方案 假设下文是对mysql基本操作熟悉的情况下! mysql>mysql -u root -p 回车输入密码 mysql>stauts; 所以很容易发现是编码问题! 可以用sublime 或者是vi在[mysqld] 下加入 default-storage-…
参考资料:http://www.cnblogs.com/xusir/p/3334217.html 以下是简要记录. 一.安装 安装:apt-get install mysql-server mysql-client MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件.配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习. 1.数据库目录 /v…
一.存储引擎层面丢失数据                                                       由于在实际项目中,我们往往使用支持事务的InnoDB存储引擎.我们分析InnoDB存储引擎数据丢失: 从上篇的文章<MySQL事务提交过程(一)>和<MySQL事务提交过程(二)>中知道,MySQL默认情况下是开启内部的XA事务和事务的实现方式是基于redo log和undo log.也可以理解为MySQL事务是采用日志现行的策略.前提未开启binl…
查看MySQL的运行状态用命令行的show语句show status是查看MySQL运行情况,和上面那种通过pma查看到的信息基本类似. show variables是查看MySQL的配置参数,还可以使用类似SHOW VARIABLES LIKE ‘Key%’ show processlist是查看当前正在进行的进程,对于有锁表等情况的排查很有用处.一般情况下,打开MySQL的慢查询记录同样有利于排查. show open tables是显示当前已经被打开的表列表. 用MySQL自带的mysql…
本篇文章主要是讲一下我自己安装wamp环境的一些步骤和见解,前方多图预警,慎入!!!!! PHP运行环境  : Linux下的三种安装方式:源码包安装.rpm包安装.集成环境安装(lnmp) windows安装的两种方式:单个下载安装.集成环境安装(AppServ,phpstudy,wamp) 在Windows系统上安装PHP开发环境: 所需软件分别独立安装: 安装前准备 安装Apache 安装MySQL 安装PHP 安装phpMyA 软件名称 下载地址 Apache下载 http://http…
采用dockerhub安装 docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 上述初始化了docker容器(自动拉取镜像),指定了端口为3306,容器名为mysql,密码为root,…
1.解压Mysql server到D盘配置环境变量MYSQL_HOME      D:\J2EE\apache-ant-1.9.7PATH            %MYSQL_HOME%\bin; 2.修改MYSQL启动配置文件my-default.ini注意复制备份然后修改basedir = D:\\J2EE\\mysql-5.7.14-winx64datadir = D:\\J2EE\\mysql-5.7.14-winx64/dataport = 3306 3.安装MYSQL服务以管理员运行…
在Mac 下载 Mysql Server : 参考:http://www.mysql.com/downloads/ 下载Mysql 安装程序 打开下载地址: http://www.mysql.com/downloads/ 下载如图所示: 安装mysql 下载完成后,是个dmg 文件,直接双击安装即可 安装完成后,在系统设置里面看,会看到Mysql 服务的启动图标如图所示: Mysql 安装成功后,会在/usr/local/ 目录下看到有Mysql 文件夹 配置环境变量 在/usr/local/m…
1.以管理员身份打开cmd,关闭MySQL. net stop mysql 2.跳过权限检查启动,进入安装目录bin下. mysqld --skip-grant-tables或者mysqld-nt --skip-grant-tables 这里可能出现问题,如果失败的话,找到配置文件my.ini,打开并在[mysqld]下面加入skip-grant-tables.再执行上面一行命令. 3.不关闭当前窗口,再打开另一个命令行窗口.输入mysql回车,如果进入不了mysql>,就先去到mysql\bi…
org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor以下所有源码均在此类中首先我们看下log4j2异步队列的初始化 从这里面我们可以看到,使用的是单例的线程池,这里请注意,这个线程池里定义的是后台线程 并且对于线程池的实现我们不可以自定义配置,是写死的,为什么要这样做呢?原因是为了保证日志的顺序性. 而在stop()方法也就是服务关闭的处理逻辑里,将循环条件设置为(队列不为空&&次数<200次),每次则将线程休眠…
  java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for colum n 'name' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) at com.mysql.jdbc.MysqlIO.…
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for colum n 'name' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) at com.mysql.jdbc.MysqlIO.ch…
原文:http://blog.csdn.net/mazhaojuan/article/details/42211857 本文将通过两台电脑来简单介绍一下Windows平台如何搭建MySQL集群. MySQL集群支持多台电脑,本文搭建的MySQL集群以两台机子为例,其中一台(IP为192.168.24.33)部署管理节点.数据节点和SQL节点,另一台(IP为192.168.24.82)部署数据节点和SQL节点. 实际应用中,不要将管理节点跟数据节点部署到一台机子上,因为如果数据节点宕机会导致管理节…
最近有一张2000W条记录的数据表需要优化和迁移.2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升.不过这些数据有大量的冗余字段和错误信息,极不方便做统计和分析.所以我需要创建一张新表,把旧表中的数据一条一条取出来优化后放回新表: 一. 清除冗余数据,优化字段结构 2000W数据中,能作为查询条件的字段我们是预知的.所以将这部分数据单独创建新的字段,对于有规则的数据合理改变字段结构,比如身份证就是varchar(18).对于不重要的数据我们…
转自:http://www.cnblogs.com/suifu/p/5848269.html 公司有新要求,ios客户端要上线评论中可以使用emoji表情的功能,在mysql 5.5 之前,UTF-8编码只支持1-3个字节:从MySQL 5.5开始,可以支持4个字节UTF编码 utf8mb4 ,一个字符能够支持更多的字符集,也能够支持更多表情符号. utf8mb4兼容utf8,且比utf8能表示更多的字符,是utf8字符集的超集.所以现在一些新的业务,比如ISO中的emoji表情,会将MySQL…