zoukankan      html  css  js  c++  java
  • linux上源码编译安装mysql-5.6.28

    在 linux 上编译安装 mysql-5.6.28.tar.gz
    http://www.mysql.com/
    mysql下载地址:
    http://www.mysql.com/downloads/mysql/#downloads
    mysql 官方网站文档:
    https://dev.mysql.com/doc/
    
    01、准备工作
    
    yum install -y gcc gcc-c++ cmake make ncurses ncurses-devel  bison
    
    02、解压
    
    tar zxf mysql-5.6.28.tar.gz
    
    03、编译
    
    cmake . 
    -DCMAKE_INSTALL_PREFIX=/tmp/test/mysql 
    -DWITH_INNOBASE_STORAGE_ENGINE=1  
    -DWITH_EXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8  
    -DDEFAULT_COLLATION=utf8_general_ci
    
    make -j 8
    make install -j 8   
    
    注意:
    常见的CMAKE选项
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql    MySQL安装目录
    -DWITH_INNOBASE_STORAGE_ENGINE=1           安装InnoDB存储引擎
    -DWITH_MYISAM_STORAGE_ENGINE=1             安装MyISAM存储引擎
    -DWITH_MEMORY_STORAGE_ENGINE=1             安装内存存储引擎
    -DDEFAULT_CHARSET=utf8                     默认编码设置成utf8
    -DDEFAULT_COLLATION=utf8_general_ci        默然校验规则是utf8_general_ci
    -DWITH_EXTRA_CHARSETS=all                  支持其他所有的编码
    -DMYSQL_TCP_PORT=3306                      MySQL端口指定为3306
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock          指定SOCK文件路径
    -DMYSQL_DATADIR=/usr/local/mysql/data      MySQL数据目录
    
    make -j n  支持多线程编译(一般跟内核数相等)
    
    04、配置my.cnf
    [root@rhel mysql]# pwd
    /tmp/test/mysql
    mkdir conf 
    cp support-files/my-default.cnf  conf/
    vim my.cnf 详情看下面的附属
    05、初始化数据库 useradd mysql #注意 --user 需要用root编译 ./scripts/mysql_install_db --defaults-file=/tmp/test/mysql/my.cnf --user=mysql ./scripts/mysql_install_db --defaults-extra-file=/tmp/test/mysql/conf/my.cnf --user=mysql 06、启动数据库 ./bin/mysqld_safe --defaults-file=/tmp/test/mysql/my.cnf --user=mysql & ./bin/mysqld_safe --defaults-extra-file=/tmp/test/mysql/conf/my.cnf --user=mysql & 07、设置密码 [root@rhel ~]# ss -ln |grep 3333 LISTEN 0 80 :::3333 :::* ./bin/mysqladmin -u root password '123123' 08、账户授权 grant all on *.* to 'mvpbang'@'%' identified by '123123'; flush privileges; 09、设置系统环境变量 vim /etc/profile export PATH=$PATH://tmp/test/mysql/bin source /etc/profile 修改 rc.local ,让 mysql 开机自动运行 echo "mysqld_safe --defaults-extra-file=/tmp/test/mysql/conf/my.cnf --user=mysql &" >>/etc/rc.local 10、基本命令的参数说明 [root@rhel mysql]# ./scripts/mysql_install_db --help Usage: ./scripts/mysql_install_db [OPTIONS] --basedir=path The path to the MySQL installation directory. --builddir=path If using --srcdir with out-of-directory builds, you will need to set this to the location of the build directory where built files reside. --cross-bootstrap For internal use. Used when building the MySQL system tables on a different host than the target. --datadir=path The path to the MySQL data directory. If missing, the directory will be created, but its parent directory must already exist and be writable. --defaults-extra-file=name Read this file after the global files are read. --defaults-file=name Only read default options from the given file name. --force Causes mysql_install_db to run even if DNS does not work. In that case, grant table entries that normally use hostnames will use IP addresses. --help Display this help and exit. --ldata=path The path to the MySQL data directory. Same as --datadir. --no-defaults Don't read default options from any option file. --keep-my-cnf Don't try to create my.cnf based on template. Useful for systems with working, updated my.cnf. Deprecated, will be removed in future version. --random-passwords Create and set a random password for all root accounts and set the "password expired" flag, also remove the anonymous accounts. --rpm For internal use. This option is used by RPM files during the MySQL installation process. --skip-name-resolve Use IP addresses rather than hostnames when creating grant table entries. This option can be useful if your DNS does not work. --srcdir=path The path to the MySQL source directory. This option uses the compiled binaries and support files within the source tree, useful for if you don't want to install MySQL yet and just want to create the system tables. --user=user_name The login username to use for running mysqld. Files and directories created by mysqld will be owned by this user. You must be root to use this option. By default mysqld runs using your current login name and files and directories that it creates will be owned by you. Any other options are passed to the mysqld program. [root@rhel mysql]# ./bin/mysqld_safe --help Usage: ./bin/mysqld_safe [OPTIONS] --no-defaults Don't read the system defaults file --defaults-file=FILE Use the specified defaults file --defaults-extra-file=FILE Also use defaults from the specified file --ledir=DIRECTORY Look for mysqld in the specified directory --open-files-limit=LIMIT Limit the number of open files --core-file-size=LIMIT Limit core files to the specified size --timezone=TZ Set the system timezone --malloc-lib=LIB Preload shared library LIB if available --mysqld=FILE Use the specified file as mysqld --mysqld-version=VERSION Use "mysqld-VERSION" as mysqld --nice=NICE Set the scheduling priority of mysqld --plugin-dir=DIR Plugins are under DIR or DIR/VERSION, if VERSION is given --skip-kill-mysqld Don't try to kill stray mysqld processes --syslog Log messages to syslog with 'logger' --skip-syslog Log messages to error log (default) --syslog-tag=TAG Pass -t "mysqld-TAG" to 'logger' All other options are passed to the mysqld program.

    附上my.cnf

    [client]
    default-character-set=utf8
    
    [mysql]
    auto-rehash
    default-character-set=utf8
    
    [mysqld]
    #根据实际情况适当调整
    innodb_buffer_pool_size = 128M
    join_buffer_size = 128M
    sort_buffer_size = 2M
    read_rnd_buffer_size = 2M 
    
    #个性化设置
    lower_case_table_names=1  #忽略大小写
      #对大批量数据导入导出防止超时
    max_allowed_packet=500M
    wait_timeout=200000
    interactive_timeout=200000
    
    #数据库字符集设置(由于编译已经选择,顾不需要设置)
    
    #init_connect='SET collation_connection = utf8_unicode_ci'
    #init_connect='SET NAMES utf8'
    #character-set-server=utf8
    #collation-server=utf8_unicode_ci
    
    #日志记录
    #log_bin
    
    #基本信息
    basedir = /tmp/test/mysql
    datadir = /tmp/test/mysql/data
    port = 3333
    server_id = 1
    socket = /tmp/test/mysql/data/mysql.sock
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    
    
    [mysqld_safe]
    log-error = /tmp/test/mysql/life.log
    pid-file = /tmp/test/mysql/data/mysqld.pid

    内核编译进度

    注意:配置低的编译基本上都是1个小时左右!!!(一般建议放在服务器上编译开多线程)

     

  • 相关阅读:
    基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据
    NIO编程中buffer对象的理解以及API的使用
    使用简单工厂模式写一个简单的计算器!!!
    java数字转字符串前面自动补0或者其他数字
    jQuery Validate自定义金钱验证,是否为金额格式,保留两位小数,并支持千分制货币格式
    javade多任务处理之Executors框架(线程池)实现的内置几种方式与两种基本自定义方式
    【转】asp.net mvc webapi+angular.js案例
    【转】MVC5中的区域(Areas)
    【转】在ASP.NET MVC中,使用Bundle来打包压缩js和css
    scroll pagination.js数据重复加载、分页问题
  • 原文地址:https://www.cnblogs.com/xiaochina/p/7286841.html
Copyright © 2011-2022 走看看