mysql 编译安装


1、创建mysql帐号

[root@localhost ~]# useradd -s /sbin/nologin -M mysql

2、获取安装包

http://mirrors.sohu.com/mysql/

选择自己需要的版本(注意和二进制软件包名字的差异)

格式 包名
mysql源码 mysql-5.7.18.tar.gz
mysql二进制 mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

3、编译安装

(1)下载安装包

[root@localhost ~]# mkdir /opt/soft/

[root@localhost ~]# cd /opt/soft/

[root@localhost soft]# wget -q http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18.tar.gz

(2)解压、配置

解压安装包

[root@localhost soft]# tar zxf mysql-5.7.18.tar.gz

建立目录

[root@localhost soft]# mkdir /opt/mysql57/

[root@localhost soft]# mkdir /opt/mysql57/data

MySQL 5.5版本以后,使用CMake编译工具

安装组件
[root@localhost soft]# yum -y install cmake make gcc gcc-c++ autoconf automake ncurses-devel libaio-devel bison-devel openssl-devel zlib-devel readline-devel

编译配置:

可参考官方文档https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

-DCMAKE_INSTALL_PREFIX 指定mysql安装文件目录
-DMYSQL_DATADIR 指定mysql数据文件目录
-DSYSCONFDIR 指定mysql配置文件目录
-DMYSQL_UNIX_ADDR 指定mysql.sock路径
-DMYSQL_TCP_PORT 指定mysql端口
-DDEFAULT_CHARSET 指定默认字符集
-DDEFAULT_COLLATION 指定默认排序规则(utf8_general_ci快速)
-DENABLED_LOCAL_INFILE 从本地导入数据
-DWITH_INNOBASE_STORAGE_ENGINE 安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE 安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE 安装blackhole存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE 不安装example存储引擎
-DWITHOUT_FEDERATED_STORAGE_ENGINE 不安装federated存储引擎
-DWITHOUT_PARTITION_STORAGE_ENGINE 不安装partition存储引擎
-DWITH_SSL 启用ssl库支持
-DWITH_ZLIB 启用zlib库支持
-DWITH_READLINE 启用readline库支持
-DWITH_LIBWRAP 关闭libwrap库支持
-DEXTRA_CHARSETS 安装所有字符集
-DDOWNLOAD_BOOST MySQL5.7.5后Boost库是必需

如果要重新配置要执行以下命令:

make clean

rm CMakeCache.txt

cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql57 \

-DMYSQL_DATADIR=/opt/mysql57/data \

-DSYSCONFDIR=/etc \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITHOUT_FEDERATED_STORAGE_ENGINE \

-DWITHOUT_PARTITION_STORAGE_ENGINE \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_READLINE=1 \

-DWITH_LIBWRAP=0 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/usr/local/boost

(3)编译安装

[root@localhost mysql-5.7.18]# make -j `grep processor /proc/cpuinfo | wc -l`

[root@localhost mysql-5.7.18]# make install

[root@localhost ~]# ls /opt/mysql57/

bin  COPYING  docs  include  lib  man  mysql-test  README  share  support-files

安装成功!

(4)建立配置文件

注意事项:

1、MySQL5.5数据库默认为用户提供了多个配置文件模板,但是MySQL5.5之后的support-files目录下已经没有配置文件模板了

2、在CentOS6.6版操作系统最小化安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

[root@localhost ~]# mv /etc/my.cnf /etc/my.cnf.bak

#在启动MySQL服务时,会按照一定的顺序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf"

[root@localhost ~]# vi /etc/my.cnf

[client]

port=3306

socket=/tmp/mysql.sock

[mysqld]

user=mysql

port=3306

socket=/tmp/mysql.sock

character-set-server=utf8

collation-server=utf8_general_ci

basedir=/opt/mysql57/

datadir=/opt/mysql57/data/

tmpdir=/opt/mysql57/data/

