关于MySql8.3.0在CentOS7的tar包安装

这是官网地址:MySQL :: Download MySQL Community Server (Archived Versions)icon-default.png?t=N7T8https://downloads.mysql.com/archives/community/

这是选择:

关于 OS Version:

arm64和aarch64对应64位ARM架构(ARMv8),常见于移动设备和嵌入式系统。
armv7l和arm对应32位ARM架构(ARMv7),常见于较旧的移动设备和嵌入式系统。
x86_64、x64和amd64对应64位x86架构,常见于个人电脑和服务器。
x86和i386对应32位x86架构,常见于较旧的个人电脑。(基本上可以淘汰了)
dmg和zip通常表示macOS和Windows平台的安装包格式。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/crazyjinks/article/details/139093927

关于 glibc

glibc是GNU C库(GNU C Library)的缩写,它是Linux系统中最底层的API,为C程序提供核心库函数。这些函数提供了程序运行所需的基本服务,比如内存管理、程序初始化、字符串处理、数学计算等。glibc也提供了对操作系统服务的封装,比如文件操作、进程控制、信号处理等。

在Linux操作系统中,glibc是至关重要的组件,因为它提供了应用程序与系统调用之间的接口。不同的Linux发行版可能会使用不同版本的glibc,而软件包在编译时通常会指定依赖特定版本的glibc。

在软件包的文件名中包含glibc版本是为了表明这个软件包是在特定版本的glibc上编译的,这样用户就可以确保他们的系统上有兼容的glibc版本。例如,mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz 这个文件名表明这个MySQL二进制包是在glibc 2.17版本上编译的,适用于x86_64架构的Linux系统。

如果您尝试在一个低于所需版本的glibc上运行这个软件包,可能会遇到兼容性问题。因此,在安装这类软件包之前,您应该检查您的系统上安装的glibc版本,确保它与软件包所需的版本相匹配或更高。您可以使用以下命令来检查glibc的版本:

ldd --version
或者
getconf GNU_LIBC_VERSION
如果您的系统上的glibc版本低于软件包所需的版本,您可能需要升级glibc,或者寻找一个为您的glibc版本编译的软件包版本。

1. 指定目录解压

[root@iZ2ze2kc6y950jcv42sw18Z mysql]# tar -xvf ./mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz
mysql-8.3.0-linux-glibc2.17-x86_64/bin/
mysql-8.3.0-linux-glibc2.17-x86_64/bin/myisam_ftdump
mysql-8.3.0-linux-glibc2.17-x86_64/bin/myisamchk
...

2. 用户权限问题

#检测是否存在,如无则创建
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
#创建mysql用户组
groupadd mysql
#创建一个用户名为mysql的用户,并加入mysql用户组,在创建用户时,-s /bin/false 参数用于指定用户默认的登录shell。这里的 /bin/false 是一个特殊的shell,当用户尝试登录时,它会立即拒绝登录请求,返回一个非零的退出状态。
这个参数通常与 -r 选项一起使用,-r 表示创建一个系统用户,即一个没有家目录且不允许登录的用户。这种类型的用户通常用于运行某些服务,比如 MySQL,而不需要为这些服务提供交互式登录的能力。
useradd -r -g mysql -s /bin/false mysql

#修改mysql用户的登陆密码(不少于8位)
passwd mysql

#授权mysql目录
chown -R mysql:mysql /000/mysql


#删除用户
#userdel -r mysql
#groupdel mysql



3. 配置环境变量

vi /etc/profile.d/mysql_env.sh
        
        写入以下bin路径

       export PATH=$PATH:/000/mysql/mysql-8.3.0-linux-glibc2.17-x86_64/bin

chmod +x /etc/profile.d/mysql_env.sh

source /etc/profile

4. 配置my.cnf文件

(可以自定义配置文件位置,但是需要启动参数)

[mysqld]
lower_case_table_names          = 1
user                            = mysql
server_id                       = 1
port                            = 3306
 
default-time-zone = '+08:00'
enforce_gtid_consistency        = ON
gtid_mode                       = ON
binlog_checksum                 = none
default_authentication_plugin   = mysql_native_password
datadir                         = /000/mysql/data
pid-file                        = /000/mysql/tmp/mysqld.pid
socket                          = /000/mysql/tmp/mysqld.sock
tmpdir                          = /000/mysql/tmp/
skip-name-resolve               = ON
open_files_limit                = 65535
table_open_cache                = 2000
 
