繁体   English   中英

mysql访问被拒绝,ssh数据库主机

[英]mysql access denied, ssh database host

我正在尝试将mysql访问到远程服务器中,并在那里创建数据库。 我正在用腻子连接。 问题是无论我做什么,我都会收到“访问被拒绝”错误:

:mysql -p
:mysql -u <username> -p
.
.
.

我仍然收到警告。

错误1045(28000):拒绝访问用户'username'@'localhost'(使用密码:NO)

错误1045(28000):用户'username'@'localhost'的访问被拒绝(使用密码:是)

当我不输入密码时和每次输入密码时,请分别使用一种。

您在远程访问MySql时遇到问题。 这里

  • 步骤1:通过ssh登录

首先,通过ssh登录到远程MySQL数据库服务器

  • 步骤2:启用网络

连接后,您需要使用文本编辑器(如vi)编辑mysql配置文件my.cfg。

在Debian Linux中,文件位于/etc/mysql/my.cnf

# vi /etc/my.cnf
  • 步骤#3:打开文件后,找到显示为[mysqld]的行

确保对跳过行网络进行了注释(或删除行),然后添加以下行

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地址。 -跳过网络:完全不监听TCP / IP连接。 与mysqld的所有交互都必须通过Unix套接字进行。 对于仅允许本地请求的系统,强烈建议使用此选项。 由于您需要允许远程连接,因此应从文件中删除此行或将其置于注释状态。

  • 步骤#4保存并关闭文件。

重新启动mysql服务以使更改生效

# /etc/init.d/mysql restart
  • 步骤5授予对远程IP地址的访问权限

    #mysql -u root –p mysql

授予对新数据库的访问权限

如果要为用户栏和远程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';

授予对现有数据库的访问权限

让我们假设您始终与用户Webadmin的名为webdb的数据库的远程IP(称为162.54.10.20)建立连接,那么您需要授予对该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';
  • 步骤#6:退出MySQL

键入exit命令以注销mysql

mysql> exit
  • 步骤7:测试

从远程系统类型命令

$ mysql -u webadmin –h 172.20.5.2 –p

您也可以使用telnet连接到端口3306以进行测试

$ telnet 172.20.5.2 3306

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM