怎么解决localhost无法链接本地mysql数据库问题
分析:这是典型的socket没有正确设置的情况。
连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)。大部分情况下,可以用localhost代表本机127001,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127001也是分开设置的。当设置为127001时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统通过socket方式连接数据库。
解决:首先要看本机MySQL的socket套接字文件在哪里,查看命令是:
mysqld --verbose --help | grep socket
输出结果显示套接字文件的位置,比如:这台服务器显示的是
socket /var/run/mysqld/mysqldsock
然后修改php的配置文件phpini与之对应起来就好了。
找到这一项:
mysqldefault_socket =
一般来说这一项都是空的,改成:
mysqldefault_socket = /var/run/mysqld/mysqldsock
这里应写上一步查询到的文件,根据你的情况设置。至此php配置就修改好了,如果是CLI(命令行)方式或者CGI方式的话,立即就生效,如果是FASTCGI方式,需要重启一下fastcgi进程。
首先你要先和服务器的网络是能Ping通的
MYSQL连接一般需要输入目标服务器的IP地址,端口号,用户名和密码。
如:ip地址:19216811101
端口 :3306
用户名:root
密码:root
其中用户名和密码一般输入root都是可以进入的。不行就去目标服务器上的数据库管理下用户。
MYSQL一般都是用NAVITE for mysql。点击左上角的连接按钮。输入以上信息就可以了,记得先PING网络。
一、配置mysql允许远程链接
默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。这里提供了二种方法设置mysql可以通过远程主机进行连接。
1、改表法
在localhost登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改称"%"
例如:
#mysql -u root -p
Enter password:
……
mysql>
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2、授权法
例如: 你想myuser使用mypassword(密码)从任何主机连接到mysql服务器的话。
mysql>GRANT ALL PRIVILEGES ON TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为19216816的主机连接到mysql服务器,并使用mypassword作为密码
mysql>GRANT ALL PRIVILEGES ON TO 'myuser'@'19216813'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES
使修改生效,就可以了。
二、连接远程数据库:
1、显示密码
如:MySQL 连接远程数据库(1921685116),端口“3306”,用户名为“root”,密码“123456”
C:/>mysql -h 1921685116 -P 3306 -u root -p123456
2、隐藏密码
如:MySQL 连接本地数据库,用户名为“root”,
C:/>mysql -h localhost -u root -p
Enter password:
mysql或sqlserver显示无法连接本地数据库怎么办
首先在本地使用Navicat for MySQL建立一个数据库。
在dreamweaver中建立一个PHP格式的网页,方便链接测试。
测试发现,如果无法使用localhost链接mysql数据库就会提示错误信息
如果出现第三步的情况,就需要修改C:\Windows\System32\drivers\etc目录下的hosts文件。
用记事本打开hosts,找到127001 localhost这一行,把这一行的“#”删除,保存。
如果没有这一行,就自己手动添加。
0条评论