• linux 源码编译安装MySQL


    源码编译安装mysql

    一 准备工作 添加一块硬盘 用该硬盘创建逻辑卷
    1检测新此盘
    df -hT
    2创建物理卷
    pvcreate /dev/sd。。。
    3创建卷组
    vgcreate 卷组名 /dev/sd。。。
    4创建逻辑卷
    lvcreate -L 几G -n 逻辑卷名 卷组名
    5查看一下创建的逻辑卷
    lvscan
    6格式化逻辑卷
    mkfs.xfs /dev/卷组名/逻辑卷名
    7挂在逻辑卷
    vim /etc/fstab
    8挂在所有
    mount -a

    二 安装mysql
    1检测是否安装mariadb数据库
    rpm -qa |grep mariadb
    2如果有则卸载
    rpm -e --nodeps mariadb-libs
    #rpm --nodeps选项为强制执行
    3安装cmake
    yum install -y cmake
    4创建mysql用户
    useradd -M -s /sbin/nologin mysql
    5创建mysql数据目录并修改文件的属主/组
    mkdir /mydata/data -p
    chown -R mysql.mysql /mydata/data/
    6下载mysql的软件压缩包并解压
    wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.17.tar.gz
    tar zxf mysql-boots-5.7.17.tar.gz
    #如果上方链接不能用则
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17.tar.gz
    wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
    并且解压mysql
    tar zxf mysql-5.7.17.tar.gz
    创建/usr/local/boots目录 用来存放boots安装包 并把下载好的boots包剪切到此并解压
    mkdir -p /usr/local/boots
    mv ./boost_1_59_0.tar.gz /usr/local/boots/
    cd /usr/local/boots/
    tar zxf boots_1_59_0.tar.gz
    并且把下方mysql生成环境中的 -DWITH_BOOST=boost/boost_1_59_0/ 修改到最后一行为-DWITH_BOOST=/usr/local/boost
    7 进入mysql解压后的目录
    cd mysql-5.7.17
    8编译mysql生成环境
    cmake #cmake . -L 查看帮助
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定mysql的安装目录
    -DMYSQL_UINX_ADDR=/tmp/mysql.sock #指定mysql的套接字文件路径
    -DDEFAULT_CHARSET=utf8 #指定mysql的字符集
    -DDEFAULT_COLLATION=utf8_general_cI #指定MySQL排序规则
    -DMYSQL_DATADIR=/mydata/data #指定mysql的数据目录
    -DMYSQL_TCP_PORT=3306 #指定MySQL启动的端口号
    -DWITH_BOOST=boost/boost_1_59_0/ #指定boost库文件
    -DWITH_MYISAM_STORAGE_ENGINE=1 #支持myisam存储引擎
    -DWITH_INNOBASE_STORAGE_ENGINE=1 #支持innodb存储引擎
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 #支持archive存储引擎
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 #支持blackhole存储引擎

    #错误1
    CMake Error:your C compiler : "CMAKE_C_COMPOLER-NOTFOUND"was not found . please set CMAKE_C_COMPILER to a valid
    compiler path or name .
    CMake Error: your CXX compiler : "CMAKE_CXX_COMPILER-NOTFOUND" was not found . please set CMAKE_CXX_COMPILER to a
    calid compiler path or name.
    CMake Error at cmake/os/Linux.cmake : 41 (MESSAGE) :
    Unsupported compiler!
    Call Stack (most recent call first):
    CMckeLists.txt:162(INCLUDE)
    #解决办法
    yum groupinstall -y "Development Tools" "Server Platform Development" "Desktop Platform Development"

    #错误2
    CMake Error at cmake/readline.cmake:64(MESSAGE):
    Curses library not found. Please install appropriate package,
    #解决办法
    yum install -y ncurses-devel.x86_64

    #如果编译过程报错 那么要删除mysql解压后的目录中的CMakeCache.txt
    rm -rf CMakeCache.txt

    9 检测并安装mysql
    make
    10安装mysql
    make install
    10修改/usr/local/mysql/的属主/组
    chown -R root.mysql /usr/local/mysql/


    三初始化数据库
    1设置初始化的配置
    /usr/local/mysql/bin/mysqld --initialize #初始化
    --user=mysql #mysql启动用户
    --basedir=/usr/local/mysql #MySQL安装目录
    --datedir=/mydata/data #mysql数据目录
    #之后会有一条
    2017-03-10T08:21:12.889095Z 1 [Note] A temporary password is generated for root@localhost: xxxxxxxx
    #:后的 xxxxxxx是你的mysql初始密码
    #错误1、[ERROR] --initialize specified but the data directory has files in it. Abort
    [错误] -初始化指定,但数据目录中有文件。中止
    解决方法:将数据目录下已存在的文件全部删除。如:rm -rf /data/mysql/*
    2复制mysql配置文件
    cp /usr/local/mysql/supporrt-files/my-default.cnf /etc/my.cnf
    3修改my.cnf
    vim my.cnf
    添加内容为 : basedir=/usr/local/mysql
    datadir=/mydata/data
    port=3366
    server_id=121
    socket=/tmp/mysql.sock
    保存退出
    4启动MySQL 并查看是否启动
    /usr/local/mysql/bin/mysqld_asfe --user=mysql &
    ps aux | grep mysql (进程) 或者 ss -antp | grep :3306 (进程)
    5登陆mysql
    /usr/local/mysql/bin/mysql -u root -p
    输入密码:
    6进入mysql 就和yum安装的mysql操作一样了
    7如果要使用mysql命令时不加绝对路径。那就修改mysql环境变量 临时
    echo $OATH 查看一下
    export PATH=$PATH:/usr/local/mysql/bin
    echo $OATH 查看一下
    8永久修改
    1 vim /etc/porfile
    添加一行 export PATH=$PATH:/usr/local/mysql/bin
    2 在/etc/profile.d/下创建一个mysql专门的配置文件 文件名随便起记住就行 但是必须以 .sh 结尾
    vim /etc/profile.d/mysql.sh
    读取一边这个文件
    source /etc/profile.d/mysql.sh

  • 相关阅读:
    插入排序
    python -- 给电视剧重命名
    程序员你为什么迷茫?
    如何把自己打造成技术圈的 papi 酱
    GitHub中国区前100名到底是什么样的人?
    Python+opencv 图像拼接
    VS2015 新Web项目(C#6)出现CS1617错误的解决
    .Net Task<T>的一种比较神奇的卡死情况(Wait/Result卡死, await能得到结果)
    Xamarin Android自学和实践步骤
    跨过几个坑,终于完成了我的第一个Xamarin Android App!
  • 原文地址:https://www.cnblogs.com/w321696722/p/13197229.html
Copyright © 2020-2023  润新知