2018-2-26 Linux学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-2-26 Linux学习笔记相关的知识,希望对你有一定的参考价值。

11.1 LAMP架构介绍

  • Linux+Apache(httpd)+mysql+php
    Linux: 操作系统
    Apache: 提供Web服务的软件,真正名字叫httpd
    MySQL: 存储数据,字符串的数据库
    PHP: 用C开发,类似shell但比shell高级,通常用于做网站
    技术分享图片
  • Apache,MySQL,PHP三个角色可以在一台机器上,也可以分开,但Apache(httpd)和PHP要在一起,因为PHP是以一个模块的形式存在Apache上的.

  • 静态请求: 直接由webserver处理的请求,比如图片,js,css等.
    用户<-->Apache<-->静态文件
  • 动态请求: 需要和数据库打交道的请求.
    用户<-->Apache<-->PHP模块<-->MySQL

11.2 MySQL_MariaDB介绍

  • MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿美元),2009年sun公司被oracle公司收购(74亿美元).MySQL官网https://www.mysql.com.MySQL5.6变化比较大,5.7性能上有很大提升.

  • Mariadb为MySQL的一个分支,官网https://mariadb.com
  • Mariadb主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立.
  • Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6

  • MySQL各个版本:
    Community社区版本
    Enterprise企业版
    GA(Generally Available)通用版本,在生产环境中用的
    DMR(Development Milestone Release)开发里程碑发布版
    RC(Release Candidate)发行候选版本
    Beta开放测试版本
    Alpha内部测试版本

11.3/4/5 MySQL安装

  • MySQL的几个常用安装包: rpm,源码,二进制免编译.

  • 二进制免编译包是在其他Linux机器已经编译后打包的,安装时无需再编译,与rpm包安装类似,但胜于rpm包的一点是它能指定安装的路径,而rpm包不能指定.
  • 二进制免编译包可不足之处是性能可能不能保证,如果追求性能建议用源码安装方式.

  • 二进制免编译包安装MySQL简要步骤:
    cd /usr/local/src
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz #下载MySQL二进制免编译包
    tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz #解压安装包
    mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql #将安装包移动到/usr/local/mysql目录下
    cd /usr/local/mysql
    useradd mysql #创建mysql用户
    mkdir /data/ #创建数据库目录
    ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql #初始化,指定数据库用户和目录(这是一个perl脚本)
    cp support-files/my-default.cnf /etc/my.cnf #拷贝配置文件
    cp support-files/mysql.server /etc/init.d/mysqld #拷贝启动脚本
    vi /etc/init.d/mysqld
    定义basedir和datadir
    basedir=/usr/local/mysql
    datadir=/data/mysql
    /etc/init.d/mysqld start #启动mysql服务
  • 运行./scripts/mysql_install_db --user=mysql --datadir=/data/mysql进行初始化后,如何知道是否成功呢?简单说一是看是否有2个OK(如下图);二是立刻运行echo $?查看刚运行的初始化命令返回值是否为0(0成功,1失败).
    技术分享图片
  • 可用如下命令让mysqld能开机启动
    chkconfig --add mysqld #将mysqld加入到启动列表中以便能开机启动
    技术分享图片
  • 安装过程(主要是初始化那一行命令)中遇到的问题:
  • 问题1:
    -bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
    解决方法:
    yum install perl -y

  • 问题2:
    [[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
    Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
    解决方法:
    yum install libaio* -y

  • 安装包时遇到缺少某些模块/包问题的一般思路,比如如下错误提示:
    FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
    Data::Dumper
    方法一:
    先模糊搜索可能的安装包-->安装搜索到的安装包-->再次执行,若不报错则说明安装正确.
    yum list|grep perl|grep -i dumper
    方法二:
    网上搜索该问题
    www.baidu.com
    www.bing.com
    www.google.com

  • 命令行启动mysql服务(了解):
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
    关闭mysql服务(了解):
    killall mysqld
    注(重要): 不要用kill pid形式来关闭mysql服务,因为有可能造成数据丢失;而用killall会先停止当前写/读操作,将缓存中未同步到磁盘中的数据同步到磁盘后,再停止mysql服务.

  • mysql的两个引擎(此处先做了解则可):
    innodb
    myisam

以上是关于2018-2-26 Linux学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

linux学习笔记一

Linux学习笔记

Linux学习笔记

Linux学习笔记

Linux学习笔记(第一周)

Linux学习笔记