linux运维进阶-lnmp架构之mysql安装及配置

以下操作基于RHEL6.5

一.lnmp简介


LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统

扩展:LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。

二.MySQL的安装


1 MySQL安装前的准备


本次MySQL使用源码安装,在安装之前,要先解决依赖性包。


tar zxf mysql-boost-5.7.17.tar.gz  #解压mysql的压缩包
cd mysql-5.7.17            #进入目录
当前目录下需要有cmake-2.8.12.2-4.el6.x86_64.rpm
yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm  #安装依赖性包cmake
yum install ncurses-devel -y    #安装依赖性包ncurses-devel
yum install gcc-c++ -y             #安装依赖性包gcc-c++

2 开始进行安装


使用cmake命令进行编译:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/


编译时参数的含义:

#安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \
#数据库存放目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \
#安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安装 innodb 存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安装 archive 存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安装 blackhole 存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \
#安装数据库分区
-DENABLED_LOCAL_INFILE=1 \
#允许从本地导入数据
-DWITH_READLINE=1 \
#快捷键功能
-DWITH_SSL=yes \
#支持 SSL
-DDEFAULT_CHARSET=utf8 \
#使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \
#校验字符
-DEXTRA_CHARSETS=all \
#安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 \
#MySQL 监听端口


等到编译成功,然后进行安装:

make && make install  #编译(make其实就是makefile,后面的make install才是安装!)


三MySQL的配置


1 添加MySQL用户


groupadd -g 27 mysql
useradd -u 27 -g 27 -s /sbin/nologin -M -d /usr/local/lnmp/mysql/data mysql #添加mysql用户


2 修改MySQL路径


vim ~/.bash_profile #进入mysql的bin目录下修改文件 把路径修改为如下
10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
source ~/.bash_profile   #使新改的目录生效


3 制作配置文件和添加服务


在解压的 mysql-5.7.17路径下
cp my-default.cnf /etc/my.cnf 
cp mysql.server /etc/init.d/mysqld      #将mysql服务加入


添加用户:

 


更改目录,创建配置文件:


 linux运维进阶-lnmp架构之mysql安装及配置_第1张图片


4 MySQL初始化以及测试登录

mysqld --initialize --user=mysql #初始化 此时会有一个临时密码
/etc/init.d/mysqld start    #开启服务
chown root.root . -R
chown mysql data -R

mysql_secure_installation       #修改密码
mysql -uroot -p         #测试登陆
linux运维进阶-lnmp架构之mysql安装及配置_第2张图片


linux运维进阶-lnmp架构之mysql安装及配置_第3张图片


linux运维进阶-lnmp架构之mysql安装及配置_第4张图片


四.报错解决:

启动MySql提示:The server quit without updating PID file(…)失败

 1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!

2.可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !http://blog.rekfan.com/?p=186

4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

5.skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6.错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

7.selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。


END


你可能感兴趣的:(mysql)