• Centos 6下使用cmake编译安装MariaDB


    写在前面

    最近在学习Maria DB,为了方便查阅,又为了将所学的知识重新的梳理,特作此随笔一篇,希望过后阅读时能有所感,也希望对大家能够有所帮助。

    安装前的准备

    大家都知道,在Linux上安装软件一共有三种方式:1、rpm包安装 。2、二进制程序包安装。3、源码编译安装。对于前2种方式安装起来会便捷不少,但是定制化程度低,当我们需要进行软件diy时,那么编译安装就再合适不过了。

    对于CentOS 6 来说,使用yum安装,yum源里面默认提供的是低版本MySQL,因此当我们想要安装Maria DB时,则需要使用编译安装。到CentOS 7后,可以使用yum源直接按照MariaDB。

    1、依赖的库和包

     在编译之前,我们需要安装一些以来的库和包

    yum -y groupinstall "Development tools" "Server Platform Development" #这两个库中包含很多常用的软件,例如openssl-devel、bison等
    yum -y install cmake lrzsz #此处的lrzsz是一个用于物理机和虚拟机之间传输文件的软件,后面要将软件包从物理机中拷贝到虚拟机中。

     2、其他相关的设置

    grouped -r -g 306 mysql    #添加一个系统组
    useraddd -r -u 306 -g 306 mysql  #添加一个系统用户并且加入对应的系统组中
    
    mkdir -p /data/mysql    #为MariaDB设置对应目录
    chown -R mysql.mysql /data/mysql  #改变对应的属组属主,以便写入数据

    安装mariaDB

    1、解压到制定文件夹

    rz     #由于此处MariaDB是放到物理机桌面的,因此使用此命令进行传输
    tar -xf mariadb-10.0.13.tar.gz 
    cd mariadb-10.0.13.tar.gz

    2、安装

    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql   #安装目录为/usr/local/mysql,其中mysql目录可以不事先建立。
    -DMYSQL_DATADIR=/data/mysql          #数据存储的目录,需要事先建立,并且设置好属主属组,方便对应的属主属组读写数据
    -DWITH_XTRADB_STORAGE_ENGINE=1        #默认已存在CSV和MyISAM存储引擎,因此加入FEDERATEDX、ARCHIVE、MYISAM、INNOBASE、BLACKHOLE存储引擎。其中innoDB最常用。
    -DWITH_FEDERATEDX_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_READLINE=1
    -DWITH_SSL=system                #加入ssl、zlib库 
    -DWITH_ZLIB=system
    -DDEFAULT_CHARSET=utf8             #设置字符集
    -DDEFAULT_COLLATION=utf8_general_ci      #设置排序方式

    注:当此步骤出现

    -- Configuring done
    -- Generating done

    ” 时,即可进行下一步安装。

    此步骤会生成一个"CMakeCache.txt"文件,当出现问题时,需要将其删除后重新编译。

    make

    make install

    安装完成后

    1、MariaDB加入环境变量  

    vim /etc/profile.d/mysql.sh
      export PATH=$PATH:/usr/local/mysql/bin  #加入此内容
    . /etc/profile.d/mysql.sh    #重新加载,使其生效,必须使.sh结尾,否则仅仅当前会话生效。

    2、设置配置文件并初始化

    chown -R mysql.mysql /usr/local/mysql #设置属主和数组,方便写入配置文件
    cd /usr/local/mysql cp support-files/my-large.cnf /etc/my.cnf #添加配置文件,并且在[mysqld]中加入下面三行配置信息   "datadir=/data/mysql/   innodb_file_per_table=on   skip_name_resolve=on" scripts/mysql_install_db --user=mysql --datadir=/data/mysql #注意:此初始化脚本必须在/usrl/local/mysql这个目录中执行,否则会报错。
      初始化后,数据目录会有一些原始数据

        ls /data/mysql/
        aria_log.00000001 ib_logfile0 mysql-bin.000001 mysql-bin.state
        aria_log_control ib_logfile1 mysql-bin.000002 performance_schema
        ibdata1 mysql mysql-bin.index test

    3、加入系统启动项

     cp support-files/mysql.server /etc/init.d/mysqld    
     chmod +x /etc/init.d/mysqld   #给脚本增加执行权限
     chkconfig mysqld on #加入开机启动项

    4、MariaDB用户安全初始化

     /usr/local/mysql/bin/mysql_secure_installation 
    #此步骤会设置root密码、禁止root远程登录、移除一名用户,删除测试数据库,并且重新加载授权表。根据自己喜好选择即可。
    PS:当MariaDB启动时,才开始进行此操作。

    5、登录操作

    [root@mycentos ~]# mysql -uroot -p     #登录命令,以root用户登录,密码为上一步操作所设置的。
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 15
    Server version: 10.0.13-MariaDB-log Source distribution  #此处为MariaDB的版本
    
    Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
      
    MariaDB [(none)]>   #已经进入数据库,完成编译安装!!!

      

  • 相关阅读:
    关于 控制反转与依赖注入 对初学者的一点帮助
    转载--文章(感谢米粒儿博主分享) 关于 Json.net序列化时间问题
    转载--文章(感谢陈晨博主分享) 关于 Json.net
    B-JUI框架使用探究
    什么是Entity Framework(ORM)
    字典
    Docker部署Linux+Nginx+Mariadb+PHP环境
    Docker部署Django+nginx+uwsgi环境
    Docker部署Django+apache+mod_wsgi环境
    Docker容器技术
  • 原文地址:https://www.cnblogs.com/etoumao/p/14153105.html
Copyright © 2020-2023  润新知