• 欢迎光临~

2018-2-26 Linux学习笔记

开发技术 开发技术 2021-01-01 312次浏览

11.1 LAMP架构介绍

  • Linux+Apache(httpd)+MySQL+PHP
    Linux: 操作系统
    Apache: 提供Web服务的软件,真正名字叫httpd
    MySQL: 存储数据,字符串的数据库
    PHP: 用C开发,类似shell但比shell高级,通常用于做网站
    2018-2-26 Linux学习笔记




  • 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 #拷贝启动脚本









  • 编辑mysql配置文件:
    vi /etc/my.cnf
    定义datadir和socket
    datadir=/data/mysql
    socket=/tmp/mysql.sock
    2018-2-26 Linux学习笔记




  • 编辑mysql启动脚本:
    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失败).
    2018-2-26 Linux学习笔记
  • 可用如下命令让mysqld能开机启动
    chkconfig --add mysqld #将mysqld加入到启动列表中以便能开机启动
    2018-2-26 Linux学习笔记

  • 安装过程(主要是初始化那一行命令)中遇到的问题:
  • 问题1:
    -bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
    解决方法:
    yum install perl -y


  • 问题2:
    [root@kh-01 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

{{o.name}}
{{m.name}}
程序员灯塔
转载请注明原文链接:2018-2-26 Linux学习笔记
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com