网站空间到期了怎么办,网页设计与制作section什么意思,android搭建wordpress,服装店网站建设规划书如果您在尝试连接到MySQL服务器时遇到问题#xff0c;以下描述了您可以采取的一些措施来纠正该问题。 确保服务器正在运行。如果没有#xff0c;则客户端无法连接到它。例如#xff0c;如果尝试连接到服务器失败并出现以下消息之一#xff0c;则可能是服务器未运行#xf…如果您在尝试连接到MySQL服务器时遇到问题以下描述了您可以采取的一些措施来纠正该问题。 确保服务器正在运行。如果没有则客户端无法连接到它。例如如果尝试连接到服务器失败并出现以下消息之一则可能是服务器未运行 $ mysql
ERROR 2003: Cant connect to MySQL server on host_name (111)
$ mysql
ERROR 2002: Cant connect to local MySQL server through socket
/tmp/mysql.sock (111) 可能是服务器正在运行但您尝试使用与服务器侦听的端口不同的TCP/IP端口、命名管道或Unix套接字文件进行连接。要在调起客户端程序时更正此问题请指定--port选项来指示正确的端口号或指定--socket选项来指示正确的命名管道或Unix套接字文件。要查找套接字文件的位置可以使用以下命令 $ netstat -ln | grep mysql 确保服务器未配置为忽略网络连接或者如果您尝试远程连接未配置为仅在其网络接口本地侦听。如果服务器在启用skip_networking系统变量的情况下启动则不接受TCP/IP连接。如果服务器在bind_address系统变量设置为127.0.0.1的情况下启动则仅在环回接口本地侦听TCP/IP连接并且不接受远程连接。 检查以确保没有防火墙阻止对MySQL的访问。您的防火墙可能会根据正在执行的应用程序或MySQL用于通信的端口号进行配置3306默认。在Linux或Unix下检查您的IP表或类似配置以确保端口没有被阻止。在Windows下可能需要将Zone警报或Windows防火墙等应用程序配置为不屏蔽MySQL端口。 必须正确设置授权表以便服务器使用它们进行权限控制。对于某些版本类型如Windows上的二进制版或Linux上的RPM和DEB版本安装过程初始化MySQL数据目录包括包含授权表的mysql系统数据库。对于不这样做的版本必须手动初始化数据目录。要确定是否需要初始化授权表请在data目录下查找mysql目录。data目录通常命名为data或var位于MySQL安装目录下。确保mysql数据库目录中有名为user.MYD的文件。如果没有请初始化data目录。这样做并启动服务器后您应该能够连接到服务器。 重新安装后如果您尝试以root身份登录服务器而不使用密码您可能会收到以下错误消息。 $ mysql -u root
ERROR 1045 (28000): Access denied for user rootlocalhost (using password: NO) 这意味着在安装过程中已经分配了root密码并且必须提供。请参阅“保护初始MySQL帐户”关于分配密码的不同方式以及在某些情况下如何找到它。如果您需要重置root密码请参阅“如何重置root密码”。找到或重置密码后使用--password或-p选项再次以root身份登录 $ mysql -u root -p
Enter password: 但是如果您使用mysqld--initialize-insecure初始化MySQL服务器将允许您以root身份连接请参阅“初始化数据目录”了解详细信息。这是一个安全风险因此您应该为root帐户设置密码请参阅“保护初始MySQL帐户”了解说明。 如果您已将现有MySQL安装更新到更高版本是否执行了MySQL升级过程如果没有请执行。添加新功能时授权表的结构偶尔会发生变化因此升级后您应始终确保您的表具有当前结构。有关说明请参阅升级MySQL。 如果客户端程序在尝试连接时收到以下错误消息这意味着服务器需要比客户端能够生成的格式更新的密码 $ mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client 请记住客户端程序使用选项文件或环境变量中指定的连接参数。如果客户端程序似乎发送了错误的默认连接参数而您没有在命令行中指定它们请检查任何适用的选项文件和您的环境。例如如果您在没有任何选项的情况下运行客户端时Access denied请确保您没有在任何选项文件中指定旧密码您可以通过使用--no-defaults选项调用客户端程序来禁止使用选项文件。例如 $ mysqladmin --no-defaults -u root version 如果出现以下错误则表示您使用的root密码不正确 $ mysqladmin -u root -pxxxx ver
Access denied for user rootlocalhost (using password: YES) 如果在您没有指定密码的情况下也发生上述错误则表示您在某个选项文件中列出的密码不正确。请尝试上一项中描述的--no-defaults选项。有关更改密码的信息请参阅“分配帐户密码”。如果您丢失或忘记了root密码请参阅“如何重置root密码”。 localhost是本地主机名的同义词如果您没有明确指定主机也是客户端尝试连接的默认主机。您可以使用--host127.0.0.1选项显式命名服务器主机。这会导致TCP/IP连接到本地mysqld服务器。您也可以通过指定使用本地主机实际主机名的--host选项来使用TCP/IP。在这种情况下主机名必须在服务器主机上的user表行中指定即使您在与服务器相同的主机上运行客户端程序。 拒绝Access denied错误消息会告诉您尝试以谁的身份登录、尝试连接的客户端主机以及是否使用密码。通常user表中应该有一行与错误消息中给出的主机名和用户名完全匹配。例如如果您收到包含using password: NO的错误消息则表示您尝试在没有密码的情况下登录。 如果您在尝试使用mysql -u user_name连接到数据库时遇到Access denied错误则可能是user表出现问题。通过执行mysql -u root mysql并发出以下SQL语句来检查这一点结果应包括Host和User列匹配客户端主机名和MySQL用户名的行。 SELECT * FROM user; 如果尝试从运行MySQL服务器的主机以外的主机连接时发生以下错误则表示user表中没有与客户端主机匹配的Host值的行 Host ... is not allowed to connect to this MySQL server 您可以通过为尝试连接时使用客户端主机名和用户名的组合设置一个帐户来解决此问题。 如果您不知道要连接的计算机的IP地址或主机名您应该在user表中放置%作为Host列值的行。尝试从客户端计算机连接后使用SELECT USER()查询查看您实际上是如何连接的。然后将user表行中的%更改为日志中显示的实际主机名。否则您的系统将不安全因为它允许从任何主机为给定用户名进行连接。Linux可能发生此错误的另一个原因是您使用的二进制MySQL版本与您使用的glibc库版本不同。在这种情况下您应该升级您的操作系统或glibc或者下载MySQL版本的源代码并自行编译。一个RPM源通常对编译和安装来说是微不足道的所以这不是什么大问题。 如果您在尝试连接时指定了主机名但得到一个错误消息其中主机名未显示或为IP地址则表示MySQL服务器在尝试将客户端主机的IP地址解析为名称时出现错误 $ mysqladmin -u root -pxxxx -h some_hostname ver
Access denied for user root (using password: YES) 如果您尝试以root身份连接并获得以下错误这意味着您在user表中没有User列值为root的行并且mysqld无法为您的客户端解析主机名 Access denied for user unknown 这些错误表明域名系统有问题。要修复它请执行mysqladmin flush-host来重置内部域名系统主机缓存,一些永久的解决方案是确定您的域名系统服务器有什么问题并修复它、在MySQL授权表中指定IP地址而不是主机名、在Unix上的/etc/hosts或Windows上的\windows\hosts中输入客户端计算机名称、启动mysqld并启用skip_name_resolve系统变量、启动mysqld时--host-cache-size0、在Unix上如果您在同一台机器上运行服务器和客户端请连接到localhost。对于与localhost的连接MySQL程序尝试使用Unix套接字文件连接到本地服务器除非指定了连接参数以确保客户端建立TCP/IP连接、在Windows上如果您在同一台机器上运行服务器和客户端并且服务器支持命名管道连接请连接到主机名.句号。连接到.使用命名管道而不是TCP/IP。 如果mysql-u root有效但mysql-hyour_hostname-u root导致访问被拒绝其中your_hostname是本地主机的实际主机名则用户表中可能没有正确的主机名。这里的一个常见问题是用户表行中的主机值指定了一个不合格的主机名但系统的名称解析例程返回一个完全限定域名反之亦然。例如如果您在用户表中有一行主机为“pluto”但您的DNS告诉MySQL您的主机名是“pluto.example.com”则该行不起作用。 尝试在用户表中添加一行其中包含主机的IP地址作为主机列值。或者您可以在用户表中添加一行包含通配符的主机值例如pluto. %). 但是使用以%结尾的主机值是不安全的不推荐 如果mysql-uuser_name有效但mysql-uuser_namesome_db无效则未授予给定用户访问名为some_db的数据库的权限。 如果mysql-uuser_name在服务器主机上执行时工作但mysql-hhost_name-uuser_name在远程客户端主机上执行时不工作则您没有启用从远程主机访问给定用户名的服务器。 如果您不知道访问被拒绝的原因请从用户表中删除所有主机值包含通配符的行包含“%”或“_”字符的行。一个非常常见的错误是插入一个主机“%”和用户“some_user”的新行认为这使您能够指定localhost从同一台机器连接。这不起作用的原因是默认权限包括主机“localhost”和用户“的行。因为该行的主机值“localhost”比“%”更具体所以从localhost连接时它优先用于新行 正确的步骤是插入Hostlocalhost和Usersome_user的第二行或者删除Hostlocalhost和User的行。删除该行后请记住发出FLUSH PRIVILEGES语句以重新加载授权表。另请参阅“MYSQL访问控制第1阶段连接验证”。 如果您能够连接到MySQL服务器但在发出SELECT… INTO OUTFILE或LOAD DATA语句时收到拒绝访问消息则用户表中的行未启用FILE权限。 如果您直接更改授权表例如通过使用INSERT、UPDATE或DELETE语句并且您的更改似乎被忽略请记住您必须执行FLUSH PRIVILEGES语句或mysqladmin flush-权限命令以使服务器重新加载权限表。否则您的更改在下次重新启动服务器之前无效。请记住在使用UPDATE语句更改root 如果您的权限似乎在会话中间发生了变化则可能是MySQL管理员更改了它们。重新加载授权表会影响新的客户端连接但也会影响现有连接 如果您在使用Perl、PHP、Python或ODBC程序时遇到访问问题请尝试使用mysql-uuser_namedb_name或mysql-uuser_name-ppassworddb_name连接到服务器。如果您能够使用mysql客户端进行连接则问题出在您的程序上而不是访问权限上。-p和密码之间没有空格您也可以使用--passwordpassword语法来指定密码。如果您使用没有密码值的-p或--password选项MySQL会提示您输入密码。 出于测试目的请使用--skip-grant-tables选项启动mysqld服务器。然后您可以更改MySQL授权表并使用SHOW GRANTS语句检查您的修改是否具有所需的效果。当您对更改感到满意时执行mysqladmin flush-权限告诉mysqld服务器重新加载权限。这使您能够开始使用新的授权表内容而无需停止和重新启动服务器。 如果其他方法都失败则使用调试选项例如--debugd,general,query启动mysqld服务器。这将打印有关尝试连接的主机和用户信息以及有关发出的每个命令的信息 如果您对MySQL授权表有任何其他问题并在MySQL社区Slack上询问请始终提供MySQL授权表的转储。您可以使用mysqldump mysql命令转储表。要提交bug报告。在某些情况下您可能需要使用--skip-grant-tables重新启动mysqld来运行mysqldump