我正在尝试将mysql访问到远程服务器,并在那里创建数据库。 我正在使用putty进行连接。问题是我得到了“拒绝访问”错误 无论我做什么:
:mysql -p
:mysql -u <username> -p
.
.
.
我仍然收到警告。
ERROR 1045(28000):用户'用户名'@'localhost'拒绝访问(使用密码:否)
ERROR 1045(28000):用户'用户名'@'localhost'拒绝访问(使用密码:是)
每次使用一次,当我没有输入密码时,以及当我这样做时。
答案 0 :(得分:1)
您在远程访问MySql时遇到问题。来自here
首先,通过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
....
..
....
其中 - bind-address:要绑定的IP地址。 - skip-networking:根本不听TCP / IP连接。所有与mysqld的交互必须通过Unix套接字完成。对于仅允许本地请求的系统,强烈建议使用此选项。由于您需要允许远程连接,因此应从文件中删除此行或将其置于注释状态。
重新启动mysql服务以使更改生效
# /etc/init.d/mysql restart
步骤#5授予对远程IP地址的访问权限
#mysql -u root -p mysql
授予对新数据库的访问权限
如果要为用户栏和远程IP 162.54.10.20添加名为foo的新数据库,则需要在mysql&gt;处键入以下命令:提示:
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'162.54.10.20' IDENTIFIED BY 'PASSWORD';
授予对现有数据库的访问权限
让我们假设您始终从名为162.54.10.20的远程IP连接到用户webadmin的名为webdb的数据库,然后您需要授予对此IP地址的访问权限。在mysql&gt;对现有数据库的prompt type follow命令:
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 3306