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才能进行远程连接.
MSS*_*MSS 16
按照说明操作(Windows中不需要步骤1到3):
找到要编辑的mysql配置:
/etc/mysql/my.cnf(Mysql 5.5)
/etc/mysql/conf.d/mysql.cnf(Mysql 5.6+)
bind-address=127.0.0.1在配置文件中查找更改bind-address=0.0.0.0(您可以将绑定地址设置为您的某个接口ips或像我一样使用0.0.0.0)
重启mysql服务在控制台上运行:
service restart mysql
创建具有安全密码的用户以进行远程连接.要执行此操作,请在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.
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)
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
288762 次 |
| 最近记录: |