mysql

Python MySQLdb variables as table names

丶灬走出姿态 提交于 2021-02-13 17:30:20
问题 I have a syntax error in my python which which stops MySQLdb from inserting into my database. The SQL insert is below. cursor.execute("INSERT INTO %s (description, url) VALUES (%s, %s);", (table_name.encode("utf-8"), key.encode("utf-8"), data[key].encode("utf-8"))) I get the following error in my stack trace. _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''four

Python MySQLdb variables as table names

旧街凉风 提交于 2021-02-13 17:28:23
问题 I have a syntax error in my python which which stops MySQLdb from inserting into my database. The SQL insert is below. cursor.execute("INSERT INTO %s (description, url) VALUES (%s, %s);", (table_name.encode("utf-8"), key.encode("utf-8"), data[key].encode("utf-8"))) I get the following error in my stack trace. _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''four

如何去写一手好SQL

霸气de小男生 提交于 2021-02-13 17:22:30
MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据的单表,分页查询最新的20条记录耗时0.6秒,SQL语句大致是 select field_1,field_2 from table where id < #{prePageMinId} order by id desc limit 20 ,prePageMinId是上一页数据记录的最小ID。 虽然当时查询速度还凑合,随着数据不断增长,有朝一日必定不堪重负。分库分表是个周期长而风险高的大活儿,应该尽可能在当前结构上优化,比如升级硬件、迁移历史数据等等,实在没辙了再分。对分库分表感兴趣的同学可以阅读分库分表的基本思想。 最大并发数 并发数是指同一时刻数据库能处理多少个请求,由max_connections和max_user_connections决定。max_connections是指MySQL实例的最大连接数,上限值是16384,max_user_connections是指每个数据库用户的最大连接数

远程连接centos7 上的mysql报(ERROR 2003 (HY000): Can't connect to MySQL server on '168.x.x.x'...

天涯浪子 提交于 2021-02-13 17:18:32
  1.MySQL端口   因为上一篇文章我就已经给MySQL新建了一新用户,且赋予了远程连接数据库的所有权限(GRANT ALL PRIVILEGES ON *.* TO 'newuser' @ '%' IDENTIFIED BY 'newpass' WITH GRANT OPTION;)   且错误是 Cant't connect to MySQL.... 而不是1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server ,所以先排除权限问题,先从端口查起。   shell > netstat -apn 查看所有端口信息,如下图可以看出mysqld服务Listen端口号为3306,当然也可以在MySQL中 mysql > show variables like 'port';         shell > netstat -apn | grep 3306 查询3306端口占用情况      在网上查到的解决方法最多的就是说,/etc/my.cn配置文件中配置了 bind_address=127.0.0.1   但当我vim /etc/my.cnf打开配置文件时里面十分干净,没有其他多余设置,后面几条是我后来添加的。      所以也排除配置文件问题。   2.防火墙   确实

Javaweb项目中出现java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized...

不羁的心 提交于 2021-02-13 17:13:31
javaweb项目中java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. 异常,如下图: 服务器时区值“????±××?±?无法识别或代表一个以上的时区。如果希望利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。 修改从c3p0-config.xml配置文件 < default -config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost/hejh ?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC</property> <property name="user">root</property> <property name="password">root</property> <property name=

Docker + WordPress搭建个人博客

末鹿安然 提交于 2021-02-13 17:13:04
WordPress是目前非常受欢迎的开源博客系统,今天使用 Docker + WordPress 搭建个人博客,整个过程非常丝滑。 搭博客先要准备域名和服务器,昨天在阿里云买了个.top的域名花了5块钱(美滋滋~~),本来再准备在阿里云再选个 轻量应用服务器 看了下最便宜都也要600+一年,去了隔壁腾讯花了88买了个一个 1核 + 2g 的服务器还算不错。 安装Docker 安装Dokcer比较简单几行命令下来,安排的明明白白: 更新apt仓库索引 sudo apt-get update 安装软件,允许apt使用https软件源 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common 添加Docker官方GPG key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 添加Docker官方源 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" 更新apt仓库索引

秒杀系统后台实现详解

雨燕双飞 提交于 2021-02-13 16:39:13
秒杀后台实现 本文主要讲解项目实战中秒杀如何解决下面问题: 1)实现秒杀异步下单,掌握如何保证生产者&消费者消息不丢失 2)实现防止恶意刷单 3)实现防止相同商品重复秒杀 4)实现秒杀下单接口隐藏 5)实现下单接口限流 1 秒杀异步下单 用户在下单的时候,需要基于JWT令牌信息进行登陆人信息认证,确定当前订单是属于谁的。 针对秒杀的特殊业务场景,仅仅依靠对象缓存或者页面静态化等技术去解决服务端压力还是远远不够。 对于数据库压力还是很大,所以需要异步下单,异步是最好的解决办法,但会带来一些额外的程序上的 复杂性。 1.1 秒杀服务-下单实现 1)将tokenDecode工具类config放入秒杀服务并声明Bean public static void main(String[] args){ SpringApplication.run(SeckillApplication,class,args); } @Bean public TokenDecode tokenDecode(){ return new TokenDecode(); } 2)更新秒杀服务启动类,添加redis配置 /** * 设置 redisTemplate 的序列化设置 * @param redisConnectionFactory * @return */ @Bean public RedisTemplate

