1.下载软件包
进入到mysql官网下载自己对应版本的mysql,
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
我这里下载mysql-5.7.30-linux-glibc2.12-x86_64.tar版本
将下载好的源码压缩包上传至:/home目录下
(新建虚拟机时磁盘没有规划,导致home目录磁盘空间比较大,所以将mysql安装在home目录下)

2.检查卸载
安装前,我们可以检测系统是否自带安装 MySQL:

[root@localhost home]# rpm -qa | grep mysql

如有,类似 mysql-libs-5.1.52-1.el6_0.1.x86_64那可以选择进行卸载:

rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64  // 普通删除模式
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

检查否存在 mariadb 数据库,如有,卸载之,卸载同上

[root@localhost home]# rpm -qa | grep mariadb

如有,类似mariadb-libs-5.5.56-2.el7.x86_64
则 卸载rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

3.安装
(1)安装源文件版本:mysql-5.7.30-linux-glibc2.12-x86_64.tar
进入 /home, 解压源码文件,并重新命名mysql-5.7

[root@localhost homel]#tar -xf  mysql-5.7.30-linux-glibc2.12-x86_64.tar
[root@localhost homel]# mv  mysql-5.7.30-linux-glibc2.12-x86_64  mysql-5.7

(2)创建数据文件mkdir data

[root@localhost homel]# cd mysql-5.7
[root@localhost mysql-5.7]#mkdir data

(3)检查mysql组和用户是否存在,如无创建

[root@localhost mysql-5.7]# cat /etc/group | grep mysql
#类似
mysql:x:490:
[root@localhost mysql-5.7]# cat /etc/passwd | grep mysql
#类似
mysql:x:496:490::/home/mysql:/bin/bash

以上为存在的情况,如无,执行添加命令:groupadd mysql 和 useradd -r -g mysql mysql

[root@localhost mysql-5.7]# groupadd mysql
[root@localhost mysql-5.7]# useradd -r -g mysql mysql

#useradd -r参数表示mysql用户是系统用户,不可用于登录系统

(4)将/home/mysql-5.7的所有者及所属组改为mysql

[root@localhost mysql-5.7]# chown -R mysql.mysql /home/mysql-5.7
[root@localhost mysql-5.7]# chown -R mysql.mysql /home/mysql-5.7/data
[root@localhost mysql-5.7]# chown -R mysql /home/mysql-5.7/data
[root@localhost mysql-5.7]# chown -R mysql /home/mysql-5.7
[root@localhost mysql-5.7]# chmod -R 755 /home/mysql-5.7

(5)在/home/mysql-5.7/support-files目录下创建my_default.cnf

[mysqldump]
user =root
password =123456[mysqld]
basedir=/home/mysql-5.7
datadir=/home/mysql-5.7/data
user = mysql
log-bin=/home/mysql-5.7/mysql-bin
#binlog-do-db=test
#binlog-ignore-db=mysqlserver-id=4
character-set-server=utf8
collation-server=utf8_general_ci
max_connections=4096
max_connect_errors = 1024
socket=/home/mysql-5.7/mysql.sock
log-error=/home/mysql5.7/mysqld.log
pid-file=/home/mysql5.7/mysqld.pidsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONevent_scheduler=1
back_log=500
#数据库连接闲置最大时间值为30分钟
wait_timeout=1800
#禁止MySQL对外部连接进行DNS解析
skip-name-resolve#innodb_additional_mem_pool_size=100M#thread_concurrency=32
#MySql读入缓冲区大小
read_buffer_size=4M
#临时表的大小为32M
tmp_table_size=32M#max_allowed_packet = 500M
explicit_defaults_for_timestamp=true
#关闭大小写
lower_case_table_names=1#innodb_flush_log_trx_commit=0#log-error=/home/mysqld.log#interactive_timeout=216000
#wait_timeout=216000
#二进制日志自动删除的天数
#expire_logs_days=15
#binlog_format=mixed#log-bin-trust-function-creators=1
#event_scheduler = 1#log_timestamps=SYSTEM
#innodb_buffer_pool_size = 130023424
innodb_buffer_pool_size=4294967296
#group_concat_max_len = 20480
#sync_binlog = 100

