编译安装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库卸载,源码编译安装高版本
[[email protected] ~]# yum -y remove boost-*
卸载系统自带的mysql
[[email protected] ~]# yum -y remove mysql
把开发包安装组装上:
[[email protected] ~]# yum groupinstall "Development Tools" "Development Libraries" –y
解决依赖环境
[[email protected] ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel autoconf automake zlib zlib-devel openssl openssl-devel pcre*
创建运行用户:
[[email protected]~]# groupadd mysql
[[email protected]~]# useradd -M -s /sbin/nologin -r -g mysql mysql
解压源码包:
[[email protected] ~]# unzip -j LAMP_for_centos7.4.zip
[[email protected] ~]# tar xf mysql-boost-5.7.19.tar.gz -C /usr/local/src/
[[email protected] ~]# cd /usr/local/src/mysql-5.7.19/
[[email protected] 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核心数
[[email protected] mysql-5.7.19]# grep processor /proc/cpuinfo | wc -l
1
这些编译参数的帮助寻找方法:
http://www.mysql.com→→Documentation→→选择对应的版本(5.7)Installation & Upgrades→→Installing 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
修改目录权限
[[email protected] mysql-5.7.19]# chown -R mysql:mysql /var/lib/mysql/
生成配置文件
备份配置文件
[[email protected] mysql-5.7.19]# mv /etc/my.cnf{,.bak}
自行创建my.cnf配置文件
[[email protected] 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
生成启动脚本:
[[email protected] ~]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld
[[email protected] ~]# chmod +x !$
chmod +x /etc/init.d/mysqld
[[email protected] ~]# chkconfig --add mysqld
[[email protected] ~]# chkconfig mysqld on
删除数据目录下的文件:
[[email protected] ~]# cd /var/lib/mysql/data/
[[email protected] data]# rm -rf *
初始mysql
[[email protected] data] /var/lib/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data
配置环境变量
[[email protected] ~]# vim /etc/profile
export MYSQL_HOME=/var/lib/mysql
export PATH=$PATH:$MYSQL_HOME/bin
使修改生效
[[email protected] ~]# source /etc/profile
或:
[[email protected] ~]# ln -s /var/lib/mysql/bin/* /usr/local/bin/
启动服务:
[[email protected] data]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
登录报错:
[[email protected] ~]# mysql
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
解决:找到mysql的安装路径,进到路径里面登录MySQL
[[email protected] support-files]# cd /var/lib/mysql/bin/
[[email protected] 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
重新登录测试:
[[email protected] ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[[email protected] ~]# mysql
mysql>
原文地址:http://blog.51cto.com/12446548/2070606