linux 源码编译安装MySQL
源码编译安装mysql
一 准备工作 添加一块硬盘 用该硬盘创建逻辑卷
1检测新此盘
df -hT
2创建物理卷
pvcreate /dev/sd。。。
3创建卷组
vgcreate 卷组名 /dev/sd。。。
4创建逻辑卷
lvcreate -L 几G -n 逻辑卷名 卷组名
5查看一下创建的逻辑卷
lvscan
6格式化逻辑卷
mkfs.xfs /dev/卷组名/逻辑卷名
7挂在逻辑卷
vim /etc/fstab
8挂在所有
mount -a
二 安装mysql
1检测是否安装mariadb数据库
rpm -qa |grep mariadb
2如果有则卸载
rpm -e --nodeps mariadb-libs
#rpm --nodeps选项为强制执行
3安装cmake
yum install -y cmake
4创建mysql用户
useradd -M -s /sbin/nologin mysql
5创建mysql数据目录并修改文件的属主/组
mkdir /mydata/data -p
chown -R mysql.mysql /mydata/data/
6下载mysql的软件压缩包并解压
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.17.tar.gz
tar zxf mysql-boots-5.7.17.tar.gz
#如果上方链接不能用则
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17.tar.gz
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
并且解压mysql
tar zxf mysql-5.7.17.tar.gz
创建/usr/local/boots目录 用来存放boots安装包 并把下载好的boots包剪切到此并解压
mkdir -p /usr/local/boots
mv ./boost_1_59_0.tar.gz /usr/local/boots/
cd /usr/local/boots/
tar zxf boots_1_59_0.tar.gz
并且把下方mysql生成环境中的 -DWITH_BOOST=boost/boost_1_59_0/ 修改到最后一行为-DWITH_BOOST=/usr/local/boost \
7 进入mysql解压后的目录
cd mysql-5.7.17
8编译mysql生成环境
cmake \ #cmake . -L 查看帮助
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安装目录
-DMYSQL_UINX_ADDR=/tmp/mysql.sock \ #指定mysql的套接字文件路径
-DDEFAULT_CHARSET=utf8 \ #指定mysql的字符集
-DDEFAULT_COLLATION=utf8_general_cI \ #指定MySQL排序规则
-DMYSQL_DATADIR=/mydata/data \ #指定mysql的数据目录
-DMYSQL_TCP_PORT=3306 \ #指定MySQL启动的端口号
-DWITH_BOOST=boost/boost_1_59_0/ \ #指定boost库文件
-DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #支持archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #支持blackhole存储引擎
#错误1
CMake Error:your C compiler : "CMAKE_C_COMPOLER-NOTFOUND"was not found . please set CMAKE_C_COMPILER to a valid
compiler path or name .
CMake Error: your CXX compiler : "CMAKE_CXX_COMPILER-NOTFOUND" was not found . please set CMAKE_CXX_COMPILER to a
calid compiler path or name.
CMake Error at cmake/os/Linux.cmake : 41 (MESSAGE) :
Unsupported compiler!
Call Stack (most recent call first):
CMckeLists.txt:162(INCLUDE)
#解决办法
yum groupinstall -y "Development Tools" "Server Platform Development" "Desktop Platform Development"
#错误2
CMake Error at cmake/readline.cmake:64(MESSAGE):
Curses library not found. Please install appropriate package,
#解决办法
yum install -y ncurses-devel.x86_64
#如果编译过程报错 那么要删除mysql解压后的目录中的CMakeCache.txt
rm -rf CMakeCache.txt
9 检测并安装mysql
make
10安装mysql
make install
10修改/usr/local/mysql/的属主/组
chown -R root.mysql /usr/local/mysql/
三初始化数据库
1设置初始化的配置
/usr/local/mysql/bin/mysqld --initialize \ #初始化
--user=mysql \ #mysql启动用户
--basedir=/usr/local/mysql \ #MySQL安装目录
--datedir=/mydata/data #mysql数据目录
#之后会有一条
2017-03-10T08:21:12.889095Z 1 [Note] A temporary password is generated for : xxxxxxxx
#:后的 xxxxxxx是你的mysql初始密码
#错误1、[ERROR] --initialize specified but the data directory has files in it. Abort
[错误] -初始化指定,但数据目录中有文件。中止
解决方法:将数据目录下已存在的文件全部删除。如:rm -rf /data/mysql/*
2复制mysql配置文件
cp /usr/local/mysql/supporrt-files/my-default.cnf /etc/my.cnf
3修改my.cnf
vim my.cnf
添加内容为 : basedir=/usr/local/mysql
datadir=/mydata/data
port=3366
server_id=121
socket=/tmp/mysql.sock
保存退出
4启动MySQL 并查看是否启动
/usr/local/mysql/bin/mysqld_asfe --user=mysql &
ps aux | grep mysql (进程) 或者 ss -antp | grep :3306 (进程)
5登陆mysql
/usr/local/mysql/bin/mysql -u root -p
输入密码:
6进入mysql 就和yum安装的mysql操作一样了
7如果要使用mysql命令时不加绝对路径。那就修改mysql环境变量 临时
echo $OATH 查看一下
export PATH=$PATH:/usr/local/mysql/bin
echo $OATH 查看一下
8永久修改
1 vim /etc/porfile
添加一行 export PATH=$PATH:/usr/local/mysql/bin
2 在/etc/profile.d/下创建一个mysql专门的配置文件 文件名随便起记住就行 但是必须以 .sh 结尾
vim /etc/profile.d/mysql.sh
读取一边这个文件
source /etc/profile.d/mysql.sh