mysql syntax explanation

帅比萌擦擦* 提交于 2021-02-13 16:04:16
问题 I would like to know what the a.*, c.name, ... a.access etc means. In other words, what exactly am I referring to when I add a letter before the dot and the funciton of the dot. Here is an example of code where I found this occurrence: $query = "SELECT a.*, c.name as categoryname,c.id as categoryid, ". "c.alias as categoryalias, c.params as categoryparams". " FROM #__k2_items as a". " LEFT JOIN #__k2_categories c ON c.id = a.catid"; $query .= " WHERE a.published = 1" ." AND a.access <= {$aid}

mysql syntax explanation

余生长醉 提交于 2021-02-13 16:00:05
问题 I would like to know what the a.*, c.name, ... a.access etc means. In other words, what exactly am I referring to when I add a letter before the dot and the funciton of the dot. Here is an example of code where I found this occurrence: $query = "SELECT a.*, c.name as categoryname,c.id as categoryid, ". "c.alias as categoryalias, c.params as categoryparams". " FROM #__k2_items as a". " LEFT JOIN #__k2_categories c ON c.id = a.catid"; $query .= " WHERE a.published = 1" ." AND a.access <= {$aid}

一个秒杀系统设计详解

冷暖自知 提交于 2021-02-13 15:30:57
一些数据: 大家还记得2013年的小米秒杀吗?三款小米手机各11万台开卖,走的都是大秒系统,3分钟后成为双十一第一家也是最快破亿的旗舰店。经过日志统计,前端系统双11峰值有效请求约60w以上的QPS ,而后端cache的集群峰值近2000w/s、单机也近30w/s,但到真正的写时流量要小很多了,当时最高下单减库存tps是红米创造,达到1500/s。 热点隔离: 秒杀系统设计的第一个原则就是将这种热点数据隔离出来,不要让1%的请求影响到另外的99%,隔离出来后也更方便对这1%的请求做针对性优化。针对秒杀我们做了多个层次的隔离: 业务隔离。 把秒杀做成一种营销活动,卖家要参加秒杀这种营销活动需要单独报名,从技术上来说,卖家报名后对我们来说就是已知热点,当真正开始时我们可以提前做好预热。 系统隔离。 系统隔离更多是运行时的隔离,可以通过分组部署的方式和另外99%分开。秒杀还申请了单独的域名,目的也是让请求落到不同的集群中。 数据隔离。 秒杀所调用的数据大部分都是热数据,比如会启用单独cache集群或MySQL数据库来放热点数据,目前也是不想0.01%的数据影响另外99.99%。 当然实现隔离很有多办法,如可以按照用户来区分,给不同用户分配不同cookie,在接入层路由到不同服务接口中;还有在接入层可以对URL的不同Path来设置限流策略等。服务层通过调用不同的服务接口