我试图将mysql访问到远程服务器,并在那里创建一个数据库。我用腻子来连接。问题是,无论我做什么,都会出现“拒绝访问”错误:
:mysql -p
:mysql -u <username> -p
.
.
.我还是会收到警告。
错误1045 (28000):拒绝用户‘用户名’@‘localhost’的访问(使用密码:否) 错误1045 (28000):拒绝用户‘用户名’@‘localhost’的访问(使用密码: YES)
每次输入一次,当我不输入密码时,当我输入密码时。
发布于 2011-03-02 03:51:36
您在远程访问MySql时遇到问题。来自这里
首先,通过ssh登录远程MySQL数据库服务器。
连接之后,您需要使用文本编辑器(如vi )编辑mysql配置文件my.cfg。
在Debian中,Linux文件位于/etc/mysql/my.cnf。
# vi /etc/my.cnf确保行跳-网络注释(或删除行)并添加以下行
bind-address=YOUR-SERVER-IP例如,如果您的MySQL服务器IP是172.20.5.2,那么整个块应该如下所示:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 172.20.5.2
# skip-networking
....
..
....其中-绑定地址:要绑定的IP地址。-跳过网络:根本不监听TCP/IP连接。与mysqld的所有交互必须通过Unix套接字进行。对于只允许本地请求的系统,强烈建议使用此选项。因为您需要允许远程连接,所以这一行应该从文件中删除,或者将其置于注释状态。
重新启动mysql服务以使更改生效
# /etc/init.d/mysql restart批准对新数据库的访问
如果要为用户栏和远程IP 162.54.10.20添加名为foo的新数据库,则需要在mysql>提示符下键入以下命令:
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'162.54.10.20' IDENTIFIED BY 'PASSWORD';批准对现有数据库的访问
让我们假设您总是从名为162.54.10.20的远程IP连接到名为webdb的数据库,用于用户webadmin,然后您需要授予对此IP地址的访问权限。在mysql>提示符下,键入现有数据库的以下命令:
mysql> update db set Host='162.54.10.20' where Db='webdb';
mysql> update user set Host='162.54.10.20' where user='webadmin';键入exit命令以注销mysql
mysql> exit来自远程系统类型命令
$ mysql -u webadmin –h 172.20.5.2 –p您还可以使用telnet连接到端口3306进行测试。
$ telnet 172.20.5.2 3306https://stackoverflow.com/questions/5162663
复制相似问题