我正在尝试授予对mysql数据库的远程访问权限。但是我觉得我在某处错过了一步。
首先,我在远程服务器上创建数据库。然后,我为用户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
答案 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
您可以在DigitalOcean或rtcamp了解更多信息。
现在,只要具有适当的用户凭据,用户就可以远程连接到Mysql数据库服务器。