pid-file=/opt/mysql57/data/mysql.pid

log_error=/opt/mysql57/data/mysql.err

server-id = 137

log_bin = /opt/mysql57/data/binlog

slow_query_log = ON

long_query_time = 2

slow_query_log_file = /opt/mysql57/data/query_log

log_queries_not_using_indexes = ON

以上只是简单示例

(5)授权mysql用户

[root@localhost ~]# chown -R mysql.mysql /opt/mysql57/

(6)初始化数据库

[root@localhost ~]# /opt/mysql57/bin/mysqld --initialize --basedir=/opt/mysql57/ --datadir=/opt/mysql57/data/ --user=mysql

[root@localhost data]# tail -f mysql.err

2017-06-29T13:21:35.392220Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-06-29T13:21:36.231983Z 0 [Warning] InnoDB: New log files created, LSN=45790

2017-06-29T13:21:36.364585Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2017-06-29T13:21:36.434567Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e09a3e70-5ccd-11e7-9dd2-c81f66c50de9.

2017-06-29T13:21:36.435687Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2017-06-29T13:21:36.437654Z 1 [Note] A temporary password is generated for root@localhost: Dh<pE9py7igK

初始化之后的密码文件也保存在这里一份

[root@localhost mysql57]# cat /root/.mysql_secret

# Password set for user 'root@localhost' at 2017-06-29 19:21:38

Dh<pE9py7igK

(7) 建立启动脚本

[root@localhost mysql57]# cp support-files/mysql.server /etc/init.d/mysqld

[root@localhost mysql57]# chmod 755 /etc/init.d/mysqld

[root@localhost mysql57]# vi /etc/init.d/mysqld

basedir=/opt/mysql57/

datadir=/opt/mysql57/data/

mysqld_pid_file_path=/opt/mysql57/data/

[root@localhost data]# /etc/init.d/mysqld  start

Starting MySQL. SUCCESS!

mysql服务开机启动

[root@localhost mysql]# chkconfig --add mysqld

[root@localhost mysql]# chkconfig mysqld on

设置环境变量

[root@localhost data]# echo 'export PATH=$PATH:/opt/mysql57/bin' >> /etc/profile

[root@localhost data]# source /etc/profile

