mysql常见操作汇总

 

sql优化小结:
之前3m+,现在 300ms~400ms
解决思路:去掉冗余的查询条件,尽量使用3星索引。

更改字段长度,字段imei 由varchar(1024)更改为varchar(45) ,索引中涉及到imei字段的由imei(255)变为imei
梳理api接口使用中查询所需字段,优化查询条件,将一些不需要的查询参数去掉。
将经典场景使用的查询条件,单独建索引
将关键字段单独建索引,这个场景中,只将imei字段单独建立索引,其它字段不需要
 

SELECT IF(id=2,4,id) ,id from people ORDER BY id DESC;

 

  

MySql查看与修改auto_increment方法

查看表当前auto_increment
表的基本数据是存放在MySQL的information_schema库的tables表中,我们可以使用sql查出:

SELECT
    auto_increment
FROM
    information_schema. TABLES
WHERE
    table_schema = 'db name'
AND table_name = 'table name';

例子:查看 test_user 库的 user 表 auto_increment

mysql> select auto_increment from information_schema.tables where table_schema='test_user' and table_name='user';
+----------------+
| auto_increment |
+----------------+
|           1002 |
+----------------+
1 row in set (0.04 sec)

修改表 auto_increment

alter table tablename auto_increment=NUMBER;

 

1、
创建表时指定AUTO_INCREMENT自增值的初始值(即起始值)不设置或设置为0时,会从1开始:

CREATE TABLE XXX (
   ID INT (5) PRIMARY KEY AUTO_INCREMENT
) AUTO_INCREMENT = 100;

2、

通过 ALTER TABLE 修改初始值(但是要大于表中的 AUTO_INCREMENT 自增值,否则设置无效):

ALTER TABLE XXX AUTO_INCREMENT=100;

3、

如果自增序列的最大值被删除了,则在插入新记录时,该值被重用:
就是说如果表中原本有AUTO_INCREMENT属性值连续为78、100的值,但100这个数据被删除了,下此再添加数据的时候自增值为101,100被重用了。
即使在你将整个表中的所有数据delete清空后,之前的自增序列最大值还是会被重用。
解决办法是:
使用

ALTER TABLE XXX AUTO_INCREMENT=0;

 重新设置自增初始值。

 

 

 

 

 

mysql中的字符串的拼接

字符串的拼接
1、Mysql
在Java、C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:"1"+"3"、"a"+"b"。
在MYSQL中也可以使用加号“+”来连接两个字符串,比如下面的SQL:

SELECT '12'+'33',FAge+'1' FROM T_Employee   

 执行结果

 

'12'+'33'  FAge+'1'
45    26
45  29
45  24
45  26
45  29
45  28
45  24
45  29
45  23 

MYSQL会尝试将加号两端的字段值尝试转换为数字类型,如果转换失败则认为字段值为
0,比如我们执行下面的SQL语句:

SELECT 'abc'+'123',FAge+'a' FROM T_Employee   

执行完毕我们就能在输出结果中看到下面的执行结果:

'abc'+'123'  FAge+'a'
123  25
123  28
123  23
123  25
123  28
123  27
123  23
123  28
123  22   

   在MYSQL中进行字符串的拼接要使用CONCAT函数,CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数MYSQL将尝试将其转化为字符串类型,CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串做为返回值。比如下面的SQL语句用于将用户的多个字段信息以一个计算字段的形式查询出来:

SELECT CONCAT('工号为:',FNumber,'的员工的幸福指数:',FSalary/(FAge-21))   

FROM T_Employee 执行完毕我们就能在输出结果中看到下面的执行结果:

CONCAT('工号为:',FNumber,'的员工的幸福指数:',FSalary/(FAge-21))
工号为:DEV001的员工的幸福指数:2075.000000
工号为:DEV002的员工的幸福指数:328.685714
工号为:HR001的员工的幸福指数:1100.440000   

MYSQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS,CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,它的第一个参数值为采用的分隔符,而剩下的参数则为待拼接的字符串值,比如执行下面的SQL: 

