背景介绍
从上一篇文章了解到,当服务器架构为下图中的类型时,PHP服务器会启动php-fpm服务侦听在一个特定的套接字上来等待httpd服务器的请求,如果请求中包含对后端Mysql服务器的访问,此时分为几种情况:
1.PHP服务器是独立服务器,或PHP服务器和httpd服务器在同一台主机,并以httpd服务器的一个模块方式存在,且都为编译安装,则编译时需要通过mysqlnd参数联系后端的Mysql服务器
2.PHP服务器为独立服务器,且不是编译安装,可能需要安装php-mysql客户端来连接Mysql数据库
3.PHP服务器和Mysql共用一台主机,编译安装时需要指定Mysql的路径
由此可以看出PHP服务器本身并不会对Mysql服务器发起访问,PHP只是工作在httpd和Mysql的中间环节,建议先配置httpd和Mysql服务器后,再配置PHP服务器(如果PHP服务器不是单独的主机而是和httpd或者Mysql共用一个主机时,必须遵守该顺序)下面就用二进制程序Mariadb-5.5.45来演示数据库的安装。
安装Mariadb-5.5.45
1.解压Mariadb-5.5.45
tar -xf mariadb-5.5.45-linux-i686.tar.gz -C /usr/local/
2.创建软连接
cd /usr/local
ln -sv mariadb-5.5.45-linux-i686/ mysql
3.创建mysql用户和组
grouppadd -r mysql
useradd -r -M -g mysql -s /sbin/nologin mysql
4.将/usr/local/mysql属主属组改为root:mysql
chown -R root:mysql /usr/local/mysql
5.创建存放数据库文件的目录/data/mydata,属主属组改为mysql
mkdir -p /data/mydata
chown -R mysql:mysql /data/mydata
6.输出二进制文件
vim /etc/profile.d/mysql.sh
添加内容:export PATH=/usr/local/mysql/bin:$PATH 保存退出
source /etc/profile.d/mysql.sh
7.头文件导出
ln -sv /usr/local/mysql/include/mysql/ /usr/include/mysql
8.库文件导出
echo "/usr/local/mysql/lib/" > /etc/ld.so.conf.d/mysql.conf
看到libmysql.so.18被加载到内存说明,库文件导出成功
9.man文档导出
获取、修改Mariadb配置文件
Mariadb在/usr/local/mysql/support-files目录下问我们提供了各种硬件规格的配置文件,此处以my-large.cnf为例,需要注意的是:/etc/my.cnf的文件在二进制程序解压后就已存在,而MariaDB的配置文件查找顺序为:/etc/my.cnf--> /etc/mysql/my.cnf --> ~/.my.cnf
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
提供启动脚本
同样是在/usr/local/mysql/support-files目录下Mariadb也为我们提供了启动脚本
cp mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
chkconfig --list | grep mysqld
初始化数据库
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mydata
service mysql.d on
再查看/data/mydata目录,看到日志文件、pid文件后再使用netstat -ntl查看3306端口是否侦听,判断服务是否正常启动
此处需要注意的地方是:
1.如果是二进制程序初始化数据库进入scripts目录执行程序会出现问题
2.根据/etc/my.cnf配置文件中设置,socket文件位置是在/tmp目录下,如果是只对本机提供服务,服务需求的申请者要指明socket文件的位置
测试MariaDB,删除匿名用户
2.use mysql; #使用mysql库
3.SELECT user,host,password from user; #查看当前都有哪些用户
4.删除匿名用户(mysql指令中不区分大小写,习惯上是将命令大写)
也可以不加host限制一次性修改所有root的密码,至此操作完成