Ubuntu24 二进制包安装mysql5.7

news/2024/9/19 12:30:01/文章来源:https://www.cnblogs.com/wusanga/p/18417348

目录
  • 下载mysql
  • 添加用户和用户组
  • 创建mysql-files文件
  • 执行initialize
  • 创建配置文件
  • 启动mysql
  • 生成systemd配置
  • 修改root密码
  • 添加用户,允许从远程访问
  • 遇到问题
    • 执行initialize 时报错:找不到libaio.so.1包
    • mysql拒绝使用root用户启动
    • mysql启动没成功,且没报错
    • mysql启动失败:unknown validate_password_policy
    • mysql客户端报错:libncurses.so.5,libtinfo.so.5

下载mysql

mysql官方下载地址:https://downloads.mysql.com/archives/community/

安装可以参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

我选的是Linux-Generic的压缩包安装方式

下载完上传到服务器,解压到安装目录(我这里为/usr/local/mysql-5.7)

➜  cd /usr/local
➜  tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
➜  mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql-5.7

添加用户和用户组

官网命令

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

创建mysql-files文件

官网命令

$> cd mysql-5.7
$> mkdir mysql-files
$> chown mysql:mysql mysql-files
$> chmod 750 mysql-files

执行initialize

进入mysql-5.7目录

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7 --datadir=/usr/local/mysql-5.7/data

这里可能会报错:libaio.so.1的问题,参考下面执行initialize 时报错的问题

初始化完成后,会输出密码,需要记录

创建ssl证书,使用ssl连接

./bin/mysql_ssl_rsa_setup --basedir=/usr/local/mysql-5.7 --datadir=/usr/local/mysql-5.7/data

创建配置文件

创建配置文件:/etc/my.cnf

开发参考:

[mysqld]  
port=3306  
character-set-server=utf8  
collation-server=utf8_general_ci  
default-storage-engine=INNODB  # Only allow connections from localhost  
bind-address = 0.0.0.0  #sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"max_connections=100
#skip-name-resolvebasedir=/usr/local/mysql-5.7
datadir=/usr/local/mysql-5.7/data
socket=/tmp/mysql.sock#日志
#日志时间,默认是UTC
log_timestamps=SYSTEM  
#错误日志
log_error=/usr/local/var/log/mysql/error.log
#开启二进制日志
log-bin=/usr/local/var/log/mysql/mysql-bin
server-id=1
#开启通用查询日志
#general_log=ON
#general_log_file=/usr/local/var/log/mysql/mysql-query.log
#慢查询日志
slow_query_log=ON
slow_query_log_file=/usr/local/var/log/mysql/mysql-slow.log
long_query_time=1
#记录不使用索引查询的语句
log_queries_not_using_indexes=ON#修改密码校验等级
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
validate_password_policy=0
validate_password_length=4#设置导入导出的安全目录
secure_file_priv=""[mysql]
default-character-set=utf8
auto-rehash[client]
port=3306

其中log_error文件需要事先创建,同时注意文件权限为mysql

启动mysql

./bin/mysqld_safe --user=mysql &

启动可能会失败,日志在my.cnf的log_error配置的文件里,可以找失败原因

生成systemd配置

参考:https://zhuanlan.zhihu.com/p/692930530

在/usr/lib/systemd/system目录下,创建mysql.service文件,写入

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://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-5.7/bin/mysqld_safe
LimitNOFILE = 5000

启动路径按自己的修改既可,之后可以使用systemctl管理mysql

systemctl start mysql

修改root密码

mysql -uroot -pALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

只是自己测试,为了方便设置为123456。简单密码需要提前配置validate_password_policy

添加用户,允许从远程访问

默认root只能从本地访问,新增一个用户,方便本地开发,进行远程访问

create user wxl@'%' identified by '123456';
grant all on *.* to wxl@'%';

赋予任意数据库,任意表的所有权限

遇到问题

执行initialize 时报错:找不到libaio.so.1包

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

原因是mysql找不到libaio.so.1包

先执行

➜  ~ apt install libaio1

之后再次安装,依然报错。参考:https://deb.sipwise.com/debian/pool/main/liba/libaio/

手动安装deb包,文件:libaio1_0.3.113-4_amd64.deb

下载地址:https://deb.sipwise.com/debian/pool/main/liba/libaio/

下载后执行:apt install ./libaio1_0.3.113-4_amd64.deb

问题解决

mysql拒绝使用root用户启动

使用mysqld启动,提示Please read “Security“ section of the manual to find out how to run mysqld as root!

这是mysql的安全策略,不能使用root用户启动。改为mysqld_safe启动

./bin/mysqld_safe --user=mysql &

mysql启动没成功,且没报错

查看/etc/myt.cnf锂log_error的配置,里面有失败原因

log_error=/usr/local/var/log/mysql/error.log

mysql启动失败:unknown validate_password_policy

error.log提示:[ERROR] unknown variable 'validate_password_policy=0'

如果设置了validate_password_policy参数,my.cnf配置里需要加上

plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT

mysql客户端报错:libncurses.so.5,libtinfo.so.5