#################innodb########################
innodb_data_home_dir            = /000/mysql/data
innodb_data_file_path           = ibdata1:512M;ibdata2:512M:autoextend
innodb_buffer_pool_size = 12000M
innodb_flush_log_at_trx_commit = 1
innodb_io_capacity = 600
innodb_lock_wait_timeout = 120
innodb_log_buffer_size = 8M
innodb_log_file_size = 200M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 85
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_thread_concurrency = 32
innodb_file_per_table
innodb_rollback_on_timeout
 
innodb_undo_directory           = /000/mysql/data
innodb_log_group_home_dir       = /000/mysql/data
 
###################session###########################
join_buffer_size = 8M
key_buffer_size = 256M
bulk_insert_buffer_size = 8M
max_heap_table_size = 96M
tmp_table_size = 96M
read_buffer_size = 8M
sort_buffer_size = 2M
max_allowed_packet = 64M
read_rnd_buffer_size = 32M
 
############log set###################
log-error                       = /000/mysql/log/mysqld.err
log-bin                         = /000/mysql/binlog/binlog
log_bin_index                   = /000/mysql/binlog/binlog.index
max_binlog_size                 = 500M
slow_query_log_file             = /000/mysql/log/slow.log
slow_query_log                  = 1
long_query_time                 = 10
log_queries_not_using_indexes   = ON
log_throttle_queries_not_using_indexes  = 10
log_slow_admin_statements       = ON
log_output                      = FILE,TABLE

5. 初始化数据库

(开始处理数据库了,最好同步查看log目录下的日志,防止存在错误信息)


tail -200f /000/mysql/log/mysqld.err

[root@iZ2ze2kc6y950jcv42sw18Z mysql]# mysqld --defaults-file=/000/mysql/conf/my.cnf  --initialize-insecure  --user=mysql
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

出错了:
yum install -y libaio
解决。

6. 安装lsof查看端口

sudo yum install epel-release
sudo yum install lsof

7. 首次启动mysql

(要同步查看错误日志,必须初始化成功才能执行此操作)

mysqld_safe --defaults-file=/000/mysql/conf/my.cnf & 
#
守护进程模式: mysqld_safe默认以守护进程模式运行MySQL服务器,这意味着服务器在后台运行,不会打开控制台窗口。
异步启动: 命令末尾的&符号将MySQL服务器作为后台进程启动,允许您在执行命令后继续使用命令行界面。

lsof -i:3306

8. 首次本地连接数据库

[root@iZ2ze2kc6y950jcv42sw18Z mysql]# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
得使用sock文件进行连接,因为我们的sock文件位置自定义配置了路径
mysql -S /000/mysql/tmp/mysqld.sock

use mysql; 
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
update user set host = '%';

flush privileges;

[root@iZ2ze2kc6y950jcv42sw18Z mysql]# mysql -S /000/mysql/tmp/mysqld.sock
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
第二次使用的时候,不能直接连接了,需要密码

[root@iZ2ze2kc6y950jcv42sw18Z mysql]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
使用密码登录失败,找不到sock文件,配一个链接引用到真实地址

做一个软链接:
[root@iZ2ze2kc6y950jcv42sw18Z mysql]# ln -s /000/mysql/tmp/mysqld.sock /tmp/mysql.sock
[root@iZ2ze2kc6y950jcv42sw18Z mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.3.0 MySQL Community Server - GPL

Copyright (c) 2000, 2024, 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>exit;

9. 让mysql成为系统服务

(可以使用systemctl start mysql直接启动)

/etc/systemd/system目录下创建一个名为mysql.service的文件

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
After=network.target
After=syslog.target
[Service]
User=mysql
Group=mysql
ExecStart=/000/mysql/mysql-8.3.0-linux-glibc2.17-x86_64/bin/mysqld --defaults-file=/000/mysql/conf/my.cnf
LimitNOFILE = 5000
[Install]
WantedBy=multi-user.target


################################################
这样就可以直接systemctl 调用了
如果您想要设置MySQL服务开机自启,可以执行以下命令:

systemctl enable mysql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值