[root@localhost ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/mysql57/bin:/root/bin

[root@localhost ~]# mysql -uroot  -p

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> set password=password('123456');

Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> alter user 'root'@'localhost' password expire never;

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

另一种:

grant all privileges on *.* to root@'%' identified by "123456" with grant option;


注意点:

安装的依赖库的说明

1> cmake

MySQL5.5后使用cmake跨平台工具预编译源码,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。安装最新版本即可。

2> make

mysql源代码是由C和C++语言编写,在linux下使用make对源码进行编译和构建,要求必须安装make 3.75或以上版本

3> gcc4.4.6

GCC是Linux下的C语言编译工具,mysql源码编译完全由C和C++编写,要求必须安装GCC4.4.6或以上版本

4> Boost1.59.0

mysql源码中用到了C++的Boost库,要求必须安装boost1.59.0或以上版本

5> bison2.1

Linux下C/C++语法分析器

6> ncurses

字符终端处理库

转载于:https://blog.51cto.com/opsdev/1943297

mysql 编译安装相关推荐

  1. mysql编译安装原理_MySQL编译安装全过程

    环境介绍 cat /etc/redhat-release uname -a 安装 lrzsz 软件,这个软件和编译安装 mysql 无关,只是为了方便后面通过 xshell 拖拽其他软件 yum -y ...

  2. 安装完MySQL后启动报错_MySQL数据库之mysql编译安装完成后,启动时报错The server quit without updating PID file...

    本文主要向大家介绍了MySQL数据库之mysql编译安装完成后,启动时报错The server quit without updating PID file ,通过具体的内容向大家展现,希望对大家学习 ...

  3. pam mysql编译安装_pam_mysql编译过程排错

    1.报错configure: error: Cannot locate mysql client library. Please check your mysql installation 安装一个包 ...

  4. MySQL编译安装及主从配置

    说明:本实验配置以Cenos6.6和MySQL5.6.35为例 一.编译安装MySQL 1.避免在安装过程中出现问题,先安装系统依赖包 yum install apr autoconf automak ...

  5. linux mysql编译安装mysql_【MySQL安装】Linux下安装MySQL(预编译)

    预编译方式安装MySQL 一.环境说明 操作系统:Redhat Linux 7.2 MySQL版本:5.7 安装介质:mysql-5.7.25-linux-glibc2.12-x86_64.tar.g ...

  6. mysql编译安装后目录空_MySQL源码安装完成后修改安装路径启动问题

    在Linux上源码编译安装完mysql后,又将安装的路径进行了修改,但是发现在设置后环境变量后启动报错,如下: [root@HServer_03 var]# mysqld_safe --user=my ...

  7. mysql 编译安装与rpm安装的区别_编译安装与RPM安装的区别

    建议在安装线上的生产服务器软件包时都用源码安装,这是因为源码安装可以自行调整编译参数,最大化地定制安装结果.这里以MySQL 5线上环境的编译安装来说明之,其编译参数如下所示: ./configure ...

  8. mysql编译安装root密码_MySQL 5.7.11编译安装以及修改root密码小结

    系统是CentOS 6.7 64位的,默认MySQL5.7.11下载到/usr/local/src,安装目录在/app/local/mysql目录下,MySQL数据放置目录/app/local/dat ...

  9. ubuntu mysql 编译_Ubuntu下mysql编译安装

    安装必备工具 编译安装需要其他安装程序支持,推荐采用编译安装各种所需包,此处为了方便,使用ubuntu提供的apt-get install方法安装所需工具 sudo apt-get install c ...

最新文章

  1. 【周末阅读】10年内,19个关键技术将改变世界
  2. 记得【黑镜】中的Whac-A-Mole游戏吗?HoloLens实现了!
  3. 在生产服务器上要注意dbgsvc.exe
  4. 华擎 j3455 时钟 linux,J3455安装centos步骤
  5. [Ext JS 4] 实战之 ComboBox 和 DateField 的点击事件在IE下失效
  6. 显式Intent 和隐式 Intent 的区别
  7. resin mysql_nginx+resin+mysql实现session共享
  8. Flask深度学习模型服务端部署
  9. spline曲线使用
  10. 上海满五非唯一,非普通性住房计算
  11. Java DataSource对象
  12. 荣耀linux电脑开机后黑屏,开机黑屏进不了系统,教您解决电脑开机黑屏进不了系统...
  13. android气泡组件,Android 聊天气泡
  14. 使用HTML写一个完整的注册页面
  15. 信创办公--基于WPS的Word最佳实践系列(快速自定义访问工具栏)——以添加“输出为PPTX”命令为例
  16. 手把手完成智慧路灯的开发,完成设备上云【华为云IoT】
  17. ASP.NET Core 托管和部署(一)【Kestrel】
  18. TYVJ P1092 麻将
  19. OpenCV-Python 调节摄像头分辨率及窗口位置大小
  20. MySql快速复习,看这一篇就够了!

热门文章

  1. Hadoop源代码分析(包mapreduce.lib.input)
  2. Linux纯脚本故障转移集群
  3. 《从问题到程序:用Python学编程和计算》——第3章 基本编程技术 3.1 循环程序设计...
  4. 根据空间线上的两点生成圆柱体 算法
  5. ACL中的wildcard mask
  6. 《花田半亩》有感——午夜静静地震撼着我的生命(不是技术,发在首页,只是因为感动)...
  7. Android进阶:十三、自定义类加载器加载加密类文件
  8. Linux 定时清除日志 Log
  9. thinkphp5.0生命周期
  10. Linkedin 工程师如何优化他们的 Java 代码