centos7源码安装MySQL8.0.12

MySQL官方的安装布局是:/usr/local/mysql{bin,docs,man,include,lib,share,support-files}

对于编译布尔选项,可以将值指定为1或ON启用该选项,0或OFF表示禁用该选项。许多选项配置可在服务器启动时覆盖编译时的默认值的。

1.前期准备:

  卸载系统自带的mysql及配置文件和库,运行rpm -qa|grep -i mysq和rpm -qa|grep -i mariadb,使用rpm -e --nodes前两个名利筛选出来的包,再看看/etc/my.cnf文件是否存在,如果在也删掉;

  新建无法登陆的mysql用户及组,运行groupadd mysql,useradd -r -s /sbin/nologin -g mysql mysql;

  安装必要的软件包,运行yum -y install install gcc gcc-c++ cmake  make ncurses libaio  openssl perl

2.解压缩源码包:

  先在/root目录下创建bld目录(该名称随便取),该目录是用来执行cmake命令的,单独出一个目录是为了保持源文件的干净;再创建/usr/local/src/mysql目录用来存放源码包解压后的文件,以备后续使用;

  运行tar -zxvf mysql-boost-8.0.12.tar.gz -C /usr/local/src/mysql

3.关于boost的处理:

  MySQL8的源码包有含boost和不含boost的;如果源码包不含boost时并且不单独安装boost时,那么在执行cmake时记得加上这些选项 -DDOWNLOAD_BOOST=ON -DDOWNLOAD_BOOST_TIMEOUT=1200 -DWITH_BOOST=/usr/local/boost

  如果源码包是包含了boost的话,在执行cmake时也要指定boost的位置,boost一般在源码包解压后的文件下的boost目录里面;

  这次使用含boost的源码安装,因为不含boost源码安装在下载boost时速度很慢即使把等待时间设置1200秒都可能会断线。

4.关于字符集和排序字符集:

  服务器字符集。默认情况下,MySQL使用utf8mb4字符集。如果使用其它允许的字符集在mysql-srcfile/cmake/character_sets.cmake文件中列为值CHARSETS_AVAILABLE。

  服务器排序规则。默认情况下,MySQL使用utf8mb4_0900_ai_ci。使用默认字符集及校对规则。

4.执行cmake:

  centos7推荐使用systemd管理启动任务,所以要开启systemd的支持;

  cd /root/bld

  cmake /usr/local/src/mysql/mysql-8.0.12 \

  -DBUILD_CONFIG=mysql_release \

  -DWITH_SYSTEMD=ON \

  -DWITH_BOOST=/usr/local/src/mysql/mysql-8.0.12/boost

5.再执行make,如果机器性能一般的话会执行很久,差不多执行了2个小时;再执行make install

6.初始化数据库

  进入MySQL的基目录,运行./bin/mysqld --initialize-insecure --user=mysql这条命令不会生成root的初始密码,如果使用--initialize代替--initialize-insecure的话,会生成root的初始密码,使用grep password /var/log/mysqld.log即可查看到;

  bin目录下的mysqld还可以带参数--defaults-file=/etc/my.cnf,这个参数是指定服务器启动时的配置参数,有些可以覆盖编译时的取值;

  mysqld会执行一下初始化序列:

  1. 检查数据(data)目录是否存在,如果不存在mysqld程序会创建它;如果数据目录不为空,则会报错,那样的话就要删掉data目录了(编译时默认是/usr/local/mysql/data,而且执行初始化时也没有指定my.cnf文件嘛,即使指定了my.cnf文件但是该文件没有写明这个配置的话那也是使用编译时的值或默认值);
  2. 在数据目录中,服务器创建 mysql系统数据库及其表,包括授权表,服务器端帮助表和时区表。
  3. 服务器初始化管理表所需的系统表空间和相关的数据结构InnoDB。
  4. 服务器创建‘root‘@‘localhost‘超级用户账户和其它保留账户某些保留帐户已被锁定且客户端无法使用,但‘root‘@‘localhost‘仅供管理使用。
  5. 如果在基目录下的share目录存在fill_help_tables.sql并可用的话,会执行该文件填充服务器端帮助表。
  6. 如果在执行初始化时带了--init-file并且有效的话,会执行该参数后面的文件sql,这个文件主要是用于自定义引导序列(目前还不懂),当服务器在引导模式下运行时,某些功能不可用,这限制了文件中允许的语句。这些包括与帐户管理(例如CREATE USERGRANT),复制和全局事务标识符相关的语句。

7.启动MySQL

  把MySQL的基目录赋给mysql用户及组:chown -R mysql:mysql /usr/local/mysql;

  执行systemctl start mysqld,因为在编译时指定了-DWITH_SYSTEMD=ON,则使用systemd管理任务启动,也就不会再安装bin/mysqld_safe文件了;

8.配置自动启动

  待续

  

  

原文地址:https://www.cnblogs.com/wjsffzb/p/9571561.html

时间: 2024-10-09 19:23:19

centos7源码安装MySQL8.0.12的相关文章

centos7源码安装mysql8

下载: https://dev.mysql.com/downloads/mysql/ 或 https://github.com/dollarphper/soft/blob/master/mysql/mysql-boost-8.0.12.tar.gz 安装:a. 安装依赖: yum -y install cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel b. 创建用户: useradd mysql

centos7源码安装vim8.0

centos 6和7通过yum安装的vim版本仍为7.4,若想尝鲜,可获取源码包编译安装. 准备工作 1.检查vim旧版本,若已存在,将其卸载. $ vim$ yum remove vim* -y 2.安装终端字符处理库nucrses $ yum install ncurses-devel -y 编译安装 $ cd /usr/local/src/$ wget https://codeload.github.com/vim/vim/tar.gz/v8.0.0134$ tar zxf v8.0.01

图解Linux下源码安装PHP7.0.9 +Nginx

上一次,在<Linux下源码安装php7.0.6>,安装过PHP7.0.3,本文将记录安装PHP7.0.9过程. 测试环境 Linux 2.6.32-279.el6.i686 nginx-1.9.15.tar http://nginx.org/download/nginx-1.9.15.tar.gz php-7.0.9.tar.gz http://am1.php.net/distributions/php-7.0.9.tar.gz 安装Nginx wget http://nginx.org/d

centos7.2源码安装openssl1.0.2

centos7.2默认是安装了opensll软件包的,但是部署个别服务时,由于版本太低.会影响服务的正常部署.只能使用源码安装提高openssl软件版本. 因为之前有openssl软件包,所以要先移除之前版本: 删除旧版本: yum remove -y openssl openssl-devel 源码安装openssl需要perl环境编译,如果没有perl环境还是需要安装: yum -y install perl perl-devel 现在新版本openssl: wget https://www

CentOS7 源码安装 PostgreSQL 12

PostgreSQL 12 源码安装 Table of Contents 1. 下载 2. 准备环境 3. 编译安装 4. 设置环境变量 5. 初始化数据库 6. 配置参数文件 6.1. postgresql.conf 6.2. pg_hba.conf 7. 数据库启动与关闭 7.1. 手动 7.2. 开机自动启动 1 下载 官网提供了源码和预安装的版本. 源码需要编译安装,解决依赖包等问题,而预安装的版本要简单很多.只需下载解压, 初始化数据库即可. 本例以源码安装为例:请至官网 下载源码.

centos7.2源码安装php7.0.9和nginx1.10.3服务器

下载nginx-1.10.3.tar.gz,php-7.0.9.tar.gz.也可以去nginx官网,php官网下载想要的版本.我选择nginx1.10.3稳定版和php7.0.9最新版.php源码包下载速度可能会很慢,建议使用迅雷等工具,下载完成后通过stfp工具把源码包上传到服务器上,为方便测试,我直接放置在root家目录下: 使用源码安装要确保服务器安装好gcc(编辑工具)和make(安装工具),若没安装可以执行命令安装: # yum install gcc # yum install m

Centos7源码安装mysql

转子 http://www.linuxidc.com/Linux/2015-06/119354.htm 目录 准备工作 运行环境 确认你的安装版本 下载MySQL 安装MySQL 准备安装环境 编译和安装 配置MySQL 单实例配置 单实例配置方法 添加防火墙 启动MySQL 重启MySQL 多实例配置 什么是多实例 多实例配置方法 创建启动文件 初始化数据库 配置防火墙 启动MySQL 登陆MySQL 重启MySQL 准备工作 运行环境 本文的运行环境如下 系统版本 CentOS7最小化安装:

Centos7源码安装Apache和PHP

源码安装Apache 安装需要的依赖 yum -y install gcc autoconf automake make pcre pcre-devel openssl openssl-devel?#pcre是正则表达式库#openssl是安全通信的库 安装apr和apr-until #apr是Apache可移植运行时#apr-until是Apache可移植运行时实用程序库?wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7

ubuntu16.04下源码安装onos1.0.2

由于工作需要,下载安装onos1.0.2的版本,大家看需求可以下载安装更高级的版本 参考链接:http://www.sdnlab.com/14650.html 1.系统环境 Ubuntu16.04 LTS 64bit 下载地址:https://www.ubuntu.com/download/desktop(桌面版) 2.安装依赖(这里的版本选择根据ONOS版本确定的,在上述参考链接中作者有提到----"关于Maven和Karaf版本的说明:此处建议使用推荐的karaf-3.0.3和Maven-3