MySQL编译安装流程(mysql 5.7 && mysql-boost-8.0.36)
一、MySQL5.7编译安装流程(centos7)
- 首先,下载MySQL 5.7的源代码包,可以在官方网站下载:https://dev.mysql.com/downloads/mysql/5.7.html
- 上传下载包至Linux系统;rz -y
- 解压源代码包,可指定路径;
tar zxvf mysql-mysql-5.7.34.tar.gz -C /usr/local/src ##指定安装路径/usr/local/mysql
- 新增磁盘,作为数据库数据的存放;(选做)
在vmware中新增磁盘;
动态扫描新添加的磁盘:for i in /sys/class/scsi_host/host*/scan;do echo "- - -" >$i;done
分区--->格式化--->挂载到/mysql/data
mount /dev/sdb1 /mysql/data
- 进入解压后的目录,执行三部曲第一步,会生成一个CMakeCache.txt 缓存文件;
进入解压目录 ---> cd mysql-5.7.34
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/mysql-5.7.19/boost/boost_1_59_0/
echo $? 检查上一步命令是否出错,非0 就是错误;
参数解释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql:指定MySQL的安装路径为/usr/local/mysql,可以根据需要进行修改;-DMYSQL_DATADIR=/usr/local/mysql/data:指定MySQL数据文件的存储路径为/mysql/data,可以根据需要进行修改;-DWITH_INNOBASE_STORAGE_ENGINE=1:启用InnoDB存储引擎;-DWITH_ARCHIVE_STORAGE_ENGINE=1:启用Archive存储引擎;-DWITH_BLACKHOLE_STORAGE_ENGINE=1:启用Blackhole存储引擎;-DENABLED_LOCAL_INFILE=1:启用从本地加载数据文件功能;-DDEFAULT_CHARSET=utf8:设置默认字符集为utf8;-DDEFAULT_COLLATION=utf8_general_ci:设置默认排序规则为utf8_general_ci;-DWITH_EMBEDDED_SERVER=1:启用嵌入式服务器;-DDOWNLOAD_BOOST=1:一些国外的依赖包;-DWITH_BOOST=/usr/local/src/mysql-5.7.19/boost/boost_1_59_0/:引用国外依赖包的路径。
- 执行三部曲第一部,可能遇见的问题;
- 如果依赖包都解决,还是报错, 建议把缓存文件CMakeCache.txt删除后,再次编译;
boost_1_59_0是一个国外的依赖包,需提前下载。解压至/usr/local/src/mysql-5.7.19/boost下面,否则会报错;
还需要安装:
yum -y install gcc*
yum -y install make
yum -y install cmake
yum -y install ncurses-devel
- 三部曲第二步;
make -j 8
报错的话,建议把缓存文件CMakeCache.txt删除后,再次编译;
- 三部曲第三步;
编译安装:
make -j 8 install
如果echo $? 是0的话,就继续执行下面操作:
创建用户,但是不能登录
useradd mysql -s /sbin/nologin
chown -R mysql:mysql /usr/local/mysql #给数据库文件进行授权;
mkdir /var/run/mysqld #创建pid的文件路径
chown mysql:mysql /var/run/mysqld -R #给pid文件的路径授权;
mkdir /var/lib/mysql #创建pid文件夹,否则后面会安装出错;
chown mysql:mysql /var/lib/mysql -R #授权;
配置文件
[root@hopu01 ~]# mv /etc/my.cnf /etc/my.cnf.bak #把原来的配置文件进行备份
自行创建my.cnf配置文件
vim /etc/my.cnf
复制以下内容:(路径需根据自己,进行修改)
[mysqld]
basedir=/usr/local/mysql #MySQL的安装路径
datadir=/mysql/data #MySQL数据的路径
port=3306 #端口id
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的pid存放位置
[mysql]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
退出保存!
###添加下面2行 在文件的结尾(环境变量,可不配置)
vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
使修改生效
source /etc/profile
生成服务启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
给启动脚本进行授权
chmod +x /etc/init.d/mysqld
创建数据库日志文件并授权
touch /var/log/mysqld.log
chown mysql.mysql /var/log/mysqld.log
初始化数据库
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data --port=3306
--user=mysql #用户名
--basedir=/usr/local/mysql #数据库的安装路径
--datadir=/mysql/data #数据库的数据存放路径
--port=3306 #数据库的端口指定
!!!这部做完记得echo $? 查看是否是0,如果非0 建议去看日志文件;!!!
进入启动脚本---> cd /etc/init.d/
启动服务--->./mysqld start
显示以下表示启动成功:
Starting MySQL. SUCCESS!
登录数据库:
进入数据库的目录--->cd /usr/local/mysql/bin
登录数据库:--->./mysql -u root -p
停止服务:
cd /etc/init.d/
./mysqld stop
如果报错:
Starting MySQL.2024-03-27T12:09:35.935482Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
解决:
mkdir /var/lib/mysql
启动报错:
Starting MySQL.. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
看日志--->[ERROR] Could not create unix socket lock file /var/lib/mysql/mysql.sock.lock.
解决:chown mysql.mysql /var/lib/mysql
停止服务:./mysqld stop
二、Mysql8编译安装流程(centos7)
2.1、三部曲的第一步
- 因为前面和安装mysql5.7差不多,所以直接跳转至第一步
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=/usr/local/src/mysql-8.0.17/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DFORCE_INSOURCE_BUILD=1
- 可能出现报错;
-- Please install cmake3 (yum install cmake3)
CMake Error at CMakeLists.txt:112 (CMAKE_MINIMUM_REQUIRED):
CMake 3.5.1 or higher is required. You are running version 2.8.12.2
解决:安装高版本的cmake
安装高版本的gcc:
yum -y install centos-release-scl
yum -y install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils
scl enable devtoolset-11 bash
You *can* force in-source build by invoking cmake with
-DFORCE_INSOURCE_BUILD=1
解决:在最后加上 -DFORCE_INSOURCE_BUILD=1
安装高版本的cmake的流程
- 移除老版本cmake版本并安装依赖包
yum remove cmake -y
yum install -y gcc gcc-c++ make automake openssl openssl-devel
- 下载cmake-3.7.2.tar.gz安装包并解压 cmake官网地址 https://cmake.org/download/
wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
tar -zxf cmake*.tar.gz
- 编译/安装
cd cmake*
./bootstrap
gmake -j `grep 'processor' /proc/cpuinfo | wc -l`
gmake install
- 查看编译后的cmake版本并创建连接
/usr/local/bin/cmake --version
ln -s /usr/local/bin/cmake /usr/bin/
- 验证新版本
cmake --version
安装高版本的gcc
yum -y install centos-release-scl
yum -y install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils
scl enable devtoolset-11 bash
2.2、三部曲的第二步
- 和安装MySQL5.7的第二部一样:make -j 6;
2.3、三部曲的第三步
编译安装:
make -j 8 install
如果echo $? 是0的话,就继续执行下面操作:
创建用户,不能登录
useradd mysql -s /sbin/nologin
[root@hopu01 ~]# chown -R mysql:mysql /usr/local/mysql #指定数据库的配置路径
[root@hopu01 ~]# mkdir /var/run/mysqld
[root@hopu01 ~]#chown mysql:mysql /var/run/mysqld -R #指定pid的文件的路径
配置文件
[root@hopu01 ~]# mv /etc/my.cnf /etc/my.cnf.bak #把原来的配置文件进行备份
自行创建my.cnf配置文件
[root@hopu01 ~]#vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql #MySQL的安装路径
datadir=/mysql/data #MySQL数据的路径
port=3306 #端口id
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的pid存放位置
[mysql]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
退出保存!
###添加下面2行 在文件的结尾(环境变量,可不配置)
vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
使修改生效
source /etc/profile
生成服务启动脚本
[root@hopu01 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@hopu01 ~]# chmod +x /etc/init.d/mysqld
创建数据库日志文件
touch /var/log/mysqld.log
chown mysql.mysql /var/log/mysqld.log
初始化数据库
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data --port=3306
这部做完记得echo $? 查看是否是0,如果非0 建议去看日志文件;
启动服务
[root@hopu01 ~]# /etc/init.d/mysqld start
或者去/etc/init.d下面启动--->./mysqld start
如果报错:
Starting MySQL.2024-03-27T12:09:35.935482Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
解决:
mkdir /var/lib/mysql
启动报错:
Starting MySQL.. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
看日志--->[ERROR] Could not create unix socket lock file /var/lib/mysql/mysql.sock.lock.
解决:chown mysql.mysql /var/lib/mysql
停止服务:./mysqld stop
三、使用navicat连接数据库
- 在Linux中登录数据库;
进入MySQL的安装文件夹;
/usr/local/mysql/bin
登录---> ./mysql -u root -p
- 进行创建用户,授权;
CREATE USER 'username'@'%' IDENTIFIED BY 'passwd';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
username--->用户名
passwd--->密码

浙公网安备 33010602011771号