我已经在我的本地机器上安装了MySQL Community Edition 5.5,我想允许远程连接,这样我就可以从外部源连接。
我该怎么做呢?
我已经在我的本地机器上安装了MySQL Community Edition 5.5,我想允许远程连接,这样我就可以从外部源连接。
我该怎么做呢?
当前回答
远程登录的所有流程。默认关闭远程登录。你需要手动打开所有ip..来访问所有ip
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
特定的Ip
GRANT ALL PRIVILEGES ON *.* TO 'root'@'your_desire_ip' IDENTIFIED BY 'password';
然后
flush privileges;
您可以检查您的用户主机和密码
SELECT host,user,authentication_string FROM mysql.user;
现在你的责任就是改变这一切
bind-address = 127.0.0.1
你可以找到这个
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
如果你在那里找不到这个,那就试试这个
sudo nano /etc/mysql/my.cnf
在此评论
#bind-address = 127.0.0.1
然后重新启动Mysql
sudo service mysql restart
现在享受远程登录
其他回答
远程登录的所有流程。默认关闭远程登录。你需要手动打开所有ip..来访问所有ip
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
特定的Ip
GRANT ALL PRIVILEGES ON *.* TO 'root'@'your_desire_ip' IDENTIFIED BY 'password';
然后
flush privileges;
您可以检查您的用户主机和密码
SELECT host,user,authentication_string FROM mysql.user;
现在你的责任就是改变这一切
bind-address = 127.0.0.1
你可以找到这个
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
如果你在那里找不到这个,那就试试这个
sudo nano /etc/mysql/my.cnf
在此评论
#bind-address = 127.0.0.1
然后重新启动Mysql
sudo service mysql restart
现在享受远程登录
这在MySQL上是默认允许的。
默认情况下禁用的是远程根访问。如果你想启用它,在本地运行这个SQL命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
然后找到下面的行,并在my.cnf文件中注释它,该文件通常位于Unix/OSX系统的/etc/mysql/my.cnf中。在某些情况下,文件的位置是/etc/mysql/mysql.conf.d/mysqld.cnf)。
如果是Windows系统,你可以在MySQL安装目录中找到它,通常是C:\Program Files\MySQL\MySQL Server 5.5\,文件名是my.ini。
改变行
bind-address = 127.0.0.1
to
#bind-address = 127.0.0.1
并重新启动MySQL服务器(Unix/OSX和Windows)以使更改生效。
如果您的MySQL服务器进程正在监听127.0.0.1或::1,那么您将无法远程连接。如果您在/etc/my.cnf中设置了绑定地址,这可能是问题的根源。
您还必须为非本地主机用户添加特权。
请按照下面提到的步骤来设置MySQL用户的通配符远程访问。
(1) Open cmd. (2) navigate to path C:\Program Files\MySQL\MySQL Server 5.X\bin and run this command. mysql -u root -p (3) Enter the root password. (4) Execute the following command to provide the permission. GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'IP' IDENTIFIED BY 'PASSWORD'; USERNAME: Username you wish to connect to MySQL server. IP: Public IP address from where you wish to allow access to MySQL server. PASSWORD: Password of the username used. IP can be replaced with % to allow user to connect from any IP address. (5) Flush the previleges by following command and exit. FLUSH PRIVILEGES; exit; or \q
检查远程服务器是否允许通配符访问端口3306:
sudo lsof -i -P -n | grep监听
不应该是这样的:
mysqld 23083 mysql 21u IPv4 145900142 0t0 TCP 127.0.0.1:3306(听)
在这种情况下,我们需要更新/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf:
Bind-address = 127.0.0.1——> 0.0.0.0
然后重新启动mysql "sudo service mysql restart"
为了从客户端测试mySQL连接:
Nc -vz <host_address> 3306