前段时间我已经在我新买的阿里云服务器中,安装好了apache,php,python,mysql,phpmyadmin。
可惜安装phpmyadmin和mysql那里忘记写博客了,但是网上有教程,听详细的,但是我走过,还是有坑,但是忘了。。。
现在要用php远程连接我在服务器安装好的mysql,需要对mysql做一些配置。
由于网上大多数很正确的,但是有个步骤大部分漏了,我也不知他们怎么成功的,可能忘写了。。。
1.在mysql中的mysql数据库的user表设置新的root任意网段访问
1)如果你跟我一样安装好了phpmyadmin,它能连接到mysql数据库,很简单。
在user表那里执行下面sql语句就好了:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root用户密码' WITH GRANT OPTION;
2)如果你是用ssh连接的远程访问,按下面操作执行:
① 进入mysql控制台:mysql -uroot -p ,输入密码然后 show databases
② 使用mysql数据库: use mysql
在执行用phpmyadmin中执行那个sql语句,
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root用户密码' WITH GRANT OPTION;
成功后还要执行 flush privileges;
2.修改mysql配置文件,将bind-address后面的127.0.0.1改为0.0.0.0(重要)
这一步就是很多教程都忘了的,结果我一直连不上,改了之后立马连上了。
感谢这位大佬的:https://blog.csdn.net/tjpu_lichking/article/details/79093254
至于怎么找到mysql配置文件,linux一般是在 /etc/mysql/mysql.conf.d/mysqld.cnf 上张图,如果不是这个名字,把.cnf的文件都打开一遍,字多肯定是。我这是用xftp打开的,你们也可在ssh中找到
打开后找到bind-address,修改,如下图
3.配置服务器防火墙,开放3306端口
首先在这里,由于我是用阿里云的服务器,所以我在阿里云的控制台就能打开了,如果是自己的服务器,需要自行百度下怎么开发3306让外网访问。这里我贴一张阿里云的打开3306端口的图片:
入和出方向都打开了。
4.php测试是否能连接
php代码:
<?php
$dbhost = '1**.23.189.1**'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123'; // mysql用户名密码
$conn = mysql_connect($dbhost,$dbuser,$dbpass) or die('DB_CAN_NOT_ACCESS');
print_r('数据库连接成功!');
mysqli_close($conn);
?>