centOS7下卸载mysql8再安装mysql5.7,然后开启php的mysqli扩展全过程,特此记录,以被后用。
我开始是php7.3.5和mysql8版本开启mysqli扩展,各种坑查了N多资料都没有解决,还源码安装了多个php版本,make编译时都报错找不到my_global.h文件,经过几番绝望的时候,意识到是不是mysql版本的问题,是不是mysql8没有这个文件,或者文件位置发生改变,find / -name my_global.h 确实没有这个文件。。报错截图如下。。。。还有不止这一个文件找不到,我vi一个空的my_global.h文件还好报错其它文件找不到。
可能是我mysql装的8版本,yum源安装mysql-devel时却是5.7版本的,导致编译时好多文件找不到,自己挖的坑。
好了,开始:
rpm -qa |grep -i mysql 查看yum 安装的所有mysql相关安装包。
yum remove mysql-community mysql-community-server mysql-community-libs mysql-community-common 依次删除
一定要删除干净 rpm -qa |grep -i mysql 后没有任何安装包。
然后 find / -name mysql 查看mysql相关文件 rm -rf 文件或者文件夹目录路径
mysql5.7.20安装过程
1.下载mysql yum源文件并安装
下载:wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
安装:rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
2.安装mysql服务端需要等待一段时间
命令:yum install -y mysql-community-server
3.开启mysql
命令:service mysqld start
查看mysql是否启动命令:service mysqld start
4.进入mysql 修改密码
查看初始密码命令:grep "password" /var/log/mysqld.log
修改密码过于简单会报错
这一错误其实与validate_password_policy值的设置有关
validate_password_policy值默认为1,即MEDIUM,所以刚开始设置的密码必须符合长度要求,且必须含有数字,小写或大写字母,特殊字符
如果我们只是做为测试用而不需要如此复杂的密码,可使用如下方式修改validate_password_policy值
命令:set global validate_password_policy=0;
密码的最小长度由validate_password_length值决定,validate_password_length参数默认为8
修改长度命令:set global validate_password_length=4;
修改密码命令:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
配置mysql远程链接:GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
刷新权限: flush privileges;
如果Navicat远程无法访问 ,有可能是防火墙没有关闭的问题。
exit退出重进进入mysql输入root密码登陆成功,mysql5.7安装完成;
开启php7的mysqli扩展
1、到php源码包文件ext下的mysqli
2、在mysqli文件夹下执行 运行 你 phpize文件的绝对路径/phpize 生成configure文件
附:find / -name phpize 查看文件目录命令
3、在mysqli文件夹下执行 ./configure --with-php-config=你php-config文件的绝对路径 --with-mysqli=你mysql_config文件的绝对路径
如果没有mysql_config文件,需要安装mysql-devel ,执行命令:yum install mysql-devel
4、make (如果你之前make编译过 先 make clean 下)
make后会报错说没有 ext/mysqlnd/mysql_float_to_double.h 这个文件 截图如下
解决办法 把 mysqli_api.c 文件的 ext/mysqlnd/mysql_float_to_double.h 处改成绝对路径
查看路径命令:find / -name mysql_float_to_double.h
命令:vi mysqli_api.c
之后还会有好几处类似的错误,依次修改成绝对路径。。。。
5、make install
6、修改php.ini 打开extension=mysqli
7、php -m 查看是否开启扩展,大功告成,希望点个赞哦!!!!