授予对MySQL数据库的远程访问权限

时间:2015-06-15 18:30:30

标签: mysql

我正在尝试授予对mysql数据库的远程访问权限。但是我觉得我在某处错过了一步。

  • 服务器是VM - Ubuntu 12.04.5 - inet addr:134.226.38.147
  • mysql Ver 14.14使用readline 6.2分发5.5.38,用于debian-linux-gnu(x86_64)

首先,我在远程服务器上创建数据库。然后,我为用户brendan授予所有数据库和表的通配符访问权限。通过使用$array_ref->[3]我在大学时从我的电脑连接应该没问题。

'%'

然后我使用

打开端口
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON *.* TO 'brendan'@'%' IDENTIFIED BY 'mypassword';

从我读到的内容应该可行,但是当我尝试从桌面测试连接时,这就是我得到的

iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables-save | tee /etc/sysconfig/iptables

localhost:~ brendan$ mysql -u brendan -h 134.226.38.147 -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '134.226.38.147' (61)
localhost:~ brendan$ 

我错过了什么?

非常感谢任何帮助。

修改

的my.cnf

我不确定我是否应该评论已经存在的localhost:~ brendan$ echo X | telnet -e X 134.226.38.147 3306 Telnet escape character is 'X'. Trying 134.226.38.147... telnet: connect to address 134.226.38.147: Connection refused telnet: Unable to connect to remote host localhost:~ brendan$

bind-address = 127.0.0.1

然后我用

重启
[mysqld]
#
# * Basic Settings
#

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
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.

bind-address            = 127.0.0.1

# ---- You added the below line ----------

bind-address            = 134.226.38.147

1 个答案:

答案 0 :(得分:1)

打开my.cnf文件:

sudo vim /etc/mysql/my.cnf

my.cnf中注释掉绑定地址。

像这样:#bind-address = 127.0.0.1

然后重启mysql服务器,以便对my.cnf文件的更改生效。

sudo service mysql restart

sudo /etc/init.d/mysql restart

您可以在DigitalOceanrtcamp了解更多信息。

现在,只要具有适当的用户凭据,用户就可以远程连接到Mysql数据库服务器。