拷贝my_default.cnf文件到/etc/my.cnf如果提示是否覆盖,y

[root@localhost support-files]# cp my_default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y

(6)修改mysql.server文件
进入/home/mysql-5.7/support-files目录修改mysql.server,修改内容如下找到mysqld_pid_file_path=修改MySQL的安装路径及数据路径

# The following variables are only set for letting mysql.server find things.# Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
thenbasedir=/home/mysql-5.7bindir=/home/mysql-5.7/binif test -z "$datadir"thendatadir=/home/mysql-5.7/datafisbindir=/home/mysql-5.7/binlibexecdir=/home/mysql-5.7/bin
elsebindir="$basedir/bin"if test -z "$datadir"thendatadir="$basedir/data"fisbindir="$basedir/sbin"libexecdir="$basedir/libexec"
fi

(7)把启动脚本放到开机初始化目录。
进入/home/mysql-5.7/support-files目录下执行cp mysql.server /etc/init.d/mysql

[root@localhost support-files]# cp mysql.server /etc/init.d/mysql

(8)初始化 mysqld
进入到/home/mysql-5.7执行./bin/mysqld --initialize --user=mysql --basedir=/home/mysql-5.7/ --datadir=/home/mysql-5.7/data/

[root@localhost mysql-5.7]#./bin/mysqld --initialize --user=mysql --basedir=/home/mysql-5.7/ --datadir=/home/mysql-5.7/data/

(9)找出初始密码
初始化完成之后进入/home/mysql-5.7/data,查看cat mysqld.log日志找出随机生成mysql数据库登录的临时密码

[root@localhost data]# cat mysqld.log
2022-01-21T14:02:25.896593Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-01-21T14:02:25.896962Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2022-01-21T14:02:25.896973Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2022-01-21T14:02:26.710078Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-01-21T14:02:26.791482Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-01-21T14:02:26.902798Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: caa64450-54b2-11ea-8c3c-000c2923d700.
2022-01-21T14:02:26.904801Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-01-21T14:02:28.091585Z 0 [Warning] CA certificate ca.pem is self signed.
2022-01-21T14:02:28.293469Z 1 [Note] A temporary password is generated for root@localhost: s7kh.#l8%O6p

找出临时密码:2022-01-21T14:02:28.293469Z 1 [Note] A temporary password is generated for root@localhost: s7kh.#l8%O6p密码就是:s7kh.#l8%O6p 记住密码随后登陆需要

(10)启动mysql服务
service mysql start

[root@localhost data]# service mysql start
Starting MySQL.. SUCCESS!

(11)登录mysql

进入/home/mysql-5.7/bin执行./mysql -u root -p登录mysql,密码为初始密码


配置文件中的socket路径做下软连接

[root@localhost data]ln -s  /home/mysql-5.7/mysql.sock   /tmp/mysql.sock

(12)修改密码
set password=password(‘密码’);

mysql> set password=password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)

(13)授权root权限使得外部地址使用root登陆
grant all privileges on . to root@’%’ identified by ‘123456’;

mysql> grant all privileges on *.* to root@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

(14)刷新权限:flush privileges;

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

(15)声明环境变量

[root@localhost home] vim  /etc/profile
#末尾添加一行
export PATH=$PATH:/home/mysql-5.7/bin[root@localhost home] source  /etc/profile

参考文档:
https://blog.csdn.net/iT_MaNongking/article/details/104453370

