当前位置: 首页 > news >正文

MySQL5.7的几种安装方式总结(排错踩坑呕心沥血的经历)

包安装

添加国内源:mysql | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

注意:5.7安装之后有一个临时密码,进行登录并修改新密码后才可以对mysql进行操作。

可以yun list看看各个系统光盘自带的都是什么版本,或者什么分支(mysql/mariadb)。

centos7.9自带的是mariadb

[root@ctos79 mysql 09:04:29]#yum list | grep mariadb
mariadb-libs.x86_64                      1:5.5.68-1.el7                @anaconda
mariadb.x86_64                           1:5.5.68-1.el7                BaseOS
mariadb-bench.x86_64                     1:5.5.68-1.el7                BaseOS
mariadb-devel.i686                       1:5.5.68-1.el7                BaseOS
mariadb-devel.x86_64                     1:5.5.68-1.el7                BaseOS
mariadb-embedded.i686                    1:5.5.68-1.el7                BaseOS
mariadb-embedded.x86_64                  1:5.5.68-1.el7                BaseOS
mariadb-embedded-devel.i686              1:5.5.68-1.el7                BaseOS
mariadb-embedded-devel.x86_64            1:5.5.68-1.el7                BaseOS
mariadb-libs.i686                        1:5.5.68-1.el7                BaseOS
mariadb-server.x86_64                    1:5.5.68-1.el7                BaseOS
mariadb-test.x86_64                      1:5.5.68-1.el7                BaseOS

二进制文件安装MySQL 5.7

安装依赖包

yum -y install libaio numactl-libs ncurses-compat-libs

添加用户和组

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

下载包并安装

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gztar xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local
cd /usr/localln -s mysql-5.7.44-linux-glibc2.12-x86_64 mysql
chown -R root.root /usr/local/mysql/

添加环境变量

echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

修改配置文件

cp /etc/my.cnf{,.bak}
cat > /etc/my.cnf <<EOF
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
EOF

创建数据文件路径

mkdir -pv /data/mysql

生成临时密码

# 随机密码
mysqld --initialize --user=mysql --datadir=/data/mysql
awk '/temporary password/{print $NF}' /data/mysql/mysql.log
vp-jEZe,K4lg# 空密码
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql

准备服务脚本和启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start

修改密码

# 修改root密码
mysqladmin -uroot -p'vp-jEZe,K4lg' password 123456# 如果前面为空密码
mysqladmin -uroot password 123456

最后一步,登录测试

[root@ctos79 mysql 03:56:50]#mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.44 MySQL Community Server (GPL)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

源码安装(centos7)

编译 make -j 8 多线程编译

5.6还是需要执行安全加固的。

安装依赖包

yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel \
libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel \
openssl-devel libevent-devel libaio-devel perl-Data-Dumper

添加用户及数据目录

useradd -r -s /sbin/nologin -d /data/mysql mysqlmkdir /data/mysql -p
chown mysql.mysql /data/mysql

下载源码

yum install -y unzip
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.zipunzip mysql-5.7.44.zip
mv mysql-5.7.44 /usr/local/src/
cd /usr/local/src/mysql-5.7.44/

编译

# 编译前需要升级boost库,否则会报错
wget https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
tar -xf boost_1_59_0.tar.gz
cd boost_1_59_0
./bootstrap.sh --prefix=/usr/local
./b2 install --with=all---这里安装实测执行了10分钟---cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_cimake -j 8 && make install
---开8线程的编译安装时间实测是6分钟---

如果出错,执行rm -f CMakeCache.txt

设置环境变量

echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

生成数据库文件

cd /apps/mysql/
~~# bin/mysql_install_db --datadir=/data/mysql/ --user=mysql~~
bin/mysqld --initialize --user=mysql --datadir=/data/mysql# 如果执行报错,说明数据库文件目录不为空
mv /data/mysql/* /tmp

记住生成的临时密码:r#x?yudwb3lX

准备配置文件

cp /etc/my.cnf{,.bak}
cat > /etc/my.cnf <<EOF
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
EOF

修改启动脚本并启动服务

cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start

修改密码

mysqladmin -uroot -p'r#x?yudwb3lX' password 123456

访问测试

root@ctos79 mysql 09:00:13]#mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.44 Source distributionCopyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)mysql>

最后

也可以使用docker进行安装,拉镜像就好了。

相关文章:

  • C# WPF上位机开发(从demo编写到项目开发)
  • 第二百二十八回
  • Text2SQL学习整理(五)将Text-to-SQL任务与基本语言模型结合
  • word2003 open word2007+
  • 【开源】基于JAVA语言的企业项目合同信息系统
  • 181.【2023年华为OD机试真题(C卷)】查找接口成功率最优时间段(深度优先搜索(DFS)实现JavaPythonC++JS)
  • 利用Milvus Cloud和LangChain构建机器人:一种引人入胜且通俗易懂的方法
  • 在x64上构建智能家居(home assistant) (六) 安装Node-RED Companion Integration
  • 显示器屏幕oled的性能、使用场景、维护
  • 支付平台在选择服务器租用时要注意什么?
  • Twincat中PLC的ST语言编程实现机器人安全交互
  • mysql参数配置binlog
  • 二维码智慧门牌管理系统:提升社区管理智能化水平
  • web前端项目-七彩夜空烟花【附源码】
  • FB混合C语言编译
  • 4. 路由到控制器 - Laravel从零开始教程
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • es6(二):字符串的扩展
  • gf框架之分页模块(五) - 自定义分页
  • HTTP请求重发
  • mysql中InnoDB引擎中页的概念
  • opencv python Meanshift 和 Camshift
  • sublime配置文件
  • vue 个人积累(使用工具,组件)
  • WePY 在小程序性能调优上做出的探究
  • 警报:线上事故之CountDownLatch的威力
  • 使用docker-compose进行多节点部署
  • 数据科学 第 3 章 11 字符串处理
  • !!Dom4j 学习笔记
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (3)(3.5) 遥测无线电区域条例
  • (一)基于IDEA的JAVA基础12
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET 5种线程安全集合
  • .Net MVC + EF搭建学生管理系统
  • .Net Redis的秒杀Dome和异步执行
  • .net Stream篇(六)
  • .Net 应用中使用dot trace进行性能诊断
  • .net连接MySQL的方法
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .Net语言中的StringBuilder:入门到精通
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @hook扩展分析
  • @KafkaListener注解详解(一)| 常用参数详解
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [HDU]2161Primes
  • [iOS]GCD(一)
  • [LeetCode][LCR190]加密运算——全加器的实现
  • [Linux] Boot分区满了的处理方法 The volume boot has only 0 bytes disk space remaining
  • [MICROSAR Adaptive] --- autosar官方文档阅读建议
  • [nlp] 损失缩放(Loss Scaling)loss sacle
  • [NOIP 2015]Day.1 T2 信息传递 【最小环】