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

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