这是由于系统安装的版本过高。通过建立软连接方式解决

查看自己系统下对应的版本,建立软连接

ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6.4 /usr/lib/x86_64-linux-gnu/libncurses.so.5
ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6.4 /usr/lib/x86_64-linux-gnu/libtinfo.so.5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/798678.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 性能调优:优化 GC 线程设置

垃圾回收器使用一组称为 GC 线程的线程来执行回收工作。有时 JVM 可能会分配过多或过少的 GC 线程。本文将讨论 JVM 为什么会出现这种情况、其影响以及可能的解决方案。 1 咋查找应用程序的 GC 线程数量 进行线程转储分析来确定应用程序的 GC 线程数量:从生产服务器捕获thread…

微信授权登录接口开发

微信登陆过程 在项目开发中,难免会遇到微信授权登录这一操作,本讲来讲一下微信登陆是如何实现的? 关于校验登录,有诸多方法,记录方法如下:使用Spring MVC提供的拦截器 网关服务全局过滤器 使用AOP面向横切面实现对于使用Spring MVC提供的拦截器来实现,其大致的思路如下:注…

1 计算机系统

计算机系统抽象层次6 用户 可执行程序5 高级语言 C++ Java4 汇编语言 汇编代码3 系统软件 操作系统 /库代码2 机器 指令集架构(ISA)1 控制(控制怎么执行) 微代码 /硬连线0 数字逻辑(执行) 电路、门等Language Processor: 语言处理器 语言处理器的两个阶段:分析源程序 合成目…

人工智能生成合成内容标识办法(征求 意见稿)发布

当前国家发布的关于人工智能生成合成内容标识的法律法规有:《中华人民共和国网络安全法》、《互联网信息服务算法推荐管理规定》、《互联网信息服务深度合成管理规定》、《生成式人工智能服务管理暂定办法》等。 征求意见稿 2024年9月14日,国家网信办发布关于《人工智能生成合…

南沙信奥老师解题:1167:再求f(x,n)

​ 用递归函数求解。【输入】第一数是x的值,第二个数是n的值。【输出】函数值。【输入样例】 1 2 【输出样例】 0.40#include <iostream> #include <stdlib.h> using namespace std; double f(double x,double n) {if(n==1)return x/(1+x);elsereturn x/(n+f(x,n-…

概率分布深度解析:PMF、PDF和CDF的技术指南

本文将深入探讨概率分布,详细阐述概率质量函数(PMF)、概率密度函数(PDF)和累积分布函数(CDF)这些核心概念,并通过实际示例进行说明。 在深入探讨PMF、PDF和CDF之前,有必要先简要介绍两种常用的概率分布:正态分布和均匀分布。 正态分布: 也称为高斯分布或钟形曲线,正…

冒泡排序(重要!)

1.作用 比较数组中两个相邻的数,如果第一个数比第二个数大,则会交换位置。 每一次比较都会产出最大或是最小的数,下一轮则可以少一次排序,依次循环,直到结束 2.机制 冒泡排序分为两个循环,外层冒泡轮数(总的次数循环),而内层比较大小(两个数进行比较) 可以想象有三个…

Luogu P10812

题目描述 给定一根 \(1\) 到 \(N\) 的数轴。一开始有一个棋子在 \(N\)。每次棋子 \(x\) 可以跳到 \(x-1,x+1\) 或 \(x\) 的因子处(不能超出 \(1\) 到 \(N\))。 每个点只能到达一次。求棋子到达 \(1\) 的方案数。 思路 由于求倍数比因子简单,所以把问题变成从 \(1\) 到 \(N\)…

爬虫cookie的使用

cookie是一种由网站创建并存储在用户计算机上的小型文本文件。访问该网站时由浏览器返回给服务器。cookie主要作用是帮助网站记住用户信息,包括但不限于:会话管理,网站使用cookie识别用户的会话,以便用户在浏览网站时不需要重复登录。 个性化体验,通过存储用户的偏好设置,…

unity人工智能游戏、源码、教程(中秋特别版),完全免费和开源

三维虚拟世界的人工智能对话。 完全免费、完全开源、完整详细、通俗易懂。 我把游戏、游戏源码、教程(三合一)放到了夸克网盘: 链接:https://pan.quark.cn/s/65e22d51c1bb任何人不要和我说话,我不想跟任何人说话,因为我对现实世界的人类不感兴趣。谁跟我说话,我都不会理…

校招前的思考

又有了一次参加校招的机会,我希望校招这种活动,自己每参加一次,都能加深一次理解。校招前,我想思考清楚一个问题:企业为什么要校招?又有了一次参加校招的机会,我希望校招这种活动,自己每参加一次,都能加深一次理解。校招前,我想思考清楚一个问题:企业为什么要校招?…

江锐第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 学习博客园的基本知识,并介绍自己,自我认知姓名-学号 江锐-2022329301014一、个人简介 (1)基本信息 姓 名: 江锐 物 理 家 乡:湖北武汉 专 业: 电气工程及其自动化 网 络 家 乡:github,…