mysql update语句

从mysql元数据表中通过sql 构造/还原/生成 建表语句

。_饼干妹妹 提交于 2019-12-23 19:46:12
从mysql元数据表中通过sql 构造/还原/生成 建表语句 set @schema := 'zabbix'; SELECT d.sql_script FROM (SELECT c1.* FROM (SELECT 1 typ_seq, table_name, CONCAT('create table "', UPPER(table_name), '"(') sql_script, 0 inner_seq FROM information_schema.tables WHERE `TABLE_SCHEMA` = @schema UNION ALL SELECT 2, table_name, sql_script, inner_seq FROM (SELECT table_name, CONCAT(IF(a.`ORDINAL_POSITION` = 1, '', ','), '"', UPPER(column_name), '" ', COLUMN_TYPE, CASE WHEN COLUMN_DEFAULT IS NULL OR TRIM(COLUMN_DEFAULT) = '' THEN '' ELSE CONCAT(' DEFAULT ', CASE WHEN data_type IN ('bigint' , 'int', 'decimal', 'tinyint', 'float

MySQL锁技术详解

隐身守侯 提交于 2019-12-23 18:11:56
Mysql锁技术详解 本文只讨论InoDB存储引擎下的锁。 前言 在分布式并发的场景下,对于共享资源的操作是非原子性的,这会造成操作和预期的结果并不一致。 原子性操作 :指在一次CPU的调度时间类完成的一系列操作,顺序不可打乱,也不可只执行一部分。 任何可能能被CPU打断的操作都不是原子操作,所以真正的原子操作需要硬件支持,但是硬件大多数只支持系统的核心方法的原子操作,所以如果想要在自己开发的程序里做原子操作,需要引入锁。在线程A操作共享资源时需要拿到锁,这样即便线程A的操作中途CPU切换到了线程B,线程B想要读取共享资源时缺拿不到锁,所以线程B无法操作共享资源,这样就模拟出了原子操作,保证了线程A的逻辑是完整正确的。 MySQL的事务具有原子性,所以MySQL肯定实现了许多锁来保证原子操作。以InoDB为例,来看看MySQL实现了哪些锁,这些锁又分别有什么作用。 根据锁的范围来分类,大致分为了三类锁: 全局锁 表锁 行锁 全局锁 顾名思义,全局锁就是对整个数据库实例都加上锁,命令行是 Flush tables with read lock,一旦数据库加上此锁,除了当前操作线程之外,其他的线程对数据库的增删改操作都会被阻塞,包括建表,修改表结构事务更新等操作。 全局锁一般用于数据备份,为了保证备份的一致性,加上全局锁确保备份时间类数据库里的数据不会有更新。

MySQL TIMESTAMP(时间戳)详解

流过昼夜 提交于 2019-12-23 17:41:43
在创建表时如果表中有一个字段类型为TIMESTAMP,则该字段默认的生成语句为: CREATE TABLE `test` ( `id` int(11) DEFAULT NULL, `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=gbk 如果有两个字段类型为TIMESTAMP,则生成语句为: CREATE TABLE `test` ( `id` INT(11) DEFAULT NULL, `ctime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `utime` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE=INNODB DEFAULT CHARSET=gbk TIMESTAMP设置默认值是Default CURRENT_TIMESTAMP、 TIMESTAMP设置随着表变化而自动更新是ON UPDATE CURRENT_TIMESTAMP 一个表中至多只能有一个字段设置CURRENT_TIMESTAMP(当前时间) 1

Mysql忘记密码后的终级办法

房东的猫 提交于 2019-12-23 17:38:01
windows] 1、停止mysql服务:打开命令行窗口CMD,Net stop mysql 2、用另外一种方式启动Mysql:在命令行进入到mysql的安装路径下的bin目录下使用mysqld-nt.exe启动:mysqld-nt --skip-grant-tables 注意:此时CMD窗口不能关闭。 3、进入Mysql:另外打开一个命入令行窗口,在bin目录下执行mysql,此时无需输入密码即可进入。 >use mysql >update user set password=password("new_pass") where user="root"; >flush privileges; >exit 注意:1)如果对sql语句熟悉的话,update这句就不用解释了第一个User是表名、第二个User是表中的字段。第一个Password是表中的字段,第二个Password()是加密用的函数。new_pass是要更改的密码。 2)flush privileges可以不用添加。但是如果添加了,一定要注意Host字段不能是Localhost。因为用了这个之后就不能用Localhost连接了。你可以把这个字段改成IP,或者通配符。 >update user set host="192.168.0.1" where user="root" 4、使用任务管理器,找到mysqld-nt的进程

MySQL版本升级之5.6到5.7

℡╲_俬逩灬. 提交于 2019-12-23 16:30:38
两种升级方式 In-Place Upgrade : Involves shutting down the old MySQL version, replacing the old MySQL binaries or packages with the new ones, restarting MySQL on the existing data directory, and running mysql_upgrade . Logical Upgrade : Involves exporting existing data from the old MySQL version using mysqldump , installing the new MySQL version, loading the dump file into the new MySQL version, and running mysql_upgrade . 主从的升级: 主从想都替换二进制安装包为最新版本 停从,通过mysql_upgrade升级后,加参数 --skip-slaves-start 进行启动   加参数 --skip-networking重启主,拒绝来自应用的TCP/IP的连接,关闭binlog,执行mysql_upgrade,然后重启 注意点:在关闭服务时加参数 --innodb_fast

mysql skip-name-resolve和skip-grant-tables(密码忘记)

送分小仙女□ 提交于 2019-12-23 16:05:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 以下语句均是添加到my.ini文件,重启mysql后生效 skip-name-resolve 此语句用于跳过dns域名解析,在局域网连接时会更快捷,不过使用此命令,mysql库的user表中的host须由原来localhost改为%,否则不能连接数据库。 skip-grant-tables 此语句用于跳过user表权限检查,在忘记密码时可以直接登录数据库 作方法: 1、杀掉原来进行着的mysql: rcmysqld stop 或者: service mysqld stop 或者: kill -TERM mysqld 2、以命令行参数启动mysql: /usr/bin/mysqld_safe --skip-grant-tables & ./bin/mysqld_safe --skip-grant-tables --user=root& 3、修改管理员密码: use mysql; update user set password=password(’yournewpasswordhere’) where user=’root’; flush privileges; exit; 4、杀死mysql,重启mysql ========================= 忘记mysql root密码 如何修改mysql

Mysql 远程登录及常用命令

瘦欲@ 提交于 2019-12-23 13:50:47
第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 第三招、增加新用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数 据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb.* to user1@localhost identified by ""; 第四招: 操作数据库

MySQL数据库(1)

荒凉一梦 提交于 2019-12-23 13:39:46
一、数据库概述 1、什么是数据(Data) 1 2 3 4 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如: xiaomage,male,18,1999,山东,计算机系,2017,oldboy 单纯的一条记录并没有任何意义,如果我们按逗号分隔,依次定义各个字段的意思,相当于定义表的标题,如下表格: id name sex age birth 1 alex female 19 1999 2 egon male 20 1998 这样通过表格我们很清楚的知道了某人的详细信息 2、什么是数据库(Database,简称DB)   数据库及存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用.   数据库是长期存放在计算机内,有组织、可共享的数据即可。   数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享 3、什么是数据库管理系统(DataBase Management System)     在了解了Data与DB的概念后

Day 1 MySQL数据库

雨燕双飞 提交于 2019-12-23 04:50:32
MySQL数据库_1 一、概述   1、数据(DATA)     描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机。   2、数据库(DataBase,简称DB)      数据库就是一个文件夹!      数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。     过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用。     数据库是长期存放在计算机内、有组织、可共享的数据即可。     数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享。   3、数据库管理系统(DataBase Management System,简称DBMS)     在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键。     这就用到了一个系统软件---数据库管理系统。     如MySQL、Oracle、SQLite、Access、MS SQL Server      mysql 主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。      oracle 主要用于银行、铁路、飞机场等

CentOS 下安装python 之MySQLdb

孤街醉人 提交于 2019-12-23 04:35:16
yum -y install mysql-devwget http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.2.4b4/MySQL-python-1.2.4b4.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmysql-python%2F&ts=1364895531&use_mirror=nchc tar zxvf MySQL-python-1.2.4b4.tar.gz cd MySQL-python-1.2.4b4 python setup.py build python setup.py install urllib2.URLError: <urlopen error [Errno 110] Connection timed out> 像报了这样的错,多试几次,网络请求超时了 如果 报EnvironmentError: mysql_config not found 版本是2.7.3 此时执行 find / -name mysql_config 在/usr/bin/下发现了这个文件 然后修改MySQL-python-1.2.3目录下的site.cfg文件 去掉mysql_config=XXX这行的注释,并改成mysql