Linux源码安装Mysql5.7相关推荐

  1. linux 源码安装mysql5.7_linux安装mysql5.7.27

    一.卸载 mysql安装有三种方式,包括二进制包安装(Using Generic Binaries).RPM包安装.源码安装.一般是前两种比较多 二.安装 建议路径设置按照写的来 将下载的压缩包复制到 ...

  2. linux系统下源码安装mysql5.6数据库

    linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...

  3. linux 自动安装mysql数据库_linux系统下源码安装mysql5.6数据库

    linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...

  4. Linux ARM机器,源码安装mysql5.7.23,并且运行

    背景:华为云  系统版本:EulerOS release 2.0 (SP8) 第一节:源码安装mysql5.7.23 一.下载 yum install ncurses-devel -y yum ins ...

  5. Linux源码安装mysql 5.6.12(cmake编译)

    转载链接:http://www.2cto.com/database/201307/229260.html Linux源码安装mysql 5.6.12(cmake编译) 1.安装make编译器(默认系统 ...

  6. unbuntu cmake安装mysql_Ubuntu下源码安装MySQL-5.5.25a

    Ubuntu下源码安装MySQL-5.5.25a,今天在Ubuntu Linux下本来玩玩Android的源码看下的.那小的怎看根目录的空间已然不多.所以想把 今天在Ubuntu Linux下本来玩玩 ...

  7. linux怎么用源码安装mysql,Linux源码安装mysql步骤

    创建文件夹: mkdir  /usr/local/webserver 安装必要依赖包 yum -y install gcc gcc-c++ make ncurses-devel 安装cmake包: t ...

  8. Linux源码安装步骤

    Linux上几乎所有的软件都经过了GPL授权,因此几乎所有的软件都会提供源码.  而一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上 ...

  9. rhel 7.2 安装mysql_在rhel7.2下源码安装mysql-5.6.35

    如何在一台新机rhel7.2下源码安装mysql-5.6.35 一.前期准备工作 1.首先安装依赖包,避免在安装过程中出现问题 yum -y install gcc gcc-c++ cmake ncu ...

  10. Linux源码安装软件

    Linux源码安装软件 源码安装:最原始最有效的安装方式 三部曲 (1)-./configure xxx 生成makefile文件,随后需要的安装信息都是从这一步中获取 (2)make 根据makef ...

最新文章

  1. cookie关键字_我遇过的最难的Cookie问题
  2. CVPR 2021 | 针对全局 SfM 的高效初始位姿图生成
  3. python【蓝桥杯vip练习题库】ADV-120 6-17复数四则运算
  4. 判断两个链表是否相交
  5. Windows Server2012 搭建域错误“本地Administraor账户不需要密码”
  6. 【pmcaff专栏】项目管理失败?如何避免?
  7. boost::mpl模块实现eval_if相关的测试程序
  8. 怎么中文读_这些中文名字如果用日语念出来会怎样?!
  9. 老杨和驳客都在胡言乱语——千条道理不如一个事实
  10. Arcgis javascript那些事儿(十八)——空间查询的几种方法
  11. python演化博弈仿真_基于matlab的演化博弈模型求解代码?
  12. c语言php环境搭建,c语言从入门到放弃 php从入门到放弃系列-01php环境的搭建
  13. CleanMyPC最新2022win系统清理工具软件
  14. listview 分页加载
  15. PS基础,灰度色彩模式
  16. Sublime不支持GDK导致中文乱码(两种方法)
  17. ice 的 Nonmutating 和 Idempotent
  18. TreeView 控件
  19. 看过千万的风景 比不上故乡的美丽
  20. 十进制逢十进一的意思

热门文章

  1. 缠论入门到精通理论到实战
  2. 项目管理-项目整体计划Excel表格绘制
  3. Echart地图的省级,以及所有地市级下载与使用
  4. 实现excel在线打印
  5. ACE Admin 模板实现sidebar菜单联动tabs页签
  6. python微控制器编程从零开始 pdf_Python微控制器编程从零开始
  7. 设计模式之依赖倒置原则
  8. 重大福利!优云UEM重磅上线!
  9. 非华为电脑安装华为电脑管家11.1.1.101
  10. 电脑管家下载|腾讯电脑管家下载