Linux下源码安装mysql5.6

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

1、下载mysql到/usr/local/src/

cd /usr/local/src/
wget http://distfiles.macports.org/cmake/cmake-2.8.12.tar.gz
wget http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz

 

2、编译安装cmake编译安装 mysql(最新版本都需要 cmake 编译安装)

[root@server2 src]# tar -zxvfcmake-2.8.12.tar.gz
[root@server2 src]# cd cmake-2.8.12
[root@server2 cmake-2.8.12]# ./bootstrap

Log of errors: /usr/local/src/cmake-2.8.12/Bootstrap.cmk/cmake_bootstrap.log

解决办法:


安装LAMP所需要的环境

yum -y install make gcc* gcc-c++ zlib-devel libtool libtool-ltdllibtool-ltdl-devel bison ncurses-devel


安装好所需要的环境包后,重新执行./bootstrap

[root@server2 cmake-2.8.12]# ./bootstrap
[root@server2 cmake-2.8.12]# echo $?        
0
[root@server2 cmake-2.8.12]# gmake
[root@server2 cmake-2.8.12]# echo $?
0
[root@server2 cmake-2.8.12]# gmake install
[root@server2 cmake-2.8.12]# echo $?
0


 

3、建立mysql用户

[root@server1 src]# groupadd mysql
[root@server1 src]# useradd -g mysql -s/sbin/nologin -M mysql
[root@server1 src]# id mysql
uid=500(mysql) gid=500(mysql)groups=500(mysql)

 

4、创建数据库存放的目录,并授权

[root@server1 mysql]# mkdir -p /data/mysql        
[root@server1 mysql]# chown -R mysql.mysql /data/mysql/
[root@server1 mysql]# chown -R mysql.mysql /usr/local/mysql/.    //数据库安装路径

 

5、编译安装mysql

[root@server2 src]# tar -zxvfmysql-5.6.35.tar.gz
[root@server2 src]# cd mysql-5.6.35
[root@server2 mysql-5.6.35]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DMYSQL_UNIX_ADDR=/data/mysql/mysql_3306.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=utf8,gbk \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1\ 
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_EENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DMYSQL_TCP_PORT=3306

 

参数说明:

-DCMAKE_INSTALL_PREFIX             #指定安装路径

-DMYSQL_UNIX_ADDR                    #数据库socket文件路径

-DDEFAULT_CHARSET                      #默认字符集

-DDEFAULT_COLLATION                 #默认编码

-DWITH_EXTRA_CHARSETS             #额外编码

-DWITH_PERFSCHEMA_STORAGE_ENGINE                       #启用PERFSCHEMA引擎支持

-DWITH_FEDERATED_STORAGE_ENGINE                          #启用FEDERATED引擎支持

-DWITH_PARTITION_STORAGE_ENGINE                           #启用PARTITION引擎支持

-DWITH_ARCHIVE_STORAGE_EENGINE                             #启用ARCHIVE引擎支持

-DWITH_READLINE               #使用readline功能

-DMYSQL_DATADIR                         #数据库数据存放目录

-DMYSQL_TCP_PORT                       #数据库TCP/IP端口

 

 

[root@server2 mysql-5.6.35]# echo $?
0
[root@server2 mysql-5.6.35]# make
[root@server2 mysql-5.6.35]# echo $?
0
[root@server2 mysql-5.6.35]# make install
[root@server2 mysql-5.6.35]# echo $?
0


 

bin              目录包含客户端工具及mysqld

data           目录存放数据库数据文件及日志文件

docs          目录包含info格式的用户手册

include      目录包含mysql头文件

lib                       目录包含相关lib

mysql-test         目录包含mysql的一些测试脚本文件

scripts      目录存放mysql_install_db初始化文件

share         目录存放各种支持文件,包括错误信息,语言编码支持,sql安装脚本等。

Sqlbench           目录存放benchmark脚本

support-file                目录存放mysql配置文件模板


6、复制mysql配置文件到/etc/my.cnf

[root@server2 mysql]# rm –f /etc/my.cnf
[root@server2 mysql]# cd support-files/
[root@server2 support-files]# ls
binary-configure  magic  mysqld_multi.server mysql-log-rotate  mysql.server
[root@server2 support-files]# cp /usr/local/mysql/support-files/ /etc/my.cnf


编辑/etc/my.cnf配置文件,添加以下行

 user = mysql                        //用户
 basedir = /usr/local/mysql          //基本目录
 datadir = /data/mysql               //数据库保存目录
 port = 3306              //数据库端口
 socket = /data/mysql/mysql_3306.sock               
 log-error = /data/mysql/mysql_error.log     //数据库错误日志文件
 pid-file = /data/mysql/mysql.pid            //数据库进程占用PID号
 
 #内存使用限制
 performance_schema_max_table_instances=400  
 table_definition_cache=400  
 table_open_cache=256

 

 

7、初始化数据库

[root@server2 mysql]#/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
[root@server2 mysql]# echo $?                  
0

 

初始化数据库常见的问题:   系统版本与数据库版本不一致,导致初始化数据库出错。

 

 

8、复制mysql启动脚本到/etc/init.d/mysqld

[root@server2 support-files]# cp /usr/local/mysql/support-files/mysql.server/etc/init.d/mysqld
[root@server2 support-files]# chmod +x/etc/init.d/mysqld

 

9、加入开机自启动mysql服务

[root@server2 mysql]# chmod +x/etc/init.d/mysqld
[root@server2 mysql]# chkconfig --addmysqld
[root@server2 mysql]# chkconfig –level 35 mysqldon

 

10、  启动mysql服务

[root@server2 mysql]# /etc/init.d/mysqldstart
Starting MySQL.                                            [   ]

 

11、  msyql服务启动后,查看/data/mysql多了一些文件

[root@server2 mysql]# ls /data/mysql/
auto.cnf ib_logfile0  mysql     mysql_error.log  performance_schema
ibdata1  ib_logfile1  mysql_3306.sock  mysql.pid        test
 
[root@server2 mysql]# netstat -lnapt |grepmysqld                    
tcp       0      0 :::3306      :::*        LISTEN      3195/mysqld


 

12、加入环境变量

[root@server2 ~]# vim/etc/profile.d/mysql.sh

#!/bin/bash
exportPATH="$PATH:/usr/local/mysql/bin"

[root@server2 ~]# source/etc/profile.d/mysql.sh

 

13、  新加的mysql没有设置root密码,可以通过下面命令设置root密码:

#/usr/local/mysql/bin/mysqladmin -S /data/mysql/mysql_3306.sock-u root password 'new-password'

 

14、登录mysql

[root@server2 ~]# mysql                

ERROR 2002 (HY000): Can'tconnect to local MySQL server through socket '/tmp/mysql.sock' (2)              

问题:/tmp目录下没找到mysql.sock,解决办法有三种:

1)        将/data/mysql/mysql_3306.sock做软链接到/tmp/mysql.sock

         ln -s /data/mysql/mysql_3306.sock/tmp/mysql.sock

2)        修改/etc/my.cnf,添加以下行

[client]

socket = /data/mysql/mysql_3306.sock

3)  执行以下命令指定socket连接文件,mysql –S /data/mysql/mysql_3306.sock

[root@server2 ~]# mysql -S/data/mysql/mysql_3306.sock



本文转自 小杨_Ivan 51CTO博客,原文链接:http://blog.51cto.com/aqiang/1895549


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
344
分享
相关文章
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
63 28
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
200 8
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
310 7
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
384 3
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
212 3
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
304 3
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
326 2
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
346 3
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
825 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等