首页 > 数据库 >Ubuntu24 二进制包安装mysql5.7

Ubuntu24 二进制包安装mysql5.7

时间:2024-09-17 17:51:03浏览次数:1  
标签:log 5.7 二进制 mysql5.7 usr mysql password local Ubuntu24

目录

下载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-resolve

basedir=/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
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 -p

ALTER 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

标签:log,5.7,二进制,mysql5.7,usr,mysql,password,local,Ubuntu24
From: https://www.cnblogs.com/wusanga/p/18417348

相关文章

  • 二进制或序列
    二进制或序列题意给出长度为\(n\)的序列,任意两个数进行或运算后加入序列。问进行无数次操作后,序列去重后的长度。思路定义\(f_i\)表示数\(i\)可以被序列中的元素或出的值。若\(f_i=i\)表示\(i\)可以被序列中的元素或出来,答案加一。从小到大枚举每个\(i\),将\(f_......
  • 蓝牙BLE开发——如何将二进制数据进行分包发送?
    如何将二进制数据进行分包发送最近忙的比较少更新,中秋佳节即将来临,祝大家中秋节快乐!前段时间有个需求,读取.bin文件,完成设备升级功能…,记得当时读取文件大小约9万多个字节,必然少不了对传输数据进行分包的操作。今天分享如何对数据分割为所需的大小,如果没有别的需求的,就......
  • 二进制读写文件
    提示:文章文章目录前言一、背景二、2.12.2总结前言前期疑问:本文目标:一、背景这个文章主要是针对二进制文件的读写大概会分为c语言对二进制文件读写和c++对二进制文件的读写查找资料看到这篇文章:二进制文件的读写操作,文章是分别对整型变量、数组、字符串进行......
  • Python存储与读写二进制文件
    本文介绍了一种在Python中将Numpy数组转存为一个紧凑的二进制格式的文件,及其使用内存映射的形式进行读取的方案。一个二进制的数据流,不仅可以更加方便页形式的内存映射,相比于传统的Numpy单精度浮点数数组还有一个可哈希的特性。总体来说是一个对于高性能计算十分友好的存......
  • VS+QT--实现二进制和十进制的转换(含分数部分)
    实现效果: 主要文件:BtD_DtB_converter.cpp#include"BtD_DtB_converter.h"#include<qpushbutton.h>#include<qlineedit.h>#include<qstring.h>#pragmaexecution_character_set("utf-8")BtD_DtB_converter::BtD_DtB_converter(Q......
  • MySQL5.7基于mysqldump、xtrbackup、innobackupex工具进行全量备份/恢复、增量备份/恢
    mysql全量备份脚本文章目录前言一、数据库备份分类二、为什么需要备份?三、备份工具示例1.逻辑备份工具1.1.使用场景1.2.备份操作示例1.3.恢复操作示例2.物理备份工具2.1.xtrbackup介绍2.2.使用场景2.3.安装percona-xtrabackup2.4.xtrbackup备份原理2.5.percona-xtraba......
  • 信息学奥赛初赛天天练-88-CSP-S2023阅读程序1-数据类型、unsigned 关键字、二进制、位
    信息学奥赛初赛天天练-88-CSP-S2023阅读程序1-数据类型、unsigned关键字、二进制、位运算、左移、右移、异或运算PDF文档公众号回复关键字:202409132023CSP-S阅读程序1判断题正确填√,错误填⨉;除特殊说明外,判断题1.5分,选择题3分,共计40分)01#include<iostream>......
  • Python文件操作:文件的读取和写入(文本文件、二进制文件)①
    文章目录1.文件操作基础1.1打开文件1.2关闭文件2.文本文件操作2.1读取文本文件2.1.1逐行读取2.1.2读取所有内容2.1.3读取所有行2.2写入文本文件2.2.1写入内容2.2.2追加内容3.二进制文件操作3.1读取二进制文件3.2写入二进制文件4.综合示例4.1示例描......
  • Ubuntu24使用Wine运行Windows程序安装微信
    Ubuntu24使用Wine运行Windows程序安装微信零、前言摘要最近大家都知道的,我在学嵌入式相关的内容,这样就不可避免的要用到Linux系统,之前是使用的虚拟机来着,但是虚拟机用着毕竟还是没得真机好用,恰好我有两台电脑,故在其中一台上安装了Ubuntu系统。那既然是真实设备,就不可避免的要做......
  • 科普文:软件架构数据库系列之【MySQL5.7和MySQL 8.0的差异】
    引言MySQL作为最常用的开源关系型数据库管理系统之一,一直在不断发展和改进。随着时间的推移,MySQL也经历了多个版本的演进,每个版本都带来了一系列重要的更新和改进。其中,MySQL5.7和MySQL8是两个备受关注的版本,它们之间存在一些关键的差异。本文将深入探讨这两个版本之间的主......