Answers:
为了远程连接,您必须使MySQL将端口3306绑定到my.cnf中计算机的IP地址。然后,您必须同时在localhost和'%'通配符中创建用户,并在所有DB上授予权限。见下文:
my.cnf(在Windows上为my.ini)
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
然后
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
然后
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
flush privileges;
根据您的操作系统,您可能必须打开端口3306才能允许远程连接。
mysql.default_port = <private instance port>
在php.ini中进行设置,然后127.0.0.1
在整个数据库主机名中使用
按照说明进行操作(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
(您可以将绑定地址设置为接口ip之一,或者像我一样使用0.0.0.0)
重新启动在控制台上运行的mysql服务:
service restart mysql
创建一个具有安全密码的用户以进行远程连接。为此,请在mysql中执行以下命令(如果您是Linux用户,则要进入mysql控制台运行mysql
,并且您为root run设置了密码mysql -p
):
GRANT ALL PRIVILEGES
ON *.* TO 'remote'@'%'
IDENTIFIED BY 'safe_password'
WITH GRANT OPTION;`
现在,您应该拥有一个名称为user
和的用户,safe_password
并且具有远程连接功能。
用户是什么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)
因此,请问“%”运算符是指网络中的所有计算机。
像aspesa所示,我也确定您必须创建或更新用户。寻找所有的mysql用户:
SELECT user,password,host FROM user;
设置好用户后,您就应该可以这样连接:
mysql -h localhost -u gmeier -p
希望能帮助到你
code
mysql_connect('localhost:3306','user','password'); code