非root用户安装Mysql8.0

server/2024/9/24 16:59:32/

下载mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz包,上传至/usr/local目录下

新增mysql用户

su root
groupadd hbszdb
useradd -r -g hbszdb mysql
passwd mysql

一、解压安装

cd /usr/local
# 将压缩包的所有者授予mysql用户
chown -R mysql:hbszdb mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
chmod -R 750 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
# 让mysql用户可以在/user/local中新建文件夹,从而可以解压上面的压缩包
chmod 757 /usr/local/
​
# 切换mysql用户,解压压缩包
su mysql
tar -Jxvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
​
# 解压缩后的文件夹名太长,修改下
mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8
​
# 将/user/local的权限改回来,默认是755
chmod 755 /usr/local/

二、配置环境变量

su root
vi /etc/profile
# 在文件最后插入
export PATH=$PATH:/usr/local/mysql8/bin
# 重新加载环境
source /etc/profile
# 验证
​
mysql
# 说明环境变量生效:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
​
​
​
# 如果mysql用户要验证,也要执行上面这句source

三、创建数据目录

su mysql
mkdir -p /usr/local/mysql8/data

四、添加配置文件

su root
touch /usr/local/etc/my.cnf
chown -R mysql:hbszdb /usr/local/etc/my.cnf
# 更改权限
chmod -R 750 /usr/local/etc/my.cnf
​
su mysql
vi /usr/local/etc/my.cnf

4.1 配置文件内容

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 安装目录
basedir    = /usr/local/mysql8
# 数据存放目录
datadir    = /usr/local/mysql8/data/mysql
log-bin    = /usr/local/mysql8/data/mysql/mysql-bin
innodb_data_home_dir      =/usr/local/mysql8/data/mysql
innodb_log_group_home_dir =/usr/local/mysql8/data/mysql
# 日志及进程数据的存放目录
log-error =/usr/local/mysql8/data/mysql/mysql.log
pid-file  =/usr/local/mysql8/data/mysql/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 以上涉及文件夹明,注意修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

五、初始化

su mysql
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/usr/local/mysql8/data/mysql --user=mysql --initialize-insecure
  • --defaults-file:指定配置文件(要放在--initialize 前面)

  • --user: 指定用户

  • --basedir:指定安装目录

  • --datadir:指定初始化数据目录

  • --intialize-insecure:初始化无密码(否则生成随机密码)

    可能会报

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

    使用yum安装即可

    yum -y install libaio		

    六、安装

su mysql
/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

6.1 确认是否启动

# 输出有很多,就启动成功
ps -ef|grep mysql
# 连一下mysql,应该可以直接连上,不用密码
mysql

修改密码

# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

七、将mysql注册为服务,并开机自启动

su root
vi /etc/systemd/system/mysql.service

粘贴如下内容

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/8.0/en/using-systemd.html
After=network.target
After=syslog.target[Install]
WantedBy=multi-user.target[Service]
User=mysql
Group=hbszdb
Type=notify
TimeoutSec=0
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/usr/local/etc/my.cnf $MYSQLD_OPTSLimitNOFILE=65535
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

重新加载配置文件

systemctl daemon-reload

设置开机自启

systemctl enable mysqld


http://www.ppmy.cn/server/121431.html

相关文章

第十四届蓝桥杯嵌入式国赛

一. 前言 本篇博客主要讲述十四届蓝桥杯嵌入式的国赛题目,包括STM32CubeMx的相关配置以及相关功能实现代码以及我在做题过程中所遇到的一些问题和总结收获。如果有兴趣的伙伴还可以去做做其它届的真题,可去 蓝桥云课 上搜索历届真题即可。 二. 题目概述 …

统信服务器操作系统【targetcli部署】

targetcli部署方案 文章目录 功能概述功能介绍1.安装targetcli2.targetcli语法及参数说明3.示例1. 配置2.访问功能概述 SCSI 即小型计算机系统接口(Small Computer System Interface;简写:SCSI) iSCSI,internet SCSI 网络磁盘 ,提供一对一的网络存储, 主机A 提供xx存储设…

华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 7 推送卡片刷新消息

场景介绍 如今衣食住行娱乐影音应用占据了大多数人的手机,一部手机可以满足日常大多需求,但对需要经常查看或进行简单操作的应用来说,总需要用户点开应用体验较繁琐。针对此种场景,HarmonyOS提供了Form Kit(卡片开发服…

Java 在 GIS 领域的学习路线?

Java是一门广泛应用于企业级开发的编程语言,而GIS则是一种常用于地理信息处理和分析的技术。将Java与GIS结合起来,可以在企业级应用中实现更多的功能和业务需求,且在实际领域越来越广泛。 Java在GIS中重要的作用 1、跨平台性 Java具有跨平台…

在windows域批量创建OU

一、需求 在组织架构调整的时候,可能会批量新增多个组织单元OU,手工创建效率低,开发了一个powsershell脚本,批量创建OU。 二、代码 实现上分为两块,具体如下: (一)创建一个CSV文件…

GPU硬件如何实现光栅化?

版权声明 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明文章内容不得删减、修改、演绎本文视频版本:见文末 引言 大家好,我是老雷,今天我想从GPU硬件原理出发,给大家分享在图形渲…

【Python语言初识(一)】

一、python简史 1.1、python的历史 1989年圣诞节:Guido von Rossum开始写Python语言的编译器。1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调…

Unity3D Shader中的裁剪空间和屏幕空间详解

前言 在Unity3D中,Shader是图形渲染的核心,负责处理顶点数据并将其转换为最终的像素颜色。在渲染管线中,裁剪空间和屏幕空间是两个重要的概念,它们对于图形渲染的效率和结果有着至关重要的影响。本文将详细解析这两个空间的概念、…