1> cmake
MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。安装最新版本即可。
2> make3.75
mysql源代码是由C和C++语言编写,在Linux下使用make对源码进行编译和构建,要求必须安装make 3.75或以上版本
3> gcc4.4.6
GCC是Linux下的C语言编译工具,mysql源码编译完全由C和C++编写,要求必须安装GCC4.4.6或以上版本
4> Boost1.59.0
mysql源码中用到了C++的Boost库,要求必须安装boost1.59.0或以上版本
5> bison2.1
Linux下C/C++语法分析器
6> ncurses
字符终端处理库
所以在安装前,需先安装相关的依赖库:
yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel
下载Boost1.59.0源代码,并解压到/usr/local/目录下
wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar -zxvf boost_1_59_0.tar.gz -C /usr/local/
新版mysql5.7.11带boost和不带boost的源码安装
这里建议下载自带boost的安装包
wget http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.7/mysql-boost-5.7.17.tar.gz
tar zxf mysql-boost-5.7.17.tar.gz
cd mysql-5.7.17
mysql的data目录
mkdir -p /website/mysql/data
执行cmke配置
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/website/mysql/data -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=boost
需要注意的是上面配置中的DMYSQL_UNIX_ADDR和DMYSQL_DATADIR的路径,都需要授予读写的权限,执行安装时会往这两个目录写入文件的
配置成功提示如下:
执行完 cmake 的配置过程,就需要开始准备最为漫长的编译过程,根据不同机器的配置,时间大约在1小时左右
make
编译执行到45%之后会一段时间画面没有刷新,不要以为是卡住了,其实是需要很长时间执行,只能耐心等待
然后
make install
安装成功提示:
cmake执行配置过程中若有错误发生,需要先删除缓存文件才能重新编译
rm -f CMakeCache.txt
创建mysql组和用户
groupadd mysql
useradd -r -g mysql mysql
配置mysql
切换到mysql的data目录,给mysql组用户授权
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
在初始化之前记得给 DMYSQL_UNIX_ADDR 和 DMYSQL_DATADIR指定的目录 赋予写的权限
chmod -R 777 /usr/local/mysql
chmod -R 777 /website
初始化(这里的版本需要注意以下,5.7.6前后版本不同)
bin/mysql_install_db --user=mysql # Before MySQL 5.7.6
bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up
安装ssl
bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up
初始化时注意查看返回信息,有错误会提示错误,若没有错误则会生成一个临时密码
:f(NYrtMi5fh 为临时密码
设置权限
chown -R root .
bin/mysqld_safe --user=mysql
cp support-files/my-default.cnf /etc/my.cnf
vi /etc/my.cnf
修改相应的参数
配置mysql服务
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld # 添加到系统服务
chkconfig mysqld on # 开机启动
启动服务 service mysqld start # 启动mysql服务
查看mysql进程
ps -ef|grep mysql
设置mysql环境变量 vi /etc/profile
加上一行export PATH=$PATH:/usr/local/mysql/bin
马上生效
source /etc/profile
修改登录密码
mysql -u root -p 回车再输入密码再回车
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
允许远程登录访问
方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"
#mysql -u root -proot mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user;mysql>flush privileges;
方法二、直接授权(推荐)
从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
# mysql -u root -proot mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION; mysql>flush privileges;