mysql update语句

MySQL REPEATABLE-READ && 幻读

坚强是说给别人听的谎言 提交于 2020-03-02 04:57:45
MySQL REPEATABLE-READ && 幻读 关于mysql命令行中事务控制的语句见该文章 http://my.oschina.net/xinxingegeya/blog/296459 关于MVCC多版本控制 http://my.oschina.net/xinxingegeya/blog/208821 表结构 create table t1( a int primary key, b int not null ) REPEATABLE-READ可重复读(一) 这里打开两个mysql的命令行窗口,窗口A,即session1,窗口B,即session2。 session1 mysql> begin ; Query OK, 0 rows affected (0.00 sec) mysql> select * from t1; +----+------+ | a | b | +----+------+ | 51 | 3000 | | 52 | 3000 | | 53 | 3000 | | 54 | 3000 | +----+------+ 4 rows in set (0.00 sec) 以上sql只是显示的开启了事务,执行了sql查询。下面看session2的操作。 要注意这里的select操作是一般的快照读。根据MVCC多版本控制规则读取的数据行。 session2

Mysql 访问远程数据库,报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost

我是研究僧i 提交于 2020-03-02 03:09:14
参考: http://www.cnblogs.com/xyzdw/archive/2011/08/11/2135227.html 解决方法: 1。 改表法。 可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; 授权法。 例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 我使用的是这个语句,因为IP不固定,再就是自己测试这自己玩呢。 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES; 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码 GRANT ALL PRIVILEGES ON *.*

mysql权限管理与基本处理

