我正在尝试在我的计算机上创建一个远程 mysql 服务器。我知道这不是一个明智的做法,但我还是想尝试一下。我不确定这里要完成哪些步骤,但也许有人可以帮我填写。首先,我在计算机上安装了 MySQL 和 mysql 管理员。然后我转发了端口 3306。当我登录到我的 MySQL 管理员或查询浏览器时,我以 localhost 身份登录。现在我知道还有更多步骤,因为 mysql 仍然不是公开的。有人可以帮我填写吗?
好吧,伙计们,我到处都找不到我的 my.cnf 文件!我查看了 MySQL Server 5.1 和我的所有 MySQL 目录,但找不到它。我甚至没有 etc 目录……
答案1
geoff 的回答完全不足以满足您的要求(如果您只是连接到您的 ip 地址,则没有必要)。我知道,因为我刚刚为远程访问设置了我的第一个数据库!需要做的一件事是创建您的 my.cnf 文件(根据您的发行版和操作系统检查文档以了解其位置)。我的看起来像这样:
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
bind-address=""MY IP ADDRESS HERE""
#bind-address=0.0.0.0
[mysql]
prompt="\U>"
prompt=(\\u@\\h) [\\d]>\\_
[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重要的部分是端口(虽然我使用的是默认端口)和绑定地址。列出的绑定地址将是您的 IP 地址。注释掉的0.0.0.0
是 IP 地址的通配符。
在连接到 mysql 数据库之前,您必须授予要连接的用户执行此操作的权限。 类似下面的内容将帮助您入门:
GRANT ALL PRIVILEGES ON *.* for 'root'@'%' IDENTIFIED BY 'db_passwd';
*.*
是数据库名称.表名称通配符。'root'
可以是任何用户。'%'
是主机通配符,但我强烈建议只输入您的 IP 地址 ( 'root'@'123.123.123.123'
)。您的密码(如果有)将是db_passwd
,并在执行该行时包含单引号。键入FLUSH PRIVILEGES
以重新加载这些新权限。
我会使用网络监控程序来检查您是否连接到了 mysql 服务器。让我们看看情况如何。还可以通过谷歌搜索“mysql 网络访问”等来获取更多帮助,这就是我让它工作的方法。