window下用主机名登录MySQL数据库出现报错解决方案

分享一个工作中的小案例:windows主机上用SQLyog使用主机名登录MySQL数据库(Linux系统上搭建),结果报错,因为经常在windows上使用主机名互相访问资源、远程登录等。以为Linux上应该也可以,所以就开始研究。通过查找资料及多方帮助终于解决并搞清楚原因。希望大家不要重蹈覆辙。

故障:在windows服务器上使用主机名登录MySQL出现以下报错,主机名“test-aa-shop1” ping不通,但是对应的IP可以ping通。

故障分析:windows之间可以用主机名互相访问,是因为在Windows操作系统中,默认情况下在安装TCP/IP协议后会自动安装NetBIOS。在网络中使用计算机名通讯就是使用NetBIOS协议。NETBIOS原理:在 TCP/IP 网络中,计算机具有供人们使用的名称,但计算机通常使用 IP 地址和硬件地址进行通信。在 NetBEUI 中,没有使用 IP 地址,只使用名称和硬件地址。Linux不支持该协议。在linux中,NETBI0S和NETEUI都不存在,Samba承担起了SMB/CIFS协议和NETBIOS实现的职责。如果想实现linun和windows资源访问可以安装Sanmba,但是目前暂时没有方案可以直接跨系统用windows访问linux主机名。

解决:

  1. 如果个人要临时解决可以在访问的windows上hosts文件里做IP和主机名的解析。
  2. 搭建DNS服务器,条件允许的话
  3. 根据局域网的机器系统分类,编写批处理bat脚本,执行bat文件修改host配置
  4. 编写修稿hosts文件文档,邮件发送给需要修改hosts文件的人员

在此感谢何清大神的帮助!

时间: 2024-10-24 03:50:43

window下用主机名登录MySQL数据库出现报错解决方案的相关文章

CentOS命令登录MySQL时,报错ERROR 1045 (28000):

CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user [email protected] (using password: NO)错误解决方法 1.停用mysql服务:# /etc/rc.d/init.d/mysqld stop 2.输入命令:# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 3.登入数据库:# mysql -u root my

django配置使用mysql数据库运行报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'

今天在把django的默认数据库sqlite3切换为MySQL数据库时报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb' 报错原因:django虚拟环境没有安装pymysql模块 解决: 先安装pymysql:pip install pymysql 然后在项目的 init.py 文件中添加以下代码: 把django的默认数据库sqlite3切

windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法

重装MySQL,由于不知道重装之前的root密码,使用重装之后的密码连接Mysql数据,总报 ERROR 1130: host 'localhost' not allowed to connect to this MySQLserver,不能连接数据库,猜测用户权限和密码的问题. 1.用root用户登录mysql数据库 (1)停止MySQL服务,执行net stop mysql; (2)在mysql的安装路径下找到配置文件my.ini, 找到[mysqld]   输入:skip-grant-ta

MySQL数据库启动报错的处理

今天在linux中启动mysql时提示mysql Starting MySQL..The server quit without updating PID file了,下面我来给大家介绍解决办法. 从网上找了一堆方法如下: 1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限解决方法 :给予权限,执行 "chown -R mysql:mysql /var/data" "chmod -R 755 /usr/local/mysql/data&

Ubuntu 18 mysql数据库登陆报错“Access denied for user”

mysql数据登陆出现如下错误:#mysql -uroot error: 'Access denied for user 'root'@'localhost' (using password: NO)' 解决方法:问题原因:还未找到(待补充).一.sudo vim /etc/mysql/debian.cnf记录文件中user和密码.[client]host = localhostuser = debian-sys-maintpassword = 0NynruOCi9W3kdnQsocket =

登录mysql数据库出现 : ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) ER或者忘记密码

1.     在安装mysql的文件目录中找到配置文件my.ini  ,然后右击用记事本打开 2.     打开后,搜索mysqld关键字 找到后,在mysqld下面添加skip-grant-tables,保存退出. PS:若提示不让保存时,可以将该文件剪切到桌面,更改保存后再复制到mySQL目录下 3.    保存后重启mySQL, 先要检查mysql服务有没有启动. 启动mysql服务, (1) à右击  à  我的电脑  à管理 启动. (2) 当用运行win +R   cmd 输入 ne

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

使用cmd命令登录mysql数据库时报2013-Lost connection to MYSQL server at 'waiting for initial communication packet',system error:0

[错误内容]:SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0 [错产生经过]:链接MySQL时出现. [解决办法]:打开my.ini,找到[mysqld]项,在其后加入一句:skip-name-resolve,保存,重启mysql服务即可~ 以上就是解决MySQL Error (2013): Lost connectio

Windows下Java程序实现对Mysql数据库的插入,删除,修改和查询

运行环境:Windows7,Eclipse,MySql,JDK1.7,mysql-connector-java-5.1.17-bin.jar 1 //import java.io.*; 2 import java.util.*; 3 import java.sql.*; 4 5 /** 6 * 7 * @date 2014-05-20 8 * @author asif 9 * @作用 java实现对mysql数据库的增减删查 10 * @bug 插入,删除,更新的时候异常停止 11 * 12 *