10.1、MySQL错误:Can't connect to MySQL server (10060)

当远程连接MySQL数据库的时候显示Can't connect to MySQL server (10060),我们从以下几个方面入手,找出错误的原因:

1.网络不通。

检查能不能ping通。

2.防火墙设置。这个可能性也很大,优先排查这个

防火墙是否放过mysql的进程,是否屏蔽了mysql的3306端口。

方法:

防火墙开放3306端口

1、打开防火墙配置文件

vi  /etc/sysconfig/iptables

2、增加下面一行

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

Windows下设置防火墙



Windows2008R2系统防火墙在,控制面板里面去找

  1. 点击进入08防火墙设置选项卡,注意一下【高级设置】里面去设置
  2. 如图,在防火墙设置右上方,有【创建规则】
  3. 入站规则

进入规则向导页面,如图选择【端口】类型

  1.  本案例以开放webmail自定义端口为例,选择特定端口如8008
  2. 操作设置

然后在操作设置里面,选择【允许连接】

  1. 安全域选择

接下来就是重点了,需要允许应用到的规则域区域。建议全部选择,

  1. 然后是规则的名称,可以任意取名。建议加上备注,比如XX服务器XX应用
  2. 检查配置

设置好之后,如图点击入站规则里面查看。可以看到刚刚的配置设置

  1. 出站规则

出站规则设置方法是一样的,注意一下。协议类型,有TCP.  UDP 你可以选择所有及 ALL类型

  1. 测试端口

咗嚛设置好服务器防火墙端口开放之后,再内网的还需要在路由器上设置映射。左左可以通过站长工具在线测试,如图

3、重启防火墙

1
service  iptables restart
3.mysql的账户设置。
mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:
mysql -u root -p    //登录MySQL  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;     //任何远程主机都可以访问数据库  
mysql> FLUSH PRIVILEGES;    //需要输入次命令使修改生效  
mysql> EXIT    //退出
也可以通过修改表来实现远程:
mysql -u root -p  
mysql> use mysql;  
mysql> update user set host = '%' where user = 'root';  
mysql> select host, user from user;
其实错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉

10.2、命令行远程连接mysql数据库

mysql -h 172.17.195.37 -P 3306  -u root -p123456

mysql> show databases;

10.3、linux mysql数据库远程无法访问

1.网络或防火墙问题

(1)检查网络直接ping你的远程服务器,ping 182.61.22.107,可以ping通说明网络没问题

(2)看端口号3306是不是被防火墙挡住了,telnet 182.61.22.107 3306

下图这样就是防火墙挡住了3306端口不允许访问
配置防火墙,开启3306端口
vi /etc/sysconfig/iptables         //防火墙配置
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT            //允许3306端口通过
service iptables restart        //重启防火墙
配置如下(切记放在prohibited前面):

2.MySQL配置

授权给root@所有ip在使用密码admin1234的用户能访问数据库
mysql -u root -p         //登录数据库
use mysql                  //进入mysql数据库
select Host,User from user;       //查看可以访问数据库的ip
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "admin1234";
FLUSH PRIVILEGES;
EXIT;

10.4 mysql导出数据库脚本及数据

选中数据库,右键转储SQL文件

10.5 mysql启动与停止

查看状态
service mysqld status
service mysqld stop
service mysqld start
service mysqld restart

10.6 mysql服务不可用

[root@master logs]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
先删除sock,再重启
rm /var/lib/mysql/mysql.sock
service mysqld restart

10.7 Host 'XXX' is not allowed to connect to this MySQL server解决方案

root账号登录

/software/mysql/bin/mysql -u root –p
newDb@sh

授权

grant all PRIVILEGES on newDb.* to root@'172.17.0.7'  identified by 'newDb@sh';

grant all PRIVILEGES on newDb.* to root@'150.158.124.198'  identified by 'newDb@sh';

150.158.124.198   表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

grant all PRIVILEGES on newDb.* to root@'%'  identified by 'newDb@sh';

写入权限生效

flush privileges;

10.8 CLIENT_PLUGIN_AUTH is required

更换一下驱动

<!-- jdbc连接-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://131.252.95.109:3306/tariff_letter?serverTimezone=UTC&zeroDateTimeBehavior=round&nullCatalogMeansCurrent=true" userId="approot"
password="admin1234"/>
原先是com.mysql.cj.jdbc.Driver  适合高版本

10.9 mysql命令行连接及设置最大连接数

./mysql -u approot –p
检查当前最大连接数
SHOW GLOBAL VARIABLES WHERE Variable_name='max_connections' ;

10.10 dbvisualizer中文乱码问题解决

1.SQL Commander里中文显示成‘口’

解:进入Tools -> Tool Properties -> General -> Appearence -> Fonts,把最上边的三个字体都改成宋体或其他可正常显示中文的字体,改完apply,重新启动Dbvisualizer就好了。

2.表数据中中文显示成问号

解:先断开连接,然后在创建连接时的Database一栏的数据库名后面加上“?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=utf8”,然后再连接应该就可以了。

注意:这种方法不会自动把问号变成中文,要手动把问号改成中文,存量问号太多的话,就需要重新导入数据了。

如果新增数据中文还是显示成问号的话,试试把所有的编码都改成UTF8,如下:

①进入Tools -> Tool Properties -> File Encoding,把编码改成UTF-8

②在填写连接IP端口的界面点进下一个Properties标签页,左边菜单中有个Encoding,点进去之后改成UTF-8

③修改数据库字符集编码,如MYSQL数据库的话就运行如下语句:

set character_set_server=utf8;
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_results=utf8;
10.11“Another MySQL daemon already running with the same unix socket”的处理和思考
rm var/lib/mysql/mysql.sock
service mysqld start

但是也有可能是空间不足造成的df查看系统空间