二进制安装MySQL8
1.创建用户组
[root@localhost ~]# groupadd -g 27 mysql && useradd -g 27 -u 27 -M -s /sbin/nologin mysql
#创建了一个名为mysql的用户和组,分别赋予了它们特定的ID(UID和GID为27),并设置了用户不能直接登录系统,确保MySQL服务在一个具有特定权限和限制的环境中运行,增加了系统的安全性和管理的灵活性
查看mysql用户
2.解压压缩包
[root@localhost ~]# tar xzvf mysql-8.0.26-el7-x86_64.tar.gz
3.移动压缩包
[root@localhost ~]# mv mysql-8.0.26-el7-x86_64 /usr/local/mysql
#如果没有该目录的话会自动创建该目录
4.给mysql用户授权该目录
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
#将 /usr/local/mysql/ 目录及其内部所有文件和子目录的所有者和组都更改为 mysql
5.创建日志文件并授权
[root@localhost ~]# touch /var/log/mysql.log && chown -R mysql:mysql /var/log/mysql.log
#日志文件放在哪个目录下都可以,看个人习惯
6.编辑配置文件
[root@localhost ~]# vim /etc/my.cnf
[mysqld] //mysql服务相关的配置
basedir=/usr/local/mysql #MySQL安装目录
datadir=/usr/local/mysql/data #数据库数据文件存放目录
socket=/usr/local/mysql/data/mysql.sock #MySQL使用的Unix socket文件路径;mysql socket的作用:用于应用程序间的通信。让本地客户端优先使用socket文件连接,获得更好的性能。限制只有有权限访问该socket文件的进程才能连接MySQL,提高安全性
port=3306 #MySQL监听的TCP/IP 端口号
default-storage-engine = innodb #默认的存储引擎,这里使用的是Innodb
innodb_file_per_table = on #开启每个表使用单独的表空间文件
max_connections = 10000 #最大允许的并发连接数
collation-server =utf8mb4_general_ci #设置MySQL服务器(全局)的默认字符集和校对规则。
character_set_server=utf8mb4 #设置了MySQL服务器(整个实例)的默认字符集。
log-error=/usr/local/mysql/data/mysql_error.log #指定错误日志的保存位置和文件名。
general_log=ON #开启通用查询日志,用来记录MySQL的所有连接和语句
general_log_file=/usr/local/mysql/data/mysql_general.log #指定通用查询日志存放位置
log-bin=mysql-bin # 二进制日志
binlog—format=MIXET #混合记录
server-id = 1
slow_query_log=ON #开启慢查询日志查询
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log #慢查询日志存放位置
long_query_time=5 #设置超过5秒执行的语句被记录,缺省时为10秒
user=mysql //MySQL服务运行的用户
[client] //客户端配置
port = 3306 #(在[client]部分)表示客户端连接MySQL时使用的端口
socket = /usr/local/mysql/data/mysql.sock #(在[client]部分)表示客户端连接MySQL时使用的Unix socket文件路径
default-character-set = utf8mb4 #(在[client]部分) 表示客户端连接时使用的默认字符集
[mysqld_safe] //[mysqld_safe]部分是针对MySQL的mysqld_safe启动脚本的配置
log-error=/var/log/mysql.log #指定mysqld_safe脚本的日志文件路径为/var/log/mysql.log。
7.添加环境变量
1.[root@localhost ~]# cat >>/etc/profile<<EOF
> export PATH=\${PATH}:/usr/local/mysql/bin/
> EOF #将/usr/local/mysql/bin/目录添加到系统的PATH环境变量中,使得系统能够在该目录中查找MySQL的可执行文件
2.[root@localhost ~]# echo 'export PATH=${PATH}:/usr/local/mysql/bin'>>/etc/profile #将export PATH=${PATH}:/usr/local/mysql/bin这行代码追加到/etc/profile文件的末尾
3.[root@localhost ~]# source /etc/profile #立即生效
8.安装依赖
[root@localhost ~]# yum install ncurses-compat-libs libaio
9.初始化数据库,密码在最后一行
[root@localhost ~]# mysqld --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql
mysqld:这是 MySQL 服务器的主程序。它可以执行各种管理任务,如初始化数据目录、升级系统表等。
--initialize:这个选项告诉 mysqld 执行初始化操作。初始化过程包括创建系统表、填充必要的初始数据等,
--basedir=/usr/local/mysql/:这个选项指定了 MySQL 安装的根目录。--basedir 选项用于告诉 mysqld 在哪里可以找到其可执行文件、库文件、配置文件等。
--datadir=/usr/local/mysql/data:这个选项指定了 MySQL 数据目录的位置。--datadir 选项对于初始化操作特别重要,因为它决定了系统表和其他数据库文件应该存放在哪里。
--user=mysql:这个选项指定了运行 MySQL 服务器进程的用户。
10.添加启动脚本
[root@localhost ~]# vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server #服务描述
Documentation=man:mysqld(8) #服务文档链接
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html #官方文档
After=network.target #服务启动顺序,确保网络启动
After=syslog.target #服务启动顺序,确保日志服务已启动
[Install]
WantedBy=multi-user.target #当系统进入多用户模式时(即大多数服务都已经启动),MySQL 服务应该被启动。
[Service]
User=mysql #运行用户
Group=mysql #运行组
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf #启动服务的命令,并指定配置文件
LimitNOFILE = 5000 #设置操作系统默认允许mysql进程最大打开文件的数量
11.启动MySQL
[root@localhost ~]# systemctl daemon-reload #重新加载配置文件
[root@localhost ~]# systemctl enable --now mysql.service #立即开机自启
[root@localhost ~]# systemctl start mysql.service # 启动服务
[root@localhost ~]# systemctl enable mysql #开机自启
[root@localhost ~]# systemctl status mysql #查看服务状态
12.修改密码并设置用不过期
mysql> alter user 'root'@'localhost' identified by 'lmx'; #修改密码
mysql> alter user 'root'@'localhost' password expire never; #设置用不过期
mysql> flush privileges; #重新加载授权列表
mysql> select user(); #查看登录用户
mysql> select version(); #查看版本是否一致
mysql> select user,host from mysql.user; 查看用户表
如果忘记密码的话
可以先停服务,再进入安全模式
在/etc/my.cnf的mysqld中添加 --skip-grant-tables #进入安全模式
mysql -u root #直接登录
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码'); #重置密码
标签:MySQL8,root,mysql,local,二进制,usr,MySQL,安装,localhost
From: https://blog.csdn.net/2301_80479959/article/details/144084173