本文实例讲述了centos7环境下源码安装mysql5.7.16的方法。分享给大家供大家参考,具体如下:

一、下载源码包

下载mysql源码包

http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.16.tar.gz

二、安装约定:

用户名:mysql
安装目录:/data/mysql
数据库目录:/data/mysql/data

三、安装准备

1、添加用户

> useradd -s /sbin/nologin mysql
> mkdir /data/mysql
> chown -R mysql:mysql /data/mysql
> yum install gcc gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel
> yum install boost boost-devel
> tar -xf mysql-5.7.16.tar.gz
> cd /data/mysql-5.7.16> cmake \-DMYSQL_USER=mysql \-DCMAKE_INSTALL_PREFIX=/data/mysql \-DMYSQL_DATADIR=/data/mysql/data \-DSYSCONFDIR=/data/mysql \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DINSTALL_PLUGINDIR=/data/mysql/plugin \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DDOWNLOAD_BOOST=1 \-DWITH_BOOST=/usr/local/boost

关于上面参数的解释如下:

#mysql用户名-DMYSQL_USER=mysql#安装路径-DCMAKE_INSTALL_PREFIX=/data/mysql#数据文件存放位置-DMYSQL_DATADIR=/data/mysql/data#my.cnf路径-DSYSCONFDIR=/data/mysql#支持MyIASM引擎-DWITH_MYISAM_STORAGE_ENGINE=1#支持InnoDB引擎-DWITH_INNOBASE_STORAGE_ENGINE=1#支持Memory引擎-DWITH_MEMORY_STORAGE_ENGINE=1#插件文件及配置路径-DINSTALL_PLUGINDIR=/data/mysql/plugin#快捷键功能(我没用过)-DWITH_READLINE=1#连接数据库socket路径-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock#端口-DMYSQL_TCP_PORT=3306#允许从本地导入数据-DENABLED_LOCAL_INFILE=1#安装支持数据库分区-DWITH_PARTITION_STORAGE_ENGINE=1#安装所有的字符集-DEXTRA_CHARSETS=all#默认字符-DDEFAULT_CHARSET=utf8#校验字符-DDEFAULT_COLLATION=utf8_general_ci#会自动下载boost-DDOWNLOAD_BOOST=1#指定boost目录-DWITH_BOOST=/usr/local/boost
> make && make install
> cp /data/mysql/support-files/my-default.cnf /data/mysql/my.cnf
> /data/mysql/bin/mysqld \--defaults-file=/data/mysql/my.cnf \--initialize \--user=mysql \--basedir=/data/mysql \--datadir=/data/mysql/data \

unknown variable 'defaults-file=/data/mysql/my.cnf'

请保证--defaults-file配置选项在最前面。

如果出现如下信息:

[ERROR] --initialize specified but the data directory has files in it. Aborting.

请保证的你的datadir目录下为空,如果有文件则删除。

mysql5.7版本通过--initialize安装会随机生成root密码,请注意保存。

如果希望生成空密码请使用--initialize-insecure配置。

修改mysql目录拥有者

> chown -R mysql:mysql /data/mysql

由于我们在编译安装mysql的时候设置了它的配置文件目录为/data/mysql,所以删掉/etc/my.cnf

以免受影响。

> rm -rf /etc/my.cnf> vi /data/mysql/my.cnf
[client]default-character-set = utf8port = 3306socket = /data/mysql/mysql.sock[mysql]default-character-set = utf8[mysqld]skip-name-resolvebasedir = /data/mysqldatadir = /data/mysql/dataport = 3306server_id = 10socket = /data/mysql/mysql.sockcharacter-set-server = utf8max_connections = 200default-storage-engine = INNODBlog-bin=mysql-bin
> cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld> chmod 755 /etc/init.d/mysqld> chkconfig --add mysqld
> service mysqld start
> echo "export PATH=/data/mysql/bin/:$PATH" >> /etc/profile> source /etc/profile
> mysql -uroot -p> set password=password('123456');> alter user 'root'@'localhost' password expire never;> flush privileges;

希望本文所述对大家MySQL数据库计有所帮助。

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Android快速开发不可或缺的11个工具类(下载)
  3. 2017 github 上android 源码(适合工作中开发)
  4. 2014.01.21 ——— android 关联android-support源码
  5. Android(安卓)- Manifest 文件 详解
  6. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  7. 细数Android(安卓)Studio中使用junit4测试框架中的坑
  8. Android内容提供者源码
  9. android源码下载方式

随机推荐

  1. Android高级工程师成长路线
  2. Android :Process xxxxx (pid xxxxx) has
  3. Android在Log中打印出当前的调用栈
  4. Android自学笔记(番外篇):全面搭建Linux环境
  5. Android中回调接口的使用
  6. android——android中测试框架AndroidTes
  7. 简单控件的UI界面设计
  8. 修复android获取ip地址失败 Fix Obtainin
  9. 【转】Android 字符串的加密和解密
  10. Android获取activity的所有子view(使用到