深入浅出MySQL:功能、特性及核心实现

深入浅出系列

深入浅出MySQL:功能、特性及核心实现

MySQL 是一个开源的关系型数据库管理系统(RDBMS),以其高性能、高可靠性和易用性而闻名,广泛应用于互联网、企业级系统、嵌入式设备等各类场景。以下从核心功能、核心特点、核心架构与算法三个维度,结合底层原理,对 MySQL 进行全面解析,呈现各模块之间的支撑关系。

Continue reading 深入浅出MySQL:功能、特性及核心实现

SQL Server连接占线

使用ADO及ODBC连接SQL Server时,如果连接没有处理好,很容易出现下面的错误:

[Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt.
连接占线导致另一个hstmt。

[Microsoft][ODBC SQL Server Driver]Connection is busy with results for another command.
连接占线导致另一个命令。

产生这个错误的原因是,在同一个connection中,同时操作了多个数据集。

解决这个问题有两个方法
1、不要在一个connection中,同时打开多个数据集
2、在SQL SERVER2005以上版本,可以使用MARS (Multiple Active ResultSet)。在连接字符串中加上”Mars_Connection=yes;”就可以支持多数据集了。

关于MARS,可以参考这个:
http://msdn2.microsoft.com/en-us/library/ms345109.aspx

MySQL忘记管理员密码

方法一:
1、关闭mysql授权

#关闭mysql
/etc/init.d/mysql stop

#以不需要授权的模式启动mysql
#修改/etc/mysql/my.cnf添加下面的内容
[mysqld]
skip-grant-tables

#开启mysql
/etc/init.d/mysql start

2、修改密码

#登录mysql
mysql
mysql> use mysql;
#旧版本
mysql> UPDATE user SET password=password("xxx") WHERE user='root';
#新版本
mysql> update user set authentication_string=PASSWORD('xxx') where User='root';
mysql> flush privileges;
mysql> exit; 

3、开启mysql授权

#关闭mysql
/etc/init.d/mysql stop

#以不需要授权的模式启动mysql
#修改/etc/mysql/my.cnf禁用skip-grant-tables
[mysqld]
#skip-grant-tables

#开启mysql
/etc/init.d/mysql start

4、搞定

方法二
1、关闭mysql授权

#关闭mysql
service mysql stop

#以不需要授权的模式启动mysql
mysqld_safe --skip-grant-tables

2、修改密码

#登录mysql
mysql
mysql> use mysql;
#旧版本
mysql> UPDATE user SET password=password("xxx") WHERE user='root';
#新版本
mysql> update user set authentication_string=PASSWORD('xxx') where User='root';
mysql> flush privileges;
mysql> exit; 

3、开启mysql授权

#关闭mysql
service mysql stop

#开启mysql
service mysql start

4、搞定