ubuntu mysql5.7源码安装

  最近在学习搭建LNMP环境,nginx相对来说还是比较好搭的,但是mysql就太坑爹了,之前在网上查资料的时候看到一个人说它花了一周的时间源码搭建mysql,刚开始内心还有点嘲笑他,但是此时此刻我发现是我错了,周日花了一天的时间使用源码安装了mysql,累感不爱。在ubuntu下mysql可以使用apt-get命令一步安装,仅做少许配置,但是源码安装真是掉了一层皮,但是源码安装又是一个运维必须要会的一个东西,所以必须学习。

  1、下载mysql

  这个是最基本的第一步,下载地址http://dev.mysql.com/downloads/mysql/,我选择了5.7版本的,这一版相对前几版在配置上变化较大,这也是在我之后搭建的过程中发现的,但是后悔已经来不及了。

  2、下载相关依赖

sudo apt-get install cmake libncurses5-dev  bison g++

  这里要注意的是ubuntu下的libncurses5-dev在红帽下是另一个名字,这个请自行百度。

  3、创建mysql用户、组

groupadd mysql
useradd -r mysql -G mysql

  4、解压mysql

  我把下载好的mysql压缩包放在了/root目录下,因为之后要多次使用root权限,索性直接切换到root了。  

tar -xzvf mysql-5.7.9.tar.gz
cd mysql-5.7.9.tar.gz

  5、生成配置文件

  在mysql5.7以前,使用configure生成配置文件,但是5.7是使用cmake生成的。这也就是为什么之前要安装cmake的原因。

  在这里要注意的一点是需要事先安装好boost,如果没有,在cmake最后再加个参数-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

即可,系统会自动帮你下载解压安装boost

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
make&&make install

参数含义:    

-DCMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
-DMYSQL_DATADIR:数据文件目录
-DDEFAULT_CHARSET:指定服务器默认编码,默认latin1
-DDEFAULT_COLLATION:指定服务器默认的整理编码,默认latin1_general_ci
-DMYSQL_UNIX_ADDR:连接数据库socket文件路径,默认/tmp/mysql.sock

-DENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
-DWITH_DEBUG bool值,表示是否开启debug模式
-DWITH_MYISAM_STORAGE_ENGINE= MYISAM引擎支持(1|0)
-DWITH_INNOBASE_STORAGE_ENGINE= innoDB引擎支持(1|0)
-DWITH_MEMORY_STORAGE_ENGINE= MEMORY引擎支持(1|0)
-DWITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
SYSCONFDIR:初始化参数文件目录
-DMYSQL_TCP_PORT:服务端口号,默认3306
-DWITH_COMMENT:指定编译备注信息

  6、编译安装

  创建安装目录
    mkdir -p /usr/local/mysql/data  设置权限
    chown -R mysql:mysql /usr/local/mysql
  编译并安装
    make&&make install

  7、配置(这里的问题最多,出了很多问题,到现在只有这个勉强能用的方法)

  ①复制my.cnf配置文件

    cp /usr/local/mysql/support-files/***.cnf /etc/my.cnf

  ②配置/etc/my.conf

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/mysql_error.log
pid-file=/usr/local/mysql/mysql.pid

#socket=/usr/local/mysql/mysql.sock
user=mysql
port=3306
explicit_defaults_for_timestamp=true

[mysqld_safe]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/mysql_error.log
pid-file=/usr/local/mysql/mysql.pid

  ③复制权限文件

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

  ④初始化MySQL(这步完成后/usr/local/mysql/data目录下有数据了,本来是空的)

    sudo bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid 生成无密码用户

    或sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid 生成随机密码用户

  ⑤启动MySQL(修改密码)

    如果不先使用mysqld_safe直接启动mysql的话,就会报错

    /usr/local/mysql/bin/mysqld_safe --user=mysql &

    service mysql start

    /usr/local/bin/mysql -u root -h 127.0.0.1 --skip-password(无密码)

    或/usr/lcoal/bin/mysql -u root -h 127.0.0.1 -p (有密码)

    mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘new-password‘;  (注意前面的mysql>是进入mysql的标志,不是命令)

    mysql> quit

    service mysql stop

    可以看到退出mysql服务时是把mysqld_safe也关闭的

  ⑧启动mysql(登陆)

    /usr/local/bin/mysqld_safe &

    service mysql start

    mysql -u root -p

  从上面可以看出每次启动mysql时都要先启动mysqld_safe,在启动mysql,关闭mysql时会把mysqld_safe一起关掉,所以这就是我认为安装的不完美的地方,如果是终端apt-get安装的话从来没有发生过这种情况。看了mysql的官网在介绍安装的时候也是这么讲的也许是5.7版本就是这样操作的,连接:

  http://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

  http://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysql-install-db.html

    

  

时间: 2024-10-16 22:25:34

ubuntu mysql5.7源码安装的相关文章

linux小白 mysql5.0源码安装配置

安装mysql-5.0.45.tar.gz(该软件包下载地址:http://www.filewatcher.com/m/mysql-5.0.45.tar.gz.24433261-0.html) # groupadd mysql              #添加mysql组 # useradd -g mysql mysql      #添加mysql用户,且加入mysql组 --------------------编译过程---------------------------------- # t

ubuntu php5.6源码安装

今天又花了一天时间装了php,感觉php的源码安装也挺麻烦的,整个过程各种报错. 下篇文章准备整合所有查找到的报错和解决方法. php和nginx一样,在安装前需要装一堆的依赖.有libmcrypt.mcrypt.mhash.其实远不止这三个包,在后面的configure和make中还会陆陆续续安装一些依赖. 1.安装libmcrypt.mcrypt.mhash(整个过程都在/usr/local/src/php目录下) #创建/usr/local/src/php目录并进入mkdir /usr/l

Linux MySQL5.5源码安装

环境:CentOS7,MySQL5.5 1.MySQL5.5源码下载 Oracle的网站打开较慢,http://mirrors.sohu.com/mysql/这里提供了MySQL的镜像.一般的,Linux的程序安装有两种方式:A利用RPM,YUM等工具 B手动安装.其中手动安装又有两种方式,一种是直接下载已经编译好的二进制文件,另一种是下载源码手动编译.我们这里尝试下载源码手动编译的方式. 如何区分下载文件列表的文件是已编译好的二进制文件,还是源码文件: A.文件大小.由于从源码编译为二进制文件

MYSQL5.5源码安装 linux下

首先安装必要的库 yum -y install gcc* ###### 安装 MYSQL ######首先安装camke 一.支持YUM,则  yum install -y cmake 二.也可以源码安装 cd /usr/local/src #下载cmake wget http://www.cmake.org/files/v2.8/cmake-2.8.7.tar.gz tar zxvf cmake-2.8.7.tar.gz cd cmake-2.8.7 #安装cmake ./configure

MYSQL5.6源码安装配置

本安装将MySQL的数据文件与执行文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本. 在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是?/usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,

记录mysql5.7源码安装流程

今天给别人的linux服务器安装mysql,选择使用源码安装的,在安装的过程中,还是遇到了一些问题,主要是在一下几点:1.cmake的时候,有些参数配置的路径老是报不存或是提示你查看CMakeOutput.log等日志文件.2.mysql 编译和安装完成后,初始化后,启动失败.这个就看mysql错误日子就好了,今天我就老是初始化失败.主要原因是mysql配置文件my.cnf中的basedir.datadir还有日志文件路径的问题,主要体现在权限和文件是否存在的问题. 现在就把主要流程记录下来,方

大环境下MySQL5.6源码安装实战一步步教你 CentOS6.5_64bit下编译安装[email protected]

l转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/44813039 一.关闭防火墙 chkconfig iptables off service iptables stop 二.检查操作系统上是否安装了MySQL[[email protected] backup]# rpm -qa |grep mysqlqt-mysql-4.6.2-26.el6_4.x86_64mysql-5.1.71-1.el6.x86_64mysql-server-

CentOS6.5+mysql5.1源码安装过程

一:先安装依赖包(不然配置的时候会报错的!) yum -y install ncurses* libtermcap* gcc-c++* 新建mysql用户 [[email protected]]# groupadd mysql [[email protected]]# useradd -g mysql -s /sbin/nologin mysql 二:获取mysql源码包 mysql官网下载源码即可 三:安装mysql [[email protected] mysql]# tar xvf mys

mysql5.5源码安装

1.准备工作 groupadd mysql useradd -r -g mysql mysql mkdir /usr/local/mysql/        #创建mysql安装目录 mkdir /data/mysql               #创建数据存放目录 chown mysql:mysql -R /data/mysql yum install -y gcc gcc-c++ libtool autoconf automake imake libxml2-devel expat-deve