首页 > 数据库 >centos7源码安装MySQL 5

centos7源码安装MySQL 5

时间:2023-11-03 14:37:18浏览次数:32  
标签:bin cmake -- MySQL centos7 源码 usr mysql local

安装前准备

检查系统是否安装过mysql :

rpm -qa|grep mysql

查询所有mysql对应的文件夹,(人工判断不需要后)删除:

whereis mysql
find / -name mysql

卸载CentOS 7系统自带mariadb:

# 查看系统自带的Mariadb
rpm -qa|grep mariadb

# 卸载系统自带的Mariadb
rpm -e --nodeps mariadb-libs

# 删除etc目录下的my.cnf ,一定要删掉,等下再重新建,之前我将就用这个文件,后面改配置各种不生效
rm /etc/my.cnf

开始安装

下载:

# 官网上查询下载
https://dev.mysql.com/downloads/mysql/
# 例如:
https://github.com/dollarphper/soft/blob/master/mysql/mysql-boost-5.7.24.tar.gz

安装依赖:

yum -y install cmake gcc gcc-c++ ncurses  ncurses-devel  libaio-devel  openssl openssl-devel

创建用户:

useradd mysql -s /sbin/nologin -M

创建文件夹:

mkdir -p /usr/local/mysql/data

解压:

tar  -xzf  mysql-boost-5.7.24.tar.gz

编译安装:

cd  mysql-5.7.24
#编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=./boost

报错及解决方案

* 执行cmake(编译)时报错:
-- Running cmake version 2.8.12.2
CMake Warning at CMakeLists.txt:71 (MESSAGE):
  Please use cmake3 rather than cmake on this platform
  
-- Please install cmake3 (yum install cmake3)
CMake Error at CMakeLists.txt:101 (CMAKE_MINIMUM_REQUIRED):
  CMake 3.5.1 or higher is required.  You are running version 2.8.12.2
  
-- Configuring incomplete, errors occurred!
# CMake版本低,需要更高版本
# 查看cmake版本
cmake --version
        cmake version 2.8.12.2 #版本低于3.5.1
# 卸载现有cmake
yum remove cmake
#下载cmake源码包
cd tools/
curl -O https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.tar.gz
#加压
tar -zxvf cmake-3.18.0-Linux-x86_64.tar.gz -C /usr/local/
mv cmake-3.18.0-Linux-x86_64 cmake
##添加一下环境变量,使配置永久生效
#sed在指定行前添加内容
sed '/^export\ PATH\=/i\export\ CMAKE_HOME\=\/usr\/local\/cmake' ~/.bashrc
#sed在指定字符串后添加内容
sed -i 's/^export\ PATH\=/&\$CMAKE_HOME\/bin\:/g' ~/.bashrc
# 检查添加结果
grep CMAKE_HOME ~/.bashrc
source ~/.bashrc
cmake --version
        cmake version 3.18.0 #版本满足要求
        CMake suite maintained and supported by Kitware (kitware.com/cmake).

解决报错继续编译安装:

cd  mysql-5.7.24
#编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=./boost

echo $?

make
echo $?
make  install
echo $?

修改所属主为mysql:

chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql

修改配置文件:

cat>>/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
port = 3306
socket = /tmp/mysql.sock
log_error = /var/log/mysqld.log
EOF

初始化,记住数据库管理员临时密码:

/usr/local/mysql/bin/mysqld  --initialize-insecure  --user=mysql --datadir=/usr/local/mysql/data

启动服务:

/usr/local/mysql/support-files/mysql.server start

添加软连接 或者 创建systemd管理项:

# 添加软连接
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
# 创建systemd管理项
##写入system配置
cat>>/usr/lib/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server
Documentation=mysqld
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
##重读systemd
systemctl daemon-reload

启动mysql,查看启动状态,并设置开机自启:

systemctl start mysqld.service
systemctl status mysqld.service
systemctl enable mysqld.service

重启mysql服务:

service mysql restart
#or
systemctl restart mysqld.service

登录MySQL:

mysql -uroot -p

# 如果报错:
-bash: /usr/local/bin/mysql: No such file or directory

# 解决方式:
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

重置密码:

UPDATE mysql.user SET authentication_string=PASSWORD('new passwd'),plugin='mysql_native_password' WHERE User='root';
# 更新权限:
FLUSH PRIVILEGES;

逆风的方向,更适合飞翔,我不怕千万人阻挡,只怕自己投降。



标签:bin,cmake,--,MySQL,centos7,源码,usr,mysql,local
From: https://blog.51cto.com/u_14346538/8168805

相关文章

  • CentOS7中firewall防火墙详解和配置
    提示修改防火墙配置文件之前,需要对之前防火墙做好备份重启防火墙后,需要确认防火墙状态和防火墙规则是否加载,若重启失败或规则加载失败,则所有请求都会被防火墙拒绝firewalld的基本使用#停止firewallsystemctlstopfirewalld.service#禁止firewall开机启动systemctldisablefi......
  • mysql创建systemd管理项
    vim/usr/lib/systemd/system/mysqld.service写入system配置:[Unit]Description=MySQLServerDocumentation=mysqld##mysql参考手册Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-u......
  • SpringBoot自动装配(二)源码分析
    基于SpringBoot2.7.11step1.从EnableAutoConfiguration注解开始注解@EnableAutoConfiguration开启了自动配置然后SpringBoot在启动的时候通过类路径进行扫描查找所有META-INF/spring.factories文件加载其中所有的自动配置类step2.应用启动@SpringBootApplicationpub......
  • 手机直播源码,Android Shape设置背景
    手机直播源码,AndroidShape设置背景设置背景时,经常这样android:background=“@drawable/xxx”。如果是纯色图片,可以考虑用shape替代。shape相比图片,减少资源占用,缩减APK体积。<?xmlversion="1.0"encoding="utf-8"?><shape  xmlns:android="http://schemas.android.c......
  • 在线直播源码,ui的select显示数字
    在线直播源码,ui的select显示数字//修改前<el-option v-for="(item,index)inplatformData" :key="index" :label="item.platform_name" :value="item.id"/>//修改后,在value后面加+''<el-option v-for="(item,index)in......
  • MySQL 数据库 cpu 飙升的话,要怎么处理?
    排查过程:(1)使用top命令观察,确定是mysqld导致还是其他原因。(2)如果是mysqld导致的,showprocesslist,查看session情况,确定是不是有消耗资源的sql在运行。(3)找出消耗高的sql,看看执行计划是否准确,索引是否缺失,数据量是否太大。处理:(1)kill掉这些线程(同时观察cpu使用率是......
  • 微服务+Spring Cloud的建筑工地智慧管理平台源码
    智慧工地全套源码(PC端,移动端,大屏端)智慧工地系统充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术,以PC端,移动端,设备端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳务、设备、物料、安全、环境、能源、资料、计划、质量、视频监控等十大管理......
  • mysql sql常用优化
    1 explain输出执行计划,检查orderby和where后边的字段是否建立索引2in()中的列不应过多,notin和in()数据过多都不再走索引,使用全表扫描,连续数值可以使用between1and33select后边指定字段,少用select(*)4 where子句中避免isnull/isnotnull5 应尽量避免在whe......
  • Mysql 唯一联合索引和 NULL允许重复
    我内心一直认为UNIQUEKEY是唯一的只允许出现一个null但是联合索引索引就打破了这个魔咒请看演示为null原因唯一索引的作用是确保组成索引的字段的值是唯一的。users唯一索引是由name、email和lebal字段组成的。users这三个字段的组合在表中已经存......
  • c++ STL源码解读
    红黑树map,key不能添加相同的key,如果添加不会报错,但是添加不进去 #include<iostream>#include<map>#include<set>usingnamespacestd;intmain(intargc,charconst*argv[]){map<int,int>a;a.insert(make_pair(1,1));a.insert(make_pair(1,......