Mysql相关

连接字符串

一、MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式

1、本地数据库连接Driver={MySQL};Server=localhost;Option=16834;Database=myDataBase;

2、远程数据连接Driver={MySQL};Server=myServerAddress;Option=131072;Stmt=;Database=myDataBase; User=myUsername;Password=myPassword;

3、特殊的TCP/IP端口连接说明:此Driver的默认端口是3306。如果没有在连接字符串中特别指出就是连接MySQL的3306端口。Driver={MySQL};Server=myServerAddress;Port=3306;Option=131072;Stmt=;Database=myDataBase; User=myUsername;Password=myPassword;

二、MySQL Connector/ODBC 3.51 (MyODBC 3.51)连接方式

1、本地数据库连接Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;

2、远程数据连接Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;

3、特殊的TCP/IP端口连接说明:此Driver的默认端口是3306。如果没有在连接字符串中特别指出就是连接MySQL的3306端口。Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Port=3306;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;

4、特殊字符集的连接Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;charset=UTF8;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;

三、OLE DB, OleDbConnection (.NET)连接方式

1、标准连接Provider=MySQLProv;Data Source=mydb;User Id=myUsername;Password=myPassword;

四、MySQL Connector/Net (.NET)连接方式

1、标准连接(说明,默认端口是3306。)Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

2、特殊的TCP/IP端口连接Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

3、命名管道说明:端口值为-1,说明用命名管道方式连接。此方式只在Windows下有效,在UNIX下用会被忽略。Server=myServerAddress;Port=-1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

4、多服务器连接用此种方式连接到数据库中,不必担心该使用哪个数据库。
Server=serverAddress1 & serverAddress2 & etc…;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

5、加密选项这条活动的SSL连接加密所有客户端和服务器商的数据传输。而且服务器要有一个证书。这个选项从Connector/NET5.0.3版开始出现,以前的版本中则没有此功能。
Server=myServerAddress;Port=-1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

6、修改默认的命令超时时间使用这条修改连接的默认命令超时时间。注意:此条不会影响你在单独命令对象上设置的超时时间。此条只对Connector/NET 5.1.4 及以上的版本有效.
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;default command timeout=20;

7、修改连接偿试时间使用这条修改在终止重试和接收错误的等待时间(以秒为单位)
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Connection Timeout=5;

8、Inactivating prepared statementsUse this one to instruct the provider to ignore any command prepare statements and prevent corruption issues with server side prepared statements.此选项被加入到Connector/NET的5.0.3版和1.0.9版。
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Ignore Prepare=true;

9、特殊的TCP/IP端口连接这条语句修改连接的端口。默认端口是3306。此参数会被Unix忽略。
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Port=3306;

10、特殊网络协议这条语句修改用哪种协议进行连接。如果没有特别说明,"socket"是默认的值。"tcp"是与"socket"相同意义的。"pipe"是使用命名管道连接,"unix"是使用 unix socket连接,"memory"是使用MySQL的共享内存。
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Protocol=socket;

11、特殊字符集的连接这个语句指出以使种字符串编码发送到服务器上的查询语句。注意:查询结果仍然是以反回数据的格式传送。
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;CharSet=UTF8;

12、修改共享内存名此语句用来修改用来通信的共享内存名称。说明:此语句只有当连接协议设置为"memory"时才有效。
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Shared Memory Name=MySQL;

五、MySQLConnection (.NET)连接方式

1、eInfoDesigns.dbProvider
Data Source=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Command Logging=false;

六、SevenObjects MySQLClient (.NET)连接方式

1、标准连接
Host=myServerAddress;UserName=myUsername;Password=myPassword;Database=myDataBase;

七、Core Labs MySQLDirect (.NET)连接方式

1、标准连接
User ID=root;Password=myPassword;Host=localhost;Port=3306;Database=myDataBase; Direct=true;Protocol=TCP;Compress=false;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;

连接出错的问题记录

程序使用Mysql.Data.dll连接原5.1版本数据库,后升级5.7后不可用,连接字符串加入sslmode后恢复,原因未知。

1
Database=database;Data Source=ip;User Id=user;Password=password;pooling=false;CharSet=utf8;port=3306;sslmode=none

删除重复记录并且只保留一条

1
2
3
4
5
6
7
8
9
10
11
12
DELETE
FROM tablename
WHERE tab_col NOT IN(
SELECT dt.minno
FROM(
SELECT MIN(tab_col) AS minno
FROM tablename
WHERE col1 = 1 AND col2 = 2
GROUP BY col3
) dt
)
AND col1 = 1 AND col2 = 2