拥有回忆 提交于 2020-03-01 23:08:52
作为php里最常用的数据库mysql,除掉最常用的mysql语句外,mysql的一些管理也是需要了解的。 Linux里登录mysql: mysql -h IP -uroot -p enter后 会提示输入密码。 一个比较常见遇到的问题是(忘记了root密码),解决方案: 找到my.cnf(mysql的配置文件,在windows里是my.ini) Linux的默认目录是 /etc/mysql 在mysqld里加上一句 skip-grant-tables 保存退出 service mysql restart 数据库服务重启。 然后mysql登录的时候,可以不需要密码。对数据库进行重新设置 UPDATE user SET Password = password ('new-password’) WHERE User = ‘root’ 这样就更改了root的新密码。 然后flush privileges ; (一定要刷新权限,否则是不会生效的)。 然后service mysql restart 这样就完成了不知道数据库密码的情况下,对密码的更改。 拥有了数据库根目录权限后,在大多数的使用场景里面,我们需要管理一个数据库服务器,但是每个项目仅仅是使用了一个或者俩个数据库,而且为了保证数据库整体的安全,并不提倡给每个项目都是根目录权限。一般的应用场景是,给某个项目指定特定连接的数据库和操作权限

MYSQL语句中的增删改查

丶灬走出姿态 提交于 2020-03-01 19:56:00
select * from testTable1; 查询表中的全部数据 INSERT INTO testTable1(username,password) VALUES('admin','admin'); 在testTable1表中 添加两个字段 分别为username和password 数值admin,admin UPDATE testTable1 SET password='123456' WHERE username='admin'; UPDATE testTable1 SET password='123456'; 第一条为筛选username字段中为admin的对应的password的值改为123456 第二条则将所有password的字段中的值改为123456 INSERT INTO testTable1(username,password) VALUES('admin','admin'),('123456','123456'),('qwer123','qwer123'); mysql> select * from testTable1; +----+----------+----------+ | id | username | password | +----+----------+----------+ | 1 | admin | 123456 | | 2 |

mysql 的root密码忘记了

非 Y 不嫁゛ 提交于 2020-03-01 15:41:31
一、经常不使用root用户登录。导致密码忘记 1、第一步  kill 掉mysql 的进程,用命令查看mysql的活动的进程,kill -9 pid 不管用,用killall mysqld 就可以了 >ps -ef|grep mysql 看到如下信息: mysql 28202 1 0 00:24 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe mysql 28552 28202 2 00:24 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin- dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 root 28579 27404 0 00:25 pts/18 00:00:00 grep --color=auto mysql 执行命令: >killall mysqld 关闭mysql服务器进程 第二步、用不检查权限的命令去启动mysql服务器 mysqld_safe --skip-grant-tables

mysql详解

佐手、 提交于 2020-03-01 11:59:43
mysql命令 mysql登录参数: -D, --database 指定数据库 --delimiter 指定分隔符 -h, --host 指定服务器地址 -p, --password 指定密码 -P, --port 指定端口 --prompt 设置提示符 -u, --user 指定用户名 -V, --version 输出版本信息并退出 修改命令提示符: 通过参数指定提示符, mysql -uroot -p123456 --prompt 提示符 通过命令指定提示符, mysql> prompt 提示符; 提示符: \D 完整的日期 \d 当前数据库 \h 服务器名称 \u 当前数据库 常用命令: SELECT VERSION(); 显示当前服务器版本 SELECT NOW(); 显示当前日期时间 SELECT USER(); 显示当前用户 mysql语句规范: 1. 关键字与函数名称全部大写 2. 数据库名称、表名称、字段名称全部小写 3. SQL语句必须以分号结尾 操作数据库 CREATE DATABASE 创建数据库 ALTER DATABASE 修改数据库 DROP DATABASE 删除数据库 创建数据库: {} 为必选项; | 表示或; [] 为可选项。下同 CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] db_name [

mysql事务

只谈情不闲聊 提交于 2020-03-01 08:48:54
事务:一组sql语句操作单元,组内所有sql语句完成一个业务.注意只有innodb和bdb可以使用事务安全 如果整组成功则意味着全部sql语句都实现。如果其中任何一个失败,意味着整个操作失败。失败意味着整个过程都是没意义的,数据库应该回到最初始的状态。上面的特性,就是事务。 如何处理:失败后,可以回到开始位置、没有成功之前,别的用户(进程,对话)是不能看到操作内的数据修改的 思路:就是在一组操作之前,设计一个记号(备份点)。操作成功就让别人看到数据的修改,如果失败别人就不能看到修改,而且回到记号位置。 实现:利用innodb存储引擎的事务日志功能。 sql执行分为2个阶段:一个是执行阶段一个是将执行结果提交到数据库的阶段。其中我们的事务日志,就是保存执行阶段的结果。如果可以用,则将执行的结果提交到数据库 数据库默认的执行方式是:自动提交(autocommit)。执行完后自动完成提交工作。想要完成事务安全就需要关闭自动提交功能。set autocommit=0; 例:交班费业务30元:包含两条sql语句update `sm_student` set `s_money`=`s_money`-30 where id=1; update `class` set `c_money`=`c_money`+30 where id=1;

Python操作MySQL批量更新语句

怎甘沉沦 提交于 2020-03-01 08:44:02
connection = pymysql . connect ( user = 'root' , password = 'mysql' , database = 'test' , host = '127.0.0.1' , port = 3306 , charset = 'utf8mb4' ) name_lit = [ "re" , "gh" , "ds" , "D" ] # 存储name的值 age_lit = [ "10" , "20" , "30" , "40" ] # 存储age的值 id_lit = [ "1" , "2" , "3" , "4" ] # 存储id的值 lit = [ [ name_lit [ i ] , age_lit [ i ] , id_lit [ i ] ] for i in range ( len ( id_lit ) ) ] print ( lit ) with connection . cursor ( ) as cursor : try : sql = "update test SET name=(%s), age=(%s) where id=(%s)" cursor . executemany ( sql , id_lit ) connection . commit ( ) except : connection . rollback (

python连接Mysql数据库

こ雲淡風輕ζ 提交于 2020-03-01 06:43:27
(1)首先需要安装pymysql库,命令行执行以下语句即可: pip install pymysql (2)创建表 import pymysql """ 1、连接本地数据库 2、建立游标 3、创建表 4、插入表数据、查询表数据、更新表数据、删除表数据 """ def create_table ( ) : #连接本地数据库 db = pymysql . connect ( host = 'localhost' , #数据库IP地址 port = 3306 , #数据库连接端口,默认是2206 user = 'root' , #数据库用户名 passwd = '123456' , #数据库用户密码 db = 'test_db' , #数据库名称 charset = 'utf8' ) #创建游标 cursor = db . cursor ( ) #新建一张student表,如果存在student表,则删除 cursor . execute ( "DROP TABLE IF EXISTS student" ) #创建student表 sql = """ create table student( id int not null, name char(10), age int, address char(20), create_time datetime) """ try : #

mysql中的事务

落花浮王杯 提交于 2020-03-01 06:02:21
mysql中的事务 1.mysql中的innodb存储引擎才支持事务。 2.事务就是一组sql语句,只要全部的sql语句执行成功,事务才会提交(COMMIT),只要有一条sql语句执行失败,则事务不成功,需要回滚(rolback)。 3.对于事务而言,它需要满足ACID特性,下面就简要的说说事务的ACID特性。   1)A,表示原子性;原子性指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行成功,整个事务的执行才算成功。事务中任何一个sql语句执行失败,那么已经执行成功的sql语句也必须撤销,数据库状态应该退回到执行事务前的状态;   2)C,表示一致性;也就是说一致性指事务将数据库从一种状态转变为另一种一致的状态,在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏;   3)I,表示隔离性;隔离性也叫做并发控制、可串行化或者锁。事务的隔离性要求每个读写事务的对象与其它事务的操作对象能相互分离,即该事务提交前对其它事务都不可见,这通常使用锁来实现;   4)D,持久性,表示事务一旦提交了,其结果就是永久性的,也就是数据就已经写入到数据库了,如果发生了宕机等事故,数据库也能将数据恢复。 4.默认的事务都是开启的 可以通过 set autocommit = 0 取消自动提交事务。 5.可以为不同的地方设置回滚点 设置回滚点:save point 保存点名称