编译安装LAMP之MySQL-5.5.28(通用二进制格式)
我们此前已经说过,要想编译php5.4的话就需要安装MySQL,事实上在php5.4后MySQL不装也能够单独编译安装php5.4了,只是必须要在编译的时候使用—withmysql=mysqlnd让它实现在本地进行加载。
LAMP安装次序:apr --> apr-util --> httpd --> MySQL
安装MySQL
- 下载源码包:
- 解压mysql-5.5.28:
注:解压后推荐使用创建连接的方式链接过去,不要改变它的原有名称,这样它的版本号及平台都会保留,容易识别正在识别的是什么版本的。
- 新建用户以安全方式运行进程:
对我们而言,要想初始化安装MySQL得使用mysql用户mysql组,所以得创建mysql用户mysql组,为保证系统安全性,mysql为系统用户,不能登录系统只能运行某个服务。
INSTALL-BINARY:这个文件中明确说明了安装binary格式的mysql的步骤;
如:
注意:MySQL目录下的所有mysql目录下的所有文件的属主属组都需要改成mysql。
- 准备数据存放的文件系统:
查看初始化的选项:
--user=user_name:表示以哪个用户的身份进行初始化
--datadir=path:数据目录
注意:
mysql运行起来后是一个服务器,这个服务器将来需要闯将数据库数据表,这些数据此前使用rpm包安装时保存在/var/lib/mysql下,而此处解压安装安装在当前目录下的data目录下,但是事实上将其放在软件安装路径下不是一个很好的选择,因此需要另外指定路径。
一般来讲,数据根据企业规模的不同可能会变得非常大,所以一般而言建议放在一个独立的分区上,而且是一个独立的逻辑卷上,因为放在逻辑卷上将来数据增大时可以非常方便的扩大数据边界,所以应尽可能放在一个逻辑卷上,因此就需要使用datadir指定另外的位置在什么地方,因为它会将初始化的结果保存在数据目录下而默认为data,此处就使用逻辑卷;
创建逻辑卷:
- 初始化mysql-5.5.28:
注意:初始化完成后一定要记得mysql安装目录下的文件的属主不要给mysql用户,因为将来一旦有人攻破mysql进程,他将获得整个文件的所有权限,所以一般而言将其属主改回root用户。
那一般来讲如果把数据放在data中,如果没有改别的位置,数据还放在data中,那它的属主就不能是root。
此刻为止,MySQL的安装基本成功!
- 为mysql提供主配置文件:
MySQL的配置文件:
/etc/my.cnf,MySQL的配置文件由n段组成
配置文件格式:使用中括号式的分段式,一段指令只对一个片段生效。它是一个集中式的配置文件,可以为多种程序提供配置文件,如:
[mysql] #客户端配置文件
[mysqld] #服务器端配置文件
[client] #对所有的客户端程序都生效
MySQL寻找配置文件路径的步骤:
MySQL配置文件比较独特,MySQL找配置文件时会先找/etc/my.cnf -->
找完这个后,会找/etc/mysql/my.cnf -->
找完这个后,找$BASEDIR($BASEDIR是MySQL进程或实例的运行目录,一般来讲,就是安装目录)下的my.cnf,即$BASEDIR/my.cnf -->
找完这个后,会找$DATADIR/my.cnf -->
找完这个后,会找用户家目录下的.my.cnf即-/.my.cnf,但因为运行mysql的用户mysql,mysql没有家目录,所以找不着。
步骤小结:/etc/my.cnf --> /etc/mysql/my.cnf --> $BASEDIR/my.cnf --> -/my.cnf
注意:
- 所有路径找完之后,这四个目录中的配置可能会有冲突的,以最后一个为准。后一个会覆盖前一个。
- 就算没有配置文件,mysql也能运行起来,因为它的很多配置都有默认定义的,我们要想运行mysql,需要给它提供一个配置文件。
MySQL为我们提供了四个配置文件样例:
这四个mysql提供的配置文件的主要区别主要在于内存大小,我们按需使用即可。
另外还需要添加如下一行指定mysql数据文件的存放位置并按需修改并发线程数:
thread_concurrency:线程并发数,数量设定为CPU数量*2;
- 为mysql提供sysv服务脚本:
mysql.server是MySQL为我们提供的脚本;
添加至服务列表:
而后就可以启动服务测试使用了。
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤!
- 输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
- 输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
- 输出mysql的库文件给系统库查找路径:
也可以使用如下方式输出库文件路径:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
而后让系统重新载入系统库:
- 修改PATH环境变量,让系统可以直接使用mysql的相关命令:
MySQL内部变量、通配符及部分常用函数:
performance_schema:系统状态信息收集库,如:mysql已经接受了多少个用户请求,有多少个用户连接过,用户连接后网络发送了多少数据过去。这些信息可直接查看。
在MySQL服务器内部有两类变量:(MySQL维持了两类变量)
注意:将来对MySQL的管理主要就集中在这两类变量上,调整MySQL的运行特性,调优MySQL就是调整这些东西,查看调整MySQL性能后是否有提升,就查看状态变量。
- 服务器变量:
定义MySQL服务器运行属性(特性)。就是使用参数可以定义改变MySQL服务器的工作状态的,即配置文件中提供的那些指令,如:DATADIR在什么路径下、要不要启动日志、日志文件放在什么路径下等,就是定义MySQL运行起来后怎么运行的。
查看可使用:
SHOW GLOBAL VARIABLES [LIKE ‘变量名(支持通配符)’]
查看某一特定变量可使用:
SHOW GLOBAL VARIABLES LIKE ‘变量名’;
- 状态变量:
保存了mysql服务器运行时的统计数据
查看可使用:
SHOW GLOBAL STATUS [LIKE ‘变量名(支持通配符)’]
使用示例:
MySQL通配符:
- _:任意单个字符;
- %:任意长度的任意字符;
显示当前MySQL的版本号:
显示当前默认的数据库:
显示当前登录的用户: