MySQL源码安装

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: mysql是一个开源的关系型数据库管理系统,现在是oracle公司旗下的一款产品,由C和C++语言编写,可移植性高。 支持在多种操作系统上安装,最常见有AIX,linux,window。mysql因为开源免费,所以受到了目前互联网行业的 欢迎。以mysql作为数据库,linux系统作为操作系统,apache或者nginx作为web服务器,perl/php/python作为服务 端的脚本解释器,就可以搭建起一个免费的网站。被业界称为LNMP或者LAMP

CentOS7 实战源码安装mysql5.7.17数据库服务器
系统:centos 7
数据库:mysql5.7.17
关闭selinux,关闭防火墙:
systemctl stop firewalld.service
vi /etc/selinux/config
SELINUX=disabled

安装cmake工具:
yum -y install cmake

下载boost路径(mysql5.7.17的必需依赖组件):
tar -xf boost_1_59_0.tar.gz

yum安装其它依赖组件:
yum -y install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel ncurses ncurses-devel openssl openssl-devel

创建路径:
mkdir -p /usr/local/mysql
mkdir -p /data/mydata

创建mysql用户:
useradd -M -s /sbin/nologin mysql

使用cmake工具对mysql5.7.17进行环境收集检验与配置相关模块:
解压mysql源码包,并进入解压后的路径
tar -xf mysql-5.7.17.tar.gz
cd mysql-5.7.17

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mydata - DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 - DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DWITH_SSL=system -DWITH_ZLIB=system -DDEFAULT_CHARSET=utf8 - DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost_1_59_0
-DENABLE_DOWNLOADS=1

下面代码才可行,上面的有换行,中途是不能有换行的只能用 \ 代表换行 不然程序会一遇到非符号换行程序将会立即执行不会在执行下面代码
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mydata -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_SSL=system -DWITH_ZLIB=system -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost_1_59_0 -DENABLE_DOWNLOADS=1

出现以下错误提示:
-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (MESSAGE):
  Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:126 (FIND_CURSES)
  cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
  CMakeLists.txt:250 (MYSQL_CHECK_READLINE)

解决方法:
[root@localhost mysql-5.5.11]# rm CMakeCache.txt 回答:yes
[root@localhost mysql-5.5.11]# yum install ncurses-devel
Warning: Bison executable not found in PATH
-- Configuring done
-- Generating done
-- Build files have been written to: /software/mysql-5.5.11
[root@localhost mysql-5.5.11]# yum install bison

参数详细信息解释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql数据库安装目录
-DMYSQL_DATADIR=/data/mydata \ #指定数据库文件路径
-DSYSCONFDIR=/etc \ #指定配置文件目录
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎
-DWITH_READLINE=1 \ #使用readline功能
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ #连接文件位置
-DWITH_SSL=system \ #表示使用系统上的自带的SSL库
-DWITH_ZLIB=system \ #表示使用系统上的自带的ZLIB库
-DDEFAULT_CHARSET=utf8 \ #指定默认使用的字符集编码
-DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost_1_59_0 \ #指定Boost库的位置,mysql5.7必须添加该参数

编译并安装:
make -j 4 && make install

初始化mysql:
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mydata --socket=/tmp/mysql.sock

对mysql的相关路径进行更改权限
chown -R mysql:mysql /usr/local/mysql /data/mydata

修改配置文件:
vi /etc/my.cnf

[mysqld] datadir=/data/mydata socket=/tmp/mysql.sock symbolic-links=0

[mysqld_safe]
log-error=/usr/local/mysql/log/mysql.errlog pid-file=/data/mydata/$hostname.pid

启停mysql:

[root@localhost support-files]# ./mysql.server start
Starting MySQL.2019-08-03T14:19:37.028727Z mysqld_safe error: log-error set to '/usr/local/mysql/log/mysql.errlog', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/data/mydata/localhost.localdomain.pid).

解决:

touch /usr/local/mysql/log/mysql.errlog

chown -R mysql:mysql /usr/local/mysql/log/mysql.errlog

启动:

/usr/local/mysql/support-files/mysql.server start

关闭:

/usr/local/mysql/support-files/mysql.server stop

登录mysql:
/usr/local/mysql/bin/mysql -uroot -p

修改mysql密码:
set password for 'root'@'localhost'=password('密码');

mysql> flush privileges;
ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist

use mysql;

drop table if exists mysql.servers;

CREATE TABLE servers (
Server_name char(64) NOT NULL,
Host char(64) NOT NULL,Db char(64) NOT NULL,
Username char(64) NOT NULL,
Password char(64) NOT NULL,
Port int(4) DEFAULT NULL,
Socket char(64) DEFAULT NULL,
Wrapper char(64) NOT NULL,
Owner char(64) NOT NULL, PRIMARY KEY (Server_name)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';

添加MySQL服务并设置mysql开机启动:
cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql chkconfig --add mysql

chkconfig --list mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息 等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动

使用mysql服务的方式操作启停mysql服务:
service mysql start #启动mysql服务器
service mysql stop #关闭mysql服务器
service mysql restart #重启mysql服务器

设置mysql环境变量
ln -s /usr/local/mysql/bin/* /usr/sbin/

成功使用 mysql -uroot -p 登录服务器

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
关系型数据库 MySQL 数据库
mysql源码安装详解
mysql源码安装详解
310 0
mysql源码安装详解
|
11天前
|
关系型数据库 MySQL Linux
【一键解锁神秘力量!】CentOS 7 通过编译源码方式安装 MySQL 数据库 —— 从零到英雄的数据库安装实战秘籍!
【8月更文挑战第9天】随着业务增长,对数据库的需求日益提高。在 CentOS 7 中,通过编译源码安装 MySQL 可提供更高定制性和灵活性。本文详细介绍从准备环境、下载源码、配置编译参数到安装 MySQL 的全过程,并对比 RPM 包安装方法,帮助读者根据需求选择合适方案。实践时需注意备份数据、选择合适版本、确保安全性和调优性能等要点。
54 1
|
12月前
|
关系型数据库 MySQL C语言
源码安装MySQL8.0 1
源码安装MySQL8.0
117 0
|
10月前
|
关系型数据库 MySQL
麒麟系统源码安装mysql
麒麟系统源码安装mysql
|
12月前
|
关系型数据库 MySQL 数据安全/隐私保护
源码安装MySQL8.0 2
源码安装MySQL8.0
|
关系型数据库 MySQL Linux
阿里云linux源码安装mysql
阿里云linux源码安装mysql
|
存储 关系型数据库 MySQL
源码安装MySQL-5.7.38的脚本
源码安装MySQL-5.7.38的脚本
187 1
|
关系型数据库 MySQL Linux
linux(Centos)源码包安装 mysql-5.7.20.tar.gz
linux(Centos)源码包安装 mysql-5.7.20.tar.gz
245 0
linux(Centos)源码包安装 mysql-5.7.20.tar.gz
|
关系型数据库 MySQL Linux
Linux7.6源码安装Mysql8.0.27,历时1周整理
Linux7.6源码安装Mysql8.0.27,历时1周整理
393 1
Linux7.6源码安装Mysql8.0.27,历时1周整理
|
Ubuntu 关系型数据库 MySQL
linux篇-linux mysql5.6.27源码安装和错误解决
linux篇-linux mysql5.6.27源码安装和错误解决
484 0
linux篇-linux mysql5.6.27源码安装和错误解决