SELECT CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary) FROM T_Employee   

执行完毕我们就能在输出结果中看到下面的执行结果:

CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary)
DEV001,25,Development,8300.00
DEV002,28,Development,2300.80
HR001,23,HumanResource,2200.88
HR002,25,HumanResource,5200.36
IT001,28,InfoTech,3900.00
IT002,27,InfoTech,2800.00
SALES001,23,Sales,5000.00
SALES002,28,Sales,6200.00
SALES003,22,Sales,1200.00  

2,oracle

  Oracle中使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。
比如执行下面的SQL语句:

SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee
WHERE FName IS NOT NULL   

执行完毕我们就能在输出结果中看到下面的执行结果:

工号为||FNUMBER||的员工姓名为||FNAME
工号为DEV001的员工姓名为Tom
工号为DEV002的员工姓名为Jerry
工号为SALES001的员工姓名为John
工号为SALES002的员工姓名为Kerry
工号为SALES003的员工姓名为Stone
工号为HR001的员工姓名为Jane
工号为HR002的员工姓名为Tina
工号为IT001的员工姓名为Smith   

   除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句:

SELECT CONCAT('工号:',FNumber) FROM T_Employee   

执行完毕我们就能在输出结果中看到下面的执行结果:

CONCAT(工号:,FNUMBER)
工号:DEV001
工号:DEV002
工号:HR001
工号:HR002
工号:IT001
工号:IT002
工号:SALES001
工号:SALES002
工号:SALES003  

如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串,
与MYSQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,不支持两个以
上字符串的拼接。如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用。

SELECT CONCAT(CONCAT(CONCAT('工号为',FNumber),'的员工姓名为'),FName) FROM
T_Employee
WHERE FName IS NOT NULL  

执行完毕我们就能在输出结果中看到下面的执行结果:

CONCAT(CONCAT(CONCAT(工号为,FNUMBER),的员工姓名为),FNAME)
工号为DEV001的员工姓名为Tom
工号为DEV002的员工姓名为Jerry
工号为SALES001的员工姓名为John
工号为SALES002的员工姓名为Kerry
工号为SALES003的员工姓名为Stone
工号为HR001的员工姓名为Jane
工号为HR002的员工姓名为Tina
工号为IT001的员工姓名为Smith 

http://honly-java.iteye.com/blog/1633033

 

 

where 1071 Specialfied key war too long; max key length is 767 bytes

在为数据库中的某两个字段设置unique索引的时候,出现了Specified key was too long; max key length is 1000 bytes错误
经过查询才知道,是Mysql的字段设置的太长了,于是我把这两个字段的长度改了一下就好了。

建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000:
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
举例能看得更明白些,以GBK为例:
CREATE UNIQUE INDEX `uk_record` ON reports (`report_name`, `report_client`, `report_city`);
其中report_name varchar(200), report_client varchar(200), report_city varchar(200)
(200 + 200 +200) * 2 = 1200 > 1000,所有就会报1071错误,只要将report_city改为varchar(100)那么索引就能成功建立。
如果表是UTF8字符集,那索引还是建立不了

http://www.jb51.net/article/24499.htm

mysql中索引类型选择:  btree(O(log(n))),hash

mysql最常用的索引结构是btree(O(log(n))),但是总有一些情况下我们为了更好的性能希望能使用别的类型的索引。
hash就是其中一种选择,例如我们在通过用户名检索用户id的时候,他们总是一对一的关系,用到的操作符只是=而已,假如使用hash作为索引数据结构的话,时间复杂度可以降到O(1)。
不幸的是,目前的mysql版本(5.6)中,hash只支持MEMORY和NDB两种引擎,而我们最常用的INNODB和MYISAM都不支持hash类型的索引。

不管怎样,还是要了解一下这两种索引的区别,下面翻译自mysql官网文档中对这两者的解释。
B-Tree 索引特征
B-Tree索引可以被用在像=,>,>=,<,<=和BETWEEN这些比较操作符上。而且还可以用于LIKE操作符,只要它的查询条件是一个不以通配符开头的常量。像下面的语句就可以使用索引:

SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%';
SELECT * FROM tbl_name WHERE key_col LIKE 'Pat%_ck%';

下面这两种情况不会使用索引:

SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%';
SELECT * FROM tbl_name WHERE key_col LIKE other_col;

第一条是因为它以通配符开头,第二条是因为没有使用常量
假如你使用... LIKE '%string%'而且string超过三个字符,MYSQL使用Turbo Boyer-Moore algorithm算法来初始化查询表达式,然后用这个表达式来让查询更迅速。
一个这样的查询col_name IS NULL是可以使用col_name的索引的。
任何一个没有覆盖所有WHERE中AND级别条件的索引是不会被使用的。也就是说,要使用一个索引,这个索引中的第一列需要在每个AND组中出现。
下面的WHERE条件会使用索引:

... WHERE index_part1=1 AND index_part2=2 AND other_column=3
    /* index = 1 OR index = 2 */
... WHERE index=1 OR A=10 AND index=2
    /* 优化成 "index_part1='hello'" */
... WHERE index_part1='hello' AND index_part3=5
    /* 可以使用 index1 的索引但是不会使用 index2 和 index3 */
... WHERE index1=1 AND index2=2 OR index1=3 AND index3=3;

下面的WHERE条件不会使用索引:

    /* index_part1 没有被使用到 */
... WHERE index_part2=1 AND index_part3=2
    /* 索引 index 没有出现在每个 where 子句中 */
... WHERE index=1 OR A=10
    /* 没有索引覆盖所有列 */
... WHERE index_part1=1 OR index_part2=10

有时候mysql不会使用索引,即使这个在可用的情况下。例如当mysql预估使用索引会读取大部分的行数据时。(在这种情况下,一次全表扫描可能比使用索引更快,因为它需要更少的检索)。然而,假如语句中使用LIMIT来限定返回的行数,mysql则会使用索引。因为当结果行数较少的情况下使用索引的效率会更高。
Hash 索引特征
Hash类型的索引有一些区别于以上所述的特征:
1.它们只能用于对等比较,例如=和<=>操作符(但是快很多)。它们不能被用于像<这样的范围查询条件。假如系统只需要使用像“键值对”的这样的存储结构,尽量使用hash类型索引。
2.优化器不能用hash索引来为ORDER BY操作符加速。(这类索引不能被用于搜索下一个次序的值)
3.mysql不能判断出两个值之间有多少条数据(这需要使用范围查询操作符来决定使用哪个索引)。假如你将一个MyISAM表转为一个依靠hash索引的MEMORY表,可能会影响一些语句(的性能)。
4.只有完整的键才能被用于搜索一行数据。(假如用B-tree索引,任何一个键的片段都可以用于查找。我觉得可能意味着带通配符LIKE操作符会不起作用)。
后记
顺便记录一下在使用mysql过程中碰到的一些问题:
有时候使用脚本迁移数据时会碰到乱码的问题,即使将表字符集设置成utf8也无济于事,这个时候在执行sql之前加一句set names utf8即可。

 http://www.jb51.net/article/62533.htm

DROP TABLE if EXISTS `people`;
CREATE TABLE people(
    id BIGINT UNSIGNED auto_increment primary key,
    zip_code char(32) not null default '',
    address varchar(128) not null default '',
    last_name char(64) not null default '',
    first_name char(64) not null default '',
    birthdate char(10) not null default ''
);

DROP TABLE IF EXISTS `people_car`;
CREATE TABLE people_car(
    people_id BIGINT UNSIGNED,
    plate_number varchar(16) not null default '',
    engine_number varchar(16) not null default '',
    lasttime timestamp
);

insert into people
(zip_code,address,last_name,first_name,birthdate)
values
('230031','henan','fan','li','516-09-15'),
('100000','anhui','zhang','san','1987-03-11'),
('200000','shanghai','wang','wu','1988-08-25');

