怎么链接一个服务器上的mysql数据库

怎么链接一个服务器上的mysql数据库,第1张

有多种方法啊。介绍其中一种,使用mysql数据库的odbc驱动。

步骤:

1.安装mysql数据库的odbc驱动,mysql-connector-odbc-3.51.23-win32.msi(其中*是版本号),下载并安装。

2.在mysql中创建数据库实例。

3.打开控制面板

--

管理工具

--

数据源odbc,在用户dsn中添加一个mysql

odbc

3.51数据源

4.在登录login选项卡中输入数据源名称data

source

name,此处输入mysqldns(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器server,用户user,密码password,输入正确后选择要导入的数据库,database选择你需要导入的数据库。在连接选项connect

options中根据需要设置mysql使用的端口port和字符集character

set。

注:字符集一定要和mysql服务器相对应,如果mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到sql

server可能会出现问号乱码。

5.打开sql

server企业管理器,选择该数据库,单击右键选择所有任务

--

导出数据。

6.‘选择数据源’为默认,‘选择目的’为刚刚安装的mysql数据源,用户/系统dsn为mysqldns。

方法2:

有多种方法啊。介绍其中一种,使用mysql数据库的odbc驱动。步骤:

1.安装mysql数据库的odbc驱动,mysql-connector-odbc-3.51.23-win32.msi(其中*是版本号),下载并安装。

2.在mysql中创建数据库实例。

3.打开控制面板

--

管理工具

--

数据源odbc,在用户dsn中添加一个mysql

odbc

3.51数据源。

4.在登录login选项卡中输入数据源名称data

source

name,此处输入mysqldns(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器server,用户user,密码password,输入正确后选择要导入的数据库,database选择你需要导入的数据库。在连接选项connect

options中根据需要设置mysql使用的端口port和字符集character

set。

注:字符集一定要和mysql服务器相对应,如果mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到sql

server可能会出现问号乱码。

5.打开sql

server企业管理器,选择该数据库,单击右键选择所有任务

--

导出数据。

6.‘选择数据源’为默认,‘选择目的’为刚刚安装的mysql数据源,用户/系统dsn为mysqldns。

后来在网上发现解决方法,my.ini里面添加

[mysqld]

skip-name-resolve

这样速度就快了!

skip-name-resolve

选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

就MySQL本身而言,问题出在在mysql dns反解析

mysql>show processlist

| 20681949 | unauthenticated user | 10.10.4.193:52497 | NULL | Connect | | Reading from net | NULL |

| 20681948 | unauthenticated user | 10.10.4.193:52495 | NULL | Connect | | Reading from net | NULL

发现有非常多的 unauthenticated user 尝试做登入使用 mysql 的情况 ,当这种情况无限制发生时就会造成系统十分缓慢。

查阅mysql官方网站得知,这属于官方一个系统上的特殊设定,就把他当成mysql的一个bug算了,不管链接的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查。mysqld 会尝试去反查 IP ->dns ,由于反查解析过慢,就会无法应付过量的查询。

SQL服务器在内存中维持了一个Host缓存,用于存储客户端的信息,包括:IP地址、Host主机名、错误信息等。对于非本地的TCP连接,MySQL服务器都会查询此缓存。对于使用本地环回地址(比如:127.0.0.1或者::1)的TCP连接、或者是使用Unix套接字文件的TCP连接、命名管道的TCP连接、共享内存的TCP连接,都不会使用Host缓存。

注:Loopback,本地环回接口(或地址),亦称回送地址。此类接口是应用最为广泛的一种虚接口,几乎在每台路由器上都会使用。在Windows系统中,采用127.0.0.1作为本地环回地址。

对于每一个新的客户端连接,MySQL服务器使用客户端的IP地址进行检索,查看客户端的主机名是否在Host缓存中。如果Host缓存中不存在,MySQL服务器会尝试解析主机名。首先,MySQL服务器会解析主机名对应的IP地址,并与客户端的原始IP地址进行比较,确保是同一个IP地址。然后MySQL服务器把这些信息写入Host缓存中。如果Host缓存已满,MySQL服务器会使用最近最少使用算法,删除部分缓存数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7298346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存