zoukankan      html  css  js  c++  java
  • mysql-5.7.* 编译安装

    系统 CentOS 7.9 

    userdel -r mysql
    yum -y remove mariadb mariadb-libs mariadb-server mariadb-devel
    rm -rf /etc/my*
    rm -rf /var/lib/mysql
    rm -rf /var/log/mysql*

    添加用户
    useradd -s /sbin/nologin mysql


    安装包 yum install -y cmake bison bison-devel libaio-devel gcc gcc-c++ git ncurses-devel


    MySQL 手册: https://dev.mysql.com/doc/refman/

    软件下载地址:
    MySQL: https://dev.mysql.com/downloads/mysql/
    Operating System: Source Code
    OS Version: Generic Linux
    tar -zxf mysql-boost-5.7.33.tar.gz
    cd mysql-5.7.33

    cmake
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
    -DSYSCONFDIR=/etc
    -DDEFAULT_CHARSET=utf8mb4
    -DDEFAULT_COLLATION=utf8mb4_general_ci
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_MYISAM_STORAGE_ENGINE=1
    -DMYSQL_DATADIR=/usr/local/mysql/data
    -DEXTRA_CHARSETS=all
    -DWITH_EXTRA_CHARSETS=all
    -DWITH_INNODB_MEMCACHED=1
    -DMYSQL_TCP_PORT=3306
    -DWITH_DEBUG=1
    -DWITH_EMBEDDED_SERVER=1
    -DWITH_ZLIB=system
    -DWITH_BOOST=boost
    -DENABLED_LOCAL_INFILE=1
    -DENABLED_PROFILING=ON
    -DWITH_SYSTEMD=1

    /********************** 不完整,待完善 ************************************/
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql mysql安装目录
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock mysql.sock路径
    -DSYSCONFDIR=/etc mysql配置文件目录
    -DDEFAULT_CHARSET=utf8 默认的字符集为utf8
    -DDEFAULT_COLLATION=utf8_general_ci 默认排序规则
    -DWITH_INNOBASE_STORAGE_ENGINE=1 储存引擎
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 储存引擎
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 储存引擎
    -DENABLE_LOCAL_INFILE=1
    -DWITH_MYISAM_STORAGE_ENGINE=1
    -DMYSQL_DATADIR=/usr/local/mysql/data 数据库文件存放位置
    -DEXTRA_CHARSETS=all 启用额外的字符集类型
    -DMYSQL_TCP_PORT=3306 TCP端口
    -DWITH_DEBUG=OFF 禁用debug
    -DWITH_READLINE=1 启用readline库支持(提供可编辑的命令行)
    -DWITH_EMBEDDED_SERVER=1 编译嵌入式服务器支持
    -DWITH_ZLIB=system 启用libz库支持(zib、gzib相关)
    -DENABLE_DTRACE=OFF
    -DWITH_BOOST=boost 指定boost
    -DWITH_SYSTEMD=1 支持systemctl

    /**********************************************************/


    /usr/bin/ld: cannot find -lzlib
    查看详细信息 ld -lzlib --verbose
    查到的组件名去除 lib,进行查找,如 libzlib.so,去除lib 为 libz.so;
    查找 find / -name libz.so*;
    查找结果
    /usr/lib64/libz.so.1
    /usr/lib64/libz.so.1.2.7
    /usr/lib64/libz.so
    为 /usr/lib64/libz.so.1.2.7 创建软链接:
    ln -s /usr/lib64/libz.so.1.2.7 /usr/lib/libzlib.so

    make
    make install

    cd /usr/local/mysql/
    chown -R mysql:mysql .

    初始化数据库
    初始化:
    ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    * --datadir目录比较为空,--basedir --datadir 必须和/etc/my.cnf 配置的目录一致

    *** 提示 my.cnf (参考底部)中所配置文件提前创建好,并将用户设置为mysql,可以避免很多坑。。。
    创建my.cnf中pid-file文件,例:
    mkdir -R /var/run/mysqld/
    chown -R mysql /var/run/mysqld/

    复制启动脚本
    #cp ./support-files/mysql.server /etc/init.d/mysqld

    更改 mysqld.service 文件中的pid项;
    cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

    刷新识别启动脚本文件 systemctl daemon-reload
    启动数据库 systemctl start mysqld
    如无法启动查看mysqld.service设置项 /usr/lib/systemd/system/mysqld.service

    查看端口服务 netstat -anpt | grep 3306
    添加开机启动 systemctl enable mysqld

    设置登陆密码 ./bin/mysqladmin -u root -p password "123456"

    写入环境变量
    echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
    或 vim /etc/profile
    PATH=/usr/local/mysql/bin:$PATH

    重新加载 source /etc/profile

     my.cnf

    [client]
    port = 3306
    socket = /tmp/mysql.sock

    [mysqld]
    user = mysql
    port = 3306
    socket = /tmp/mysql.sock
    pid-file = /var/run/mysqld/mysqld.pid

    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    log-error = /usr/local/mysql/log/mysql-error.log # 错误文件
    slow_query_log = 1
    long_query_time = 1
    slow_query_log_file = /usr/local/mysql/log/mysql-slow.log


    key_buffer_size = 16M
    max_allowed_packet = 1M
    table_open_cache = 64
    sort_buffer_size = 512K
    net_buffer_length = 8K
    read_buffer_size = 256K
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 8M

    [mysqldump]
    quick
    max_allowed_packet = 16M

    [mysql]
    no-auto-rehash
    safe-updates

    [myisamchk]
    key_buffer_size = 20M
    sort_buffer_size = 20M
    read_buffer = 2M
    write_buffer = 2M

    [mysqlhotcopy]
    interactive-timeout

  • 相关阅读:
    神舟笔记本反厂后带来的惊喜与郁闷
    如今是否还要坚持asp.net,坚持程序员这个不怎么光荣的称号
    严援朝的一句名言
    一个专科生程序员的痛苦境遇
    overflow:hidden 文本不在over 范围,也不显示
    困扰很久的问题
    未来已来,4K激活字库产业新世代
    4K超高清,为字库产业,打开了数字家电的大门
    2012中文字库简单统计与分类
    图说字王数格纵系列
  • 原文地址:https://www.cnblogs.com/blue-t/p/14495281.html
Copyright © 2011-2022 走看看