insert into people_car
(people_id,plate_number,engine_number,lasttime)
values
(1,'A121311','12121313','2013-11-23 :21:12:21'),
(2,'B121311','1S121313','2011-11-23 :21:12:21'),
(3,'C121311','1211SAS1','2012-11-23 :21:12:21');

ALTER TABLE `people`
ADD INDEX `idx_zipcode_firstname_lastname` (`zip_code`, `last_name`, `first_name`) USING BTREE ,
ADD INDEX `idx_zipcode` (`zip_code`) USING BTREE ;

EXPLAIN SELECT * from people;
EXPLAIN SELECT zip_code,first_name,last_name from people;
EXPLAIN SELECT * from people;

 http://www.cnblogs.com/zhanjindong/p/3439042.html

Tips:

Tom Smith中“Tom”是 first name,即名;“Smith”是last name=family name,即姓

 

 

1、Mysql服务突然启不来了,报错:

在分析时发现
MySQL Server 5.0\data下面有个名称为用户名,扩展名为.err的文件:

150725 20:01:19 [Note] 自己的安装目录\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete

150725 21:26:35  InnoDB: Error: unable to create temporary file; errno: 9
150725 21:26:35 [ERROR] Default storage engine (InnoDB) is not available
150725 21:26:35 [ERROR] Aborting

150725 21:26:35 [Note] 自己的安装目录\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete

按照网上找的解决办法,
(1)在MySQL\MySQL Server 5.0\my.ini中增加配置
tmpdir="自己的安装目录/MySQL/MySQL Server 5.0/Temp"

(2)更改引擎:
# The default storage engine that will be used when create new tables when
#default-storage-engine=INNODB
default-storage-engine=MyISAM

后,重新启动MySQL服务即可。

成功启动后 MySQL Server 5.0\data\当前用户名.err中的内容如下:

150725 20:01:19 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete

150725 21:26:35  InnoDB: Error: unable to create temporary file; errno: 9
150725 21:26:35 [ERROR] Default storage engine (InnoDB) is not available
150725 21:26:35 [ERROR] Aborting

150725 21:26:35 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete
150725 21:28:12  InnoDB: Error: unable to create temporary file; errno: 9
150725 21:28:12 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: ready for connections.
Version: '5.0.96-community-nt'  socket: ''  port: 3306  MySQL Community Edition (GPL)

从上面的信息可以看到temporary file仍然创建失败,但Mysql服务器启动成功了

 

mysql> show engines;
+------------+----------+----------------------------------------------------------------+
| Engine     | Support  | Comment
+------------+----------+----------------------------------------------------------------+
| MyISAM     | DEFAULT  | Default engine as of MySQL 3.23 with great performance
| MEMORY     | YES      | Hash based, stored in memory, useful for temporary tables      |
| InnoDB     | DISABLED | Supports transactions, row-level locking, and foreignkeys     |
| BerkeleyDB | NO       | Supports transactions and page-level locking
| BLACKHOLE  | YES      | /dev/null storage engine (anything you write to it disappears) |
| EXAMPLE    | NO       | Example storage engine
| ARCHIVE    | YES      | Archive storage engine
| CSV        | NO       | CSV storage engine
| ndbcluster | NO       | Clustered, fault-tolerant, memory-based tables
| FEDERATED  | YES      | Federated MySQL storage engine
| MRG_MYISAM | YES      | Collection of identical MyISAM tables
| ISAM       | NO       | Obsolete storage engine
+------------+----------+----------------------------------------------------------------+
12 rows in set (0.00 sec)

 

 2、MySQL 参数autoReconnect=true 解决8小时连接失效
(1). 即使在创建Mysql时url中加入了autoReconnect=true参数,一但这个连接两次访问数据库的时间超出了服务器端wait_timeout的时间限制,还是会CommunicationsException: The last packet successfully received from the server was xxx milliseconds ago. 
(2) 服务器端的参数可以用   
show global variables like 'wait_timeout';   

