编译安装 MySQL
注释: 编译 mysql 的时候会比较耗资源, 建议在虚拟机下把内存提升到 1-2G
MySQL 是一个关系型数据库管理系统, 由瑞典 MySQL AB 公司开发, 目前属于 Oracle 旗下产品 MySQL 是最流行的关系型数据库管理系统之一, 在 web 应用方面, MySQL 是最好的 RDBMS (Relational Database Management System, 关系数据库管理系统) 应用软件
MySQL 是一种关系数据库管理系统, 关系数据库将数据保存在不同的表中, 而不是将所有数据放在一个大仓库内, 这样就增加了速度并提高了灵活性
MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言 MySQL 软件采用了双授权政策, 分为社区版和商业版, 由于其体积小速度快总体拥有成本低, 尤其是开放源码这一特点, 一般中小型网站的开发都选择 MySQL 作为网站数据库
源码包下载地址:
下载地址:
- http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.19.tar.gz
- http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
MySQL 从 5.7 版本之后, boost 是必须的, 建议把系统自带的 boost 库卸载, 源码编译安装高版本
[root@localhost ~]# yum -y remove boost-*
卸载系统自带的 mysql
[root@localhost ~]# yum -y remove mysql
把开发包安装组装上:
[root@localhost ~]# yum groupinstall "Development Tools" "Development Libraries" y
解决依赖环境
[root@localhost ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel autoconf automake zlib zlib-devel openssl openssl-devel pcre*
创建运行用户:
- [root@localhost~]# groupadd mysql
- [root@localhost~]# useradd -M -s /sbin/nologin -r -g mysql mysql
解压源码包:
- [root@localhost ~]# unzip -j LAMP_for_centos7.4.zip
- [root@localhost ~]# tar xf mysql-boost-5.7.19.tar.gz -C /usr/local/src/
- [root@localhost ~]# cd /usr/local/src/mysql-5.7.19/
- [root@localhost mysql-5.7.19]# cmake -DCMAKE_INSTALL_PREFIX=/var/lib/mysql -DMYSQL_DATADIR=/var/lib/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/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/src/mysql-5.7.19/boost/boost_1_59_0 && make && make install
- make -j 4 #注:-j 用来指定 CPU 核心数, 可加快编译速度 加 -j 4 我用 4 核心来编译的, 可以提高编译速度; 当然你要确定 CPU 多少核心
查看服务器 CPU 核心数
- [root@localhost mysql-5.7.19]# grep processor /proc/cpuinfo | wc -l
- 1
这些编译参数的帮助寻找方法:
http://www.mysql.comDocumentation 选择对应的版本 (5.7)Installation & UpgradesInstalling MySQL from Source MySQL Source-Configuration Options
最终的 URL https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
DCMAKE_INSTALL_PREFIX: 指定 MySQL 程序的安装目录, 默认 / usr/local/mysql
DEFAULT_CHARSET: 指定服务器默认字符集, 默认 latin1
DEFAULT_COLLATION: 指定服务器默认的校对规则, 默认 latin1_general_ci
ENABLED_LOCAL_INFILE: 指定是否允许本地执行 LOAD DATA INFILE, 默认 OFF
WITH_COMMENT: 指定编译备注信息
WITH_xxx_STORAGE_ENGINE: 指定静态编译到 mysql 的存储引擎, MyISAM,MERGE,MEMBER 以及 CSV 四种引擎默认即被编译至服务器, 不需要特别指定
WITHOUT_xxx_STORAGE_ENGINE: 指定不编译的存储引擎
SYSCONFDIR: 初始化参数文件目录
MYSQL_DATADIR: 数据文件目录
MYSQL_TCP_PORT: 服务端口号, 默认 3306
MYSQL_UNIX_ADDR:socket 文件路径, 默认 / tmp/mysql.sock
修改目录权限
[root@localhost mysql-5.7.19]# chown -R mysql:mysql /var/lib/mysql/
生成配置文件
备份配置文件
[root@localhost mysql-5.7.19]# mv /etc/my.cnf{,.bak}
自行创建 my.cnf 配置文件
- [root@localhost mysql-5.7.19]# vim /etc/my.cnf
- [mysqld]
basedir=/var/lib/mysql 安装路径
datadir=/var/lib/mysql/data 数据库存放目录
port=3306 指定端口
- socket=/var/lib/mysql/mysql.sock
- symbolic-links=0
character-set-server=utf8 字符集
log-error=/var/log/mysqld.log 错误日志
- #pid-file=/var/run/mysqld/mysqld.pid
- [mysql]
- socket=/var/lib/mysql/mysql.sock
- [client]
- socket=/var/lib/mysql/mysql.sock
- #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
生成启动脚本:
- [root@localhost ~]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld
- [root@localhost ~]# chmod +x !$
- chmod +x /etc/init.d/mysqld
- [root@localhost ~]# chkconfig --add mysqld
- [root@localhost ~]# chkconfig mysqld on
删除数据目录下的文件:
- [root@localhost~]#cd /
- var / lib / mysql / data / [root@localhost data]#rm - rf *
初始 mysql
[root@localhost data] /var/lib/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data
配置环境变量
- [root@localhost ~]# vim /etc/profile
- export MYSQL_HOME=/var/lib/mysql
- export PATH=$PATH:$MYSQL_HOME/bin
使修改生效
[root@localhost ~]# source /etc/profile
或:
[root@localhost ~]# ln -s /var/lib/mysql/bin/* /usr/local/bin/
启动服务:
- [root@localhost data]# /etc/init.d/mysqld start
- Starting MySQL. SUCCESS!
登录报错:
- [root@localhost~]#mysql ERROR 1045(28000) : Access denied
- for user root@localhost(using password: NO)
解决: 找到 mysql 的安装路径, 进到路径里面登录 MySQL
- [root@localhost support-files]# cd /var/lib/mysql/bin/
- [root@localhost bin]# ./mysql -p
- Enter password:
- mysql> set password for root@localhost =password();
- Query OK, 0 rows affected, 1 warning (0.00 sec)
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
- mysql> exit
- Bye
重新登录测试:
- [root@localhost ~]# /etc/init.d/mysqld restart
- Shutting down MySQL.. SUCCESS!
- Starting MySQL. SUCCESS!
- [root@localhost ~]# mysql
- mysql>
来源: http://www.bubuko.com/infodetail-2492883.html