Mysql添加用户进行远程访问

use*_*586 128 mysql remote-access

我创建的用户user@'%'使用password 'password.但我无法联系:

mysql_connect('localhost:3306', 'user', 'password');
Run Code Online (Sandbox Code Playgroud)

当我创建用户时user@'localhost',我能够连接.为什么?不是'%'对任何主持人意味着什么?

ape*_*esa 341

为了远程连接,您必须将MySQL绑定端口3306连接到my.cnf中的计算机IP地址.然后,您必须在localhost和'%'通配符中创建用户,并为所有数据库授予权限.见下文:

my.cnf(Windows上的my.ini)

#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx
Run Code Online (Sandbox Code Playgroud)

然后

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
Run Code Online (Sandbox Code Playgroud)

然后

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
flush privileges;
Run Code Online (Sandbox Code Playgroud)

根据您的操作系统,您可能必须打开端口3306才能进行远程连接.

  • 为什么同时使用 localhost 和 % ? (8认同)
  • 不要忘记FLUSH PRIVILEGES;) (7认同)
  • 另请检查 **/etc/mysql/my.cnf** 或 **/etc/mysql/mysql.conf.d/mysqld.cnf** 位置以更改 **bind-address=0.0.0.0** (2认同)

MSS*_*MSS 16

按照说明操作(Windows中不需要步骤1到3):

  1. 找到要编辑的mysql配置:

    /etc/mysql/my.cnf(Mysql 5.5)

    /etc/mysql/conf.d/mysql.cnf(Mysql 5.6+)

  2. bind-address=127.0.0.1在配置文件中查找更改bind-address=0.0.0.0(您可以将绑定地址设置为您的某个接口ips或像我一样使用0.0.0.0)

  3. 重启mysql服务在控制台上运行: service restart mysql

  4. 创建具有安全密码的用户以进行远程连接.要执行此操作,请在mysql中运行以下命令(如果您是linux用户以访问mysql控制台运行mysql并且如果您为root运行设置密码mysql -p):

    GRANT ALL PRIVILEGES 
     ON *.* TO 'remote'@'%' 
     IDENTIFIED BY 'safe_password' 
     WITH GRANT OPTION;`
    
    Run Code Online (Sandbox Code Playgroud)

现在,您应该拥有一个具有远程连接功能的用户名user和密码safe_password.

  • 改变bind-address = 0.0.0.0 ......这对我有用.并授予特权 (2认同)

car*_*mba 11

DB是用户的什么?看看这个例子

mysql> create database databasename;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on databasename.* to cmsuser@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

所以要回答你的问题,"%"运算符表示网络中的所有计算机.

像aspesa显示我也确定你必须创建或更新用户.寻找你所有的mysql用户:

SELECT user,password,host FROM user;
Run Code Online (Sandbox Code Playgroud)

一旦你设置了你的用户,你应该能够像这样连接:

mysql -h localhost -u gmeier -p
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你