zoukankan      html  css  js  c++  java
  • mysql的源码安装

    ##############

     安装思路:

    1)确认安装mysql的哪个分支,常见的有三大分支:Oracle官方的mysql server,Percona官方的mysql server(不支持在windows上安装,是mysql的提升,有较多的工具辅助),Mariadb官方的mysql server

    2)确认操作系统是否支持,常见的操作系统有windows,macOS,CentOS,ubuntu等;

    3)选择mysql的发行版本和分发格式,目前有5.5、5.6、5.7、8.0四个发行版本,分发格式有二进制和源码;通常咱们就选择GA版本,如果给业务安装,就用二进制版本安装,如果是dba安装到生产环境就用源码安装;

    一、目前Oracle mysql8的发行版本使用由三个数字和一个可选后缀组成的版本名称构成。

    第一个数字是8,表示主版本号; 第二个数字是0,表示次版本号; 第三个数字是25,表示发布系列的版本号;

    二、可选后缀有: dmr:开发里程碑的版本; rc:通过所有内部测试的版本; 没有后缀:表示GA版本,没有严重错误的版本,即稳定版本,即生产环境的最佳版本。系列中的开发从 DMR 版本开始,然后是 RC 版本,最后达到 GA 状态版本。



    三、分发格式:

    通用二进制安装包:.tar.xz

    源码安装包:.tar.gz

    4)到官网下载指定版本和格式的mysql软件包;

    5)安装mysql需要的依赖包和安装布局;

    6)安装;

    7)安装后配置;

    MySQL 依赖于该libaio 库。如果此库未在本地安装,则数据目录初始化和后续服务器启动步骤将失败。如有必要,请使用适当的包管理器安装它。例如,在基于 Yum 的系统上:

    shell> yum search libaio  # search for info
    
    shell> yum install libaio # install library

    Oracle Linux 8 / Red Hat 8 (EL8):这些平台默认不安装文件/lib64/libtinfo.so.5,MySQL 客户端bin/mysql需要该文件来安装 包 mysql-VERSION-el7-x86_64.tar.gz和 mysql-VERSION-linux-glibc2.12-x86_64.tar.xz要解决此问题,请安装 ncurses-compat-libs软件包:

    shell> yum install ncurses-compat-libs
    如果您之前使用操作系统本机包管理系统(例如 Yum 或 APT)安装了 MySQL,则使用本机二进制安装可能会遇到问题。确保您之前的 MySQL 安装已被完全删除(使用您的包管理系统),并且任何其他文件,例如旧版本的数据文件,也已被删除。您还应该检查配置文件,例如/etc/my.cnf 或/etc/mysql目录并删除它们。

     cmake

    make

    gcc

    openssl

    bison

     ncurses

     安装前的布局:

    1)配置管理和运行mysql的用户为:work(通常地,一般都不会使用root来管理mysql,因此咱们就创建work用户进行管理mysql)

    mysql_user=work

    2)配置mysql的端口号为:3306

    mysql_port=3306

    3)布局mysql安装相关目录:

    配置mysql的安装根目录为:/home/${mysql_user}/mysql_${mysql_port}
    
    配置mysql的存储数据目录为:/home/${mysql_user}/mysql_${mysql_port}/data
    
    配置mysql的my.cnf目录为:/home/${mysql_user}/mysql_${mysql_port}/etc
    
    配置mysql的临时目录为:/home/${mysql_user}/mysql_${mysql_port}/tmp
    
    配置mysql的redo log目录为:/home/${mysql_user}/mysql_${mysql_port}/redolog
    
    配置mysql的undo log目录为:/home/${mysql_user}/mysql_${mysql_port}/undolog
    
    配置mysql的其他日志(binlog日志,error日志,慢查询日志等)目录为:/home/${mysql_user}/mysql_${mysql_port}/log
    mysql_port=3306
    
    mysql_user=work
    
    mysql_home=/home/${mysql_user}
    
    mysql_basedir=${mysql_home}/mysql_${mysql_port} 
    
    mysql_datadir={mysql_basedir}/data
    
    mysql_etc=${mysql_basedir}/etc
    
    mysql_tmp=${mysql_basedir}/tmp
    
    mysql_redolog=${mysql_basedir}/redolog
    
    mysql_undolog=${mysql_basedir}/undolog
    
    mysql_log=${mysql_basedir}/log
    
    mysql_plugin=${mysql_basedir}/lib

    源码安装所需要的软件包:

    mysql_boost=/home/work/mysql_install/boost-xxx.tar.gz

    源码安装的配置:

    cmake .的配置选项:

    安装的根目录配置:
    
    -DCMAKE_INSTALL_PREFIX=${mysql_home}

    -DBUILD_CONFIG=mysql_release,忽略 libaio 检查

     

    -DBUILD_CONFIG=mysql_release 此选项使用与 Oracle 用于为官方 MySQL 版本生成二进制分发版相同的构建选项配置源分发版。

    -DOPTIMIZER_TRACE=1 支持优化器跟踪

    googlemock 发行版的路径,用于基于 Google Test 的单元测试。选项值是分发 Zip 文件的路径。或者,将 WITH_GMOCK环境变量设置为路径名。也可以使用 -DENABLE_DOWNLOADS=1,以便 CMake从 GitHub 下载发行版。

    cmake . -DWITH_BOOST=

    多次运行时:

    shell> make clean
    
    shell> rm CMakeCache.txt

    安装后初始化:(需要保证${mysql_data}目录为空目录)

    # 一般用--initialize初始化:其中my.cnf文件中最重要的就是basedir和datadir参数

    shell> ${mysql_home}/bin/mysqld --defaults-file=${mysql_etc}/my.cnf --initialize --user=${mysql_user}

    # 不需要密码就能登陆的初始化:(一般不这样使用)

    ${mysql_home}/bin/mysqld --defaults-file=${mysql_etc}/my.cnf --initialize-insecure --user=${mysql_user}
    new_password="123456"
    ${mysql_home}/bin/mysql -u root  -P${mysql_port}   --skip-password   -Bse "ALTER USER 'root'@'localhost' IDENTIFIED BY '${new_password}';"

    更改root@'localhost'密码:

    cnf_file=${mysql_etc/my.cnf}

    old_password=$(cat ${cnf_file}| grep "A temporary password is generated for" | tail -1 | sed -n 's/.*root@localhost: //p')

    new_password="123456"

    ${mysql_home}/bin/mysql --connect-expired-password -uroot -P${mysql_port} -p${old_password} -Bse "ALTER USER 'root'@'localhost' IDENTIFIED BY '${new_password}';"

    若开启skip_name_resolve则:

    尝试连接到主机127.0.0.1 通常会解析为localhost帐户。

    但是,如果服务器在skip_name_resolve启用的情况下运行,则此操作将失败 。如果您打算这样做,请确保存在可以接受连接的帐户。

    例如,为了能够root使用 --host=127.0.0.1或 进行连接 --host=::1,请创建以下帐户: CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';

    CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';

    ##################

    igoodful@qq.com
  • 相关阅读:
    博客园项目
    social-auth-app-django模块
    win10安装软件被阻止后
    expdp和impdp的用法
    EXPDP
    oracle常用的数据迁移方法
    使用spool导出数据
    无法创建spool文件
    sqlldr导入数据
    cmd 登录oracle
  • 原文地址:https://www.cnblogs.com/igoodful/p/15247062.html
Copyright © 2011-2022 走看看