28800s=8h
set global wait_timeout=10;   
来进行设置,但是wait_timeout值不应该设的太高. 
(3). 较好的策略是对处于idle状态的connection定时发送一个sql,来刷新服务器上的时间戳.这可以使用c3p0r的连接池.http://bzhang.iteye.com/blog/321832 
(4). 对于tomcat的server.xml中使用的连接池,http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html,http://commons.apache.org/dbcp/configuration.html使用DBCP的连接池可以采用 

<Resource name="jdbc/test" auth="Container"
              type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"
              username="root" password="test" maxActive="500" maxIdle="10"
              maxWait="-1" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="10000" />

4.1 设置validationQuery,这样每次borrow(默认为开启)时会通过这个sql校验连接的有效性,但是增加了时间.   
4.2 设置timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="10000" 依赖evictor thread线程来把超时的连接关闭.   
4.3 设置testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" validationQuery="select 1" 使得定时去用query检测处于idle状态的连接,也就刷新了服务器端的时间.

(5).每次提交的最大packet大小  show global variables like 'max_allowed_packet';  set global max_allowed_packet=1024*1024;

http://www.linuxidc.com/Linux/2012-10/72245.htm
 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password

mysql ERROR 1045 (28000): Access denied for user解决方法

问题重现(以下讨论范围仅限Windows环境):

C:\AppServ\MySQL> mysql -u root -p
Enter password:
 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

编辑mysql配置文件my.ini(不知道在哪请搜索),在[mysqld]这个条目下加入   skip-grant-tables 保存退出后重启mysql

1.点击“开始”->“运行”(快捷键Win+R)。
2.启动:输入 

net stop mysql

3.停止:输入 

net start mysql

这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。按下面的流程走(红色部分为输入部分,粉红色的是执行后显示的代码不用输入):

1.进入mysql数据库:

mysql> use mysql;
Database changed

2.给root用户设置新密码,蓝色部分自己输入:

mysql> update user set password=password("新密码") where user="root";
Query OK, 1 rows affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0

3.刷新数据库 

mysql> flush privileges; 

Query OK, 0 rows affected (0.00 sec)

4.退出mysql: 

mysql> quit Bye

改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql就可以了。

http://blog.csdn.net/hsg77/article/details/39159191

在windows平台下MySql启动时的1067错误的解决方法及反思

一、

1、打开my.ini文件,找到default-storage-engine=InnoDB这一行,把它改成default-storage-engine=MyISAM。

2、删除在MySQL安装目录下的Data目录中的ib_logfile0和ib_logfile1 3。找到在配置MySQL服务器时指定的InfoDB目录删除掉ibdata1

根据my.ini文件中:

#*** INNODB Specific options *** innodb_data_home_dir="D:/"。 4。重新启动MySQL的Service  

根据我自己的实践,只要进行第三步就能解决问题。

二、

 err文件内容:

090417  9:02:55  InnoDB: Error: unable to create temporary file; errno: 2 090417  9:02:55 [ERROR] Plugin 'InnoDB' init function returned error. 090417  9:02:55 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 090417  9:02:55 [ERROR] Unknown/unsupported table type: INNODB 090417  9:02:55 [ERROR] Aborting

090417  9:02:55 [Warning] Forcing shutdown of 1 plugins 090417  9:02:55 [Note] MySQL: Shutdown complete 

经过一翻Google,找出了无法启动的原因:MySQL在安装的时候不会自动初始tmpdir(临时文件目录),所以要在配置文件my.ini中添加如下内容:

 [mysqld]

#自己指定的临时文件目录

 tmpdir="D:/MySQL/MySQL Server 5.1/Temp"

 再次启动MySQL一切正常,在Temp文件夹下生成了一些*.tmp的临时文件。

 最后还是存在一些疑问:如果是由于没有初始化tmpdir,为什么在我第一次安装的时候也没有初始化,但也没有出现这样的问题?

