1、事务没有提交导致锁等待,Lock wait timeout exceeded; try restarting transaction
解决办法:执行select * from information_schema.innodb_trx 之后找到了一个一直没有提交的只读事务, 找到对应的线程后,执行 kill thread id,再确认一直没有提交的只读事物被干掉了就OK了。
2、LINUX系统下常用命令
检查服务器版本:mysqladmin
假设mysql安装在目录 D:\software\mysql-5.6.25-winx64\bin下
D:\software\mysql-5.6.25-winx64\bin> mysqladmin –version
连接到mysql服务器:
D:\software\mysql-5.6.25-winx64\bin> mysql
出现mysql> 后可以执行所有的SQL,如mysql> SHOW DATABASES;
设置密码:D:\software\mysql-5.6.25-winx64\bin> mysqladmin -u root password "123456";
输入mysqld --skip-grant-tables 回车。意思是启动MySQL服务的时候跳过权限表认证。
连接数据库:use mysql;
改密码:update user set password=password("123456") where user="root";
进入mysql:D:\software\mysql-5.6.25-winx64\bin> mysql -u root –p
关闭正运行的服务器:D:\software\mysql-5.6.25-winx64\bin>mysqladmin -u root -p shutdown
USE Databasename : 用于选择在MySQL工作区指定的数据库。
SHOW DATABASES: 列出了MySQL数据库管理系统中的所有可访问的数据库。
SHOW TABLES: 显示已经选择数据库中的表的命令。
SHOW COLUMNS FROM tablename: 显示属性,属性类型,关键信息,NULL是否被允许,默认值和其它的表信息。
SHOW INDEX FROM tablename: 提供所有指标的详细信息表,其中包括PRIMARY KEY.
SHOW TABLE STATUS LIKE tablename\G: 报告MySQL的数据库管理系统的性能和统计数据的详细信息。
创建新数据库:D:\software\mysql-5.6.25-winx64\bin> mysqladmin -u root -p create tutorials
删除数据库:D:\software\mysql-5.6.25-winx64\bin> mysqladmin -u root -p drop yiibai_tutorials1
导入数据:mysql> LOAD DATA LOCAL INFILE 'C:\dump.txt' INTO TABLE mytbl;
创建索引:alter table table_name add index index_name (column_list) ;
alter table table_name add unique (column_list) ;
alter table table_name add primary key (column_list) ;
其中包括普通索引、UNIQUE索引和PRIMARY KEY索引3种创建索引的格式。
删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下:
drop index index_name on table_name ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;
其中,在前面的两条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。
如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。