这是选择:
关于 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