三、

 以前手动安装MySQL5.0.16的windows service时很顺利,昨晚为5.0.83安装service时,总是提示1067的错误。网上有人说把my.ini放到C:\WINDOWS下就可以了,但我遇到的情况是问题仍然没有解决。我的解决办法是将参数中的--defaults-file用--defaults-extra-file取代,如下:

mysqld-nt--install MySQL --defaults-file=E:/mysql-5.0.83-win32/my.ini

改为

mysqld-nt--install MySQL --defaults-extra-file=E:/mysql-5.0.83-win32/my.ini

 执行mysqld-nt --verbose --help能看到mysqld的用法,其中就有这两个参数的说明。

C:\Users\Administrator>mysqld-nt --verbose --help|more
mysqld-nt  Ver 5.0.96-community-nt for Win32 on ia32 (MySQL Community Edition (G
PL))
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Starts the MySQL database server.

Usage: mysqld-nt [OPTIONS]
NT and Win32 specific options:
  --install                     Install the default service (NT)
  --install-manual              Install the default service started manually (NT
)
  --install service_name        Install an optional service (NT)
  --install-manual service_name Install an optional service started manually (NT
)
  --remove                      Remove the default service from the service list
 (NT)
  --remove service_name         Remove the service_name from the service list (N
T)
  --enable-named-pipe           Only to be used for the default server (NT)
  --standalone                  Dummy option to start as a standalone server (NT

 

根据我自己的实践,引起这个问题最大的可能性是数据表存储引擎(Engine,简而言之,存储引擎就是指表的类型,即Table Type

)引起的。MySQL数据库支持的数据表存储引擎有多种,可以用命令:show engines进行查看,在MySQL的配置文件my.ini中可以也看到(默认的是MyISAM):

# The default storage engine that will be used when create new tables when default-storage-engine=MyISAM。

 

    常用的存储引擎还有InnoDB,InnoDB有多种优点,InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力、多版本并发控制的事务安全.同时,InnoDB也是MySQL上第一个提供外键约束的引擎,而且InnoDB存储引擎对事务处理的能力也是MySQL其他存储引擎所无法与之比拟的。 

    InnoDB与MyISAM的区别:

    以InnoDB存储引擎存储的表,存储表结构的.frm与存储的表数据文件(ibdata1)是分开存放的,存储表数据的文件位置可以通过修改my.ini文件自行设置:

 #*** INNODB Specific options ***

innodb_data_home_dir="D:/"

    以MyISAM存储引擎存储的表,一共包括3个文件:.frm(存储表的结构)文件,.MYD(MYouData的缩写,存储表的数据)文件,.MYI(MYIndex的缩写,存储表的索引),这个三个文件同时存放在MySQL数据库安装时存放数据的目录下,如F:\ProgramData\MySQL\MySQL Server 5.1\data\Databasename中。

    另外,通过对这次问题的解决,我认识到了查看错误日志的重要性,当遇到问题的时候,我们首先想到的应该是去查看错误日志,而不是不加思索去Google或者去baidu,其实从错误日志中我们能得到真正造成问题的原因,对症下药,才能药到病除。MySQL的错误日志(.err)位于F:\ProgramData\MySQL\MySQL Server 5.1\data目录下,文件名一般为你的计算机名。

 http://blog.sina.com.cn/s/blog_600357e40100q5ub.html

 

时间: 2024-12-28 17:22:26

mysql常见操作汇总的相关文章

C语言单链表常见操作汇总_C 语言

C语言的单链表是常用的数据结构之一,本文总结了单链表的常见操作,实例如下: #include<stdio.h> #include<stdlib.h> //定义单链表结构体 typedef int ElemType; typedef struct Node { ElemType data; struct Node *next; }LNode,*LinkList; //创建单链表 void Build(LinkList L) { int n; LinkList p,q; p=L; pr

javascript常见操作汇总_javascript技巧

本文整理汇总了javascript常见的各类操作,包括字符串.时间.表单.正则验证等等.有着极高的参考价值.分享给大家供大家参考之用.具体方法如下: /***** BasePage.js 公共的 脚本文件 部分方法需引用jquery库 *****/ //#region 日期操作 //字符串转化为时间. function stringtoTime(date1) { var dt = new Date(Date.parse(date1.replace(/-/g, "/"))); retur

路径,文件,目录,I/O常见操作汇总(三)

主要内容: 一.路径的相关操作,如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容: 二.相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录: 三.文件和目录操作,如复制.移动.删除.重命名,文件的版本信息,文件判等.搜索,读写文件等: 四.读写文件,对文件系统的监视: 五.其它,如临时文件,随机文件名等: 第一篇-路径的相关操作和通用文件对话框的使用 第二篇-文件和目录的相关操作 这一篇将介绍第四.五部分. 文件读写相关类介绍: 文件读写操作涉及的类

路径,文件,目录,I/O常见操作汇总(二)

摘要: 文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供给你一点有益的思路,如果你有好的建议,恳请能够留言,使这些内容更加完善. 主要内容: 一.路径的相关操作, 如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容: 二.相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录: 三.文件.目录.驱动器的操作

路径,文件,目录,I/O常见操作汇总(一)

主要内容: 一.路径的相关操作, 如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容: 二.相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录: 三.文件.目录.驱动器的操作,如获取它们的基本信息,获取和设置文件和目录的属性,文件的版本信息, 搜索文件和目录,文件判等,复制.移动.删除.重命名文件和目录: 四.读写文件,包括临时文件,随机文件名等: 五.对文件系统的监视: 这一篇就先写一下前两部分. 一.路径相关操作 问题1:如何判定一个给定的路径是否

瑞星杀毒工具使用常见操作汇总

  瑞星杀毒软件怎么卸载? 瑞星杀毒软件怎么卸载方法一:1.打开360安全卫士--软件管理--软件卸载--安全防护--瑞星杀毒--卸载. 瑞星杀毒软件怎么卸载方法二:在瑞星杀毒软件菜单右键选择卸载瑞星杀毒软件. 在卸载瑞星杀毒时,部分运行中的程序需要重启电脑后手动删除哦 如果你安装瑞星的时候是默认的安装位置,那么打开C盘,找到瑞星的安装目录,看看有没有残留文件(如果没有那就更好啦). 默认位置:Win7 64 C:Program Files (x86)Rising & RavBin 删除即可.

Oracle常见操作汇总(转)

前言:Oracle学习也有十几天了,但是呢,接下来还要学习许多其他的东西,并不能提步不前,所以在此总结了以下Oracle中常用的命令和语句,没有语法都是实例,以便以后工作的时候随时翻看,毕竟是自己的东西,一看就懂. 有关的语句和操作基本都是按照实战中的顺序来总结的,比如创建用户,建表,序列初始化,插入数据的顺序呢. 这篇文章的基表是大家最为熟知的Scott用户下的emp员工表,dept部门表以及salgrade薪水等级表,一切的语句都是围绕它写的. 下面来看一下Oracle中常用的操作都有哪些吧

Vim常见操作汇总

1.跳到文本的最后一行:按"G",即"shift+g"2.跳到最后一行的最后一个字符 : 先重复1的操作即按"G",之后按"$"键,即"shift+4".3.跳到第一行的第一个字符:先按两次"g",4.跳转到当前行的第一个字符:在当前行按"0".   一.字符的替换及撤销(Undo操作) 1.替换和撤销(Undo)命令 替换和Undo命令都是针对普通模式下的操作 命令

mysql表的基础操作汇总(三)_Mysql

针对mysql表进行的基础操作,具体内容如下 1.创建表: 创建表的语法形式: CREATE TABLE table_name( 属性名 数据类型, 属性名 数据类型, ... 属性名 数据类型 ) 示例: CREATE TABLE t_dept( deptno int, dname varchar(20), loc varchar(20) 备注:在创建表之前,通常你需要使用 USE 库名:这样一条语句来选择一个库,在所选择的库中创建表.对于表名标识符,不能是mysql的关键字,如 CREATE