1:正常配置方法01

MySQL-uroot-p123456

123456 为 root 用户的密码

grant all PRIVILEGES on discuz.*to ted@’123.123.123.123’identified by’123456′;

上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456

flush privileges;

让更改生效

1.1:正常配置方法02

mysql -u root -pvmware

mysql> use mysql;

mysql> update user set host = ‘%’ where user = ‘root’;

mysql> select host, user from user;

mysql>flush privileges;

1.2:正常配置方法03

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

mysql> GRANT ALL PRIVILEGES ON *.* TO’myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

mysql> GRANT ALL PRIVILEGES ON *.* TO’myuser’@’192.168.1.3’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

2:问题解决

发现配置问题

mysql> select user,password,host from user;

回显

+——–+——————————————-+—————–+

| user  | password                                  | host            |

+——–+——————————————-+—————–+

| root  | *7E3F81xxx41010CD0ExxxxxxA880BA595CDABF32 | localhost      |

| myuser | *7E3F814xxx41010CD0xxxxxxx80BA595CDABF32 | 11x.5.xx.126    |

| myuser | *7E3F814Axxx010CD0ExxxxxxxCDABF32 | 118.19x.1x.236 |

| myuser | *7E3xxxA41010CD0xxxxxxxxxxxABF32 | 127.0.0.1      |

+——–+——————————————-+—————–+

4 rows in set (0.00 sec)

如果你的配置没问题的话 回显应该和我的类似

3:加速访问

当远程访问mysql时, mysql会解析域名, 所以会导致访问速度很慢, 会有2,3秒延时!

解决办法:

修改mysql安装目录下的my.ini,加上下面这个配置可解决此问题。在[mysqld]下加入:skip-name-resolve

保存退出后重启mysql服务。

4:修改通信端口

修改下面两个地方:

[client]

port=3306

[mysqld]

# The TCP/IP Port the MySQL Server will listen on

port=3306

如果提示修改不了可能需要把相关软件和服务先停掉,win7的可能要以管理员方式打开,修改后要重启服务才起作用。

5:my.ini 配置错误

检查下面设置

skip-networking

#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!

skip-name-resolve      #禁止MySQL对外部连接进行DNS解析

skip-grant-tables

#禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!注:如果用winform连接mysql,加入此句速度会有很大的提升

6:本地防火墙规则

检查防火墙是否有mysql 通讯端口规则;如果不是系统防火墙可能是您的地3方软件在进行拦截!云锁 安全狗一类的

7:IDC 运营商的封锁

使用namp 探测(不是特别准确);但有一定的参考价值

C:UsersAdministrator>nmap -sS  kk11.xxx.888ywf.com -p3306

Starting Nmap 7.12 ( https://nmap.org ) at 2016-07-12 15:45 ?D1ú±ê×?ê±??

mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using –system-dns or specify valid servers with –dns-servers

Nmap scan report for kk11.xxxx.888ywf.com (118.xx3.1xx.236)

Host is up (0.057s latency).

PORT    STATE    SERVICE

3306/tcp filtered mysql  #被墙状态,过滤

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds

C:UsersAdministrator>nmap -sS  kk11.xxxx.888ywf.com -p3309

Starting Nmap 7.12 ( https://nmap.org ) at 2016-07-12 16:43 ?D1ú±ê×?ê±??

mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using –system-dns or specify valid servers with –dns-servers

Nmap scan report for kk11.xxxxx.888ywf.com (1xx8.1xx.1×9.236)

Host is up (0.051s latency).

PORT    STATE SERVICE

3309/tcp open  unknown #开放状态

Nmap done: 1 IP address (1 host up) scanned in 1.32 seconds

本地查看状态可以使用

netstat -nat #查看端口开放情况

C:UsersAdministrator>netstat -nat

活动连接

协议  本地地址          外部地址        状态          卸载状态

TCP    0.0.0.0:21            0.0.0.0:0              LISTENING      InHost

TCP    0.0.0.0:80            0.0.0.0:0              LISTENING      InHost

当然使用Tcpview 是更好的选择;

如果IDC 封了端口,可以使用第4点来修改通讯端口

待续…..

文章来源于互联网:解决mysql远程连接配置与错误修复

发表评论