MySQL编译安装流程(mysql 5.7 && mysql-boost-8.0.36)

一、MySQL5.7编译安装流程(centos7)

  1. 首先,下载MySQL 5.7的源代码包,可以在官方网站下载:https://dev.mysql.com/downloads/mysql/5.7.html
  2. 上传下载包至Linux系统;rz -y
  3. 解压源代码包,可指定路径;
tar zxvf mysql-mysql-5.7.34.tar.gz -C /usr/local/src  ##指定安装路径/usr/local/mysql
  1. 新增磁盘,作为数据库数据的存放;(选做)
在vmware中新增磁盘;
动态扫描新添加的磁盘:for i in /sys/class/scsi_host/host*/scan;do echo "- - -" >$i;done
分区--->格式化--->挂载到/mysql/data
mount /dev/sdb1 /mysql/data
  1. 进入解压后的目录,执行三部曲第一步,会生成一个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/:引用国外依赖包的路径。
  1. 执行三部曲第一部,可能遇见的问题;
  • 如果依赖包都解决,还是报错, 建议把缓存文件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
  1. 三部曲第二步;
make -j 8
报错的话,建议把缓存文件CMakeCache.txt删除后,再次编译;
  1. 三部曲第三步;
编译安装:
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的流程
  1. 移除老版本cmake版本并安装依赖包
yum remove cmake -y 
yum install -y gcc gcc-c++ make automake openssl openssl-devel
  1. 下载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
  1. 编译/安装
cd cmake* 
 ./bootstrap 
  gmake -j `grep 'processor' /proc/cpuinfo | wc -l` 
  gmake install
  1. 查看编译后的cmake版本并创建连接
/usr/local/bin/cmake --version
ln -s /usr/local/bin/cmake /usr/bin/
  1. 验证新版本
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--->密码
posted @ 2024-03-30 15:34  Honey-pot  阅读(267)  评论(0)    收藏  举报