南七星之家 发表于 2025-5-26 09:45:26

Linux 下 MySQL 8 搭建教程

一、下载

你可以从 MySQL 官方下载地址 下载所需的 MySQL 安装包。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9pbWdfY29udmVydC82NTU4YjMxM2IwZTU1MjczM2NlN2Y3MTRlNGJkY2M3NC5wbmc=
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9pbWdfY29udmVydC83ZTQzZjhjOTFiMzRiZGNjZjE4YjljMmE5OWY0MjFkOS5wbmc=
二、环境准备

1. 查看 MySQL 是否存在

使用以下下令查看体系中是否已经安装了 MySQL:
rpm -qa|grep -i mysql
2. 清空 /etc/ 目录下的 my.cnf

执行以下下令删除 my.cnf 文件:
# rm -rf /etc/my.cnf
3. 删除 mariadb

使用 yum 下令删除 mariadb:
# yum -y remove mariadb
4. 清空带有 mysql 的所有文件

使用 find 下令查找并删除所有包罗 mysql 的文件:
# find / -name "*mysql*" -exec rm -rf {} \;
5. 检查并安装依靠库

查看是否安装了 MySQL 依靠库 libaio,如果没有安装则进行安装:
# yum list installed |grep libaio
libaio.x86_64                         0.3.109-13.el7                   @anaconda
若未安装,执行以下下令安装:
yum -y install libaio
6. 解压 MySQL 压缩包并更名

解压 MySQL 压缩包:
tar xvJf mysql-8.0.41-linux-glibc2.17-x86_64.tar.xz
附注:tar 下令参数表明:


[*]-x:解开已有的归档文件
[*]-v:显示具体的过程
[*]-J:使用 xz 压缩或解压归档文件
[*]-f:指定归档文件名
重定名解压后的文件夹:
mv mysql-8.0.41-linux-glibc2.17-x86_64 mysql-8.0.41
7. 移动项目文件

将解压并重定名后的 MySQL 文件夹移动到 /usr/local/mysql/ 目录下:
# cp -r mysql-8.0.41 /usr/local/mysql/mysql-8.0.411
8. 创建 mysql 组和用户

为了满意生产环境服务器对 root 用户的限制,需要创建 mysql 组和用户:
# 创建 mysql 组
groupadd mysql
# 创建 mysql 用户
useradd -g mysql mysql
示例:
# useradd -r -s /sbin/nologin mysql
# id mysql
uid=997(mysql) gid=995(mysql) 组=995(mysql)
创建一个文件:
# mkdir /usr/local/mysql/mysql-8.0.411/mysql-files
修改权限:
# chown mysql:mysql /usr/local/mysql/mysql-8.0.411/mysql-files
# chmod 750 /usr/local/mysql/mysql-8.0.411/mysql-files/
给解压的 MySQL 文件夹及创建的 data 文件夹修改用户及用户组权限:
chown -R mysql:mysql /usr/local/soft/mysql/
三、设置 MySQL 设置文件 my.cnf

使用 vim 编辑器打开并编辑 /etc/my.cnf 文件:
# vim /etc/my.cnf
设置内容如下:

# 设置 MySQL 服务监听端口,默认 3306
port=3306
# 设置 MySQL 服务器绑定的 IP 地址,可以设置为自己本机 IP
bind-address=0.0.0.0
# 设置 MySQL 数据库用户
user=mysql
# 数据库文件路径
basedir=/usr/local/mysql/mysql-8.0.41
# 数据库数据目录,存储数据库文件的路径
datadir=/usr/local/mysql/mysql-8.0.41/data
# 设置 MySQL 服务器使用的套接字文件路径
socket=/usr/local/mysql/mysql-8.0.41/mysql.sock
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
# 设置每个连接的默认字符集
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
lower_case_table_names = 1
# 配置 MySQL 的自动扩展参数
innodb_autoextend_increment=64
log-error=/usr/local/mysql/mysql-8.0.41/logs/mysql.log
pid-file=/usr/local/mysql/mysql-8.0.41/mysql.pid


# 设置指定存放进程 ID 的文件
log-error=/usr/local/mysql/mysql-8.0.4/logs/mysql.log
pid-file=/usr/local/mysql/mysql-8.0.4/mysql.pid
# log-error=/var/log/mariadb/mariadb.log
# pid-file=/var/run/mariadb/mariadb.pid

socket = /usr/local/mysql/mysql-8.0.4/mysql.sock
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
四、Mysql 初始化

Linux 中的 MySQL 默认是区分表名大小写的,如果你安装的是 MySQL 8,需要在数据库初始化时设置不区分大小写,否则初始化后在设置文件中设置并重启时会报错。
使用 mysql 的 bin 下面的 mysqld 脚本进行初始化:
/usr/local/mysql/mysql-8.0.41
/bin/mysqld --defaults-file=/usr/local/soft/mysql/my.cnf --user=mysql --basedir=/usr/local/mysql/mysql-8.0.41 --datadir=/usr/local/soft/mysql/data --lower-case-table-names=1 --initialize
示例:
# /usr/local/mysql/mysql-8.0.4/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.4/mysql-8.0.40
2024-08-05T02:12:23.829793Z 0 /usr/local/mysql/mysql-8.0.4/bin/mysqld (mysqld 8.0.33) initializing of server in progress as process 3849
2024-08-05T02:12:23.841538Z 1 InnoDB initialization has started.
2024-08-05T02:12:24.709625Z 1 InnoDB initialization has ended.
2024-08-05T02:12:25.810204Z 6 A temporary password is generated for root@localhost: v,es=69BKU25
判断是否初始化成功

# ls /usr/local/mysql/mysql-8.0.4/
出现 data 表现初始化成功。
设置 ssl 安全加密连接

# cd /usr/local/mysql/mysql-8.0.41/
# ls ./bin/*ssl*
./bin/mysql_ssl_rsa_setup
# ./bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/mysql-8.0.4/data
# ls ./data/
auto.cnf         #ib_16384_0.dblwr#innodb_temp      public_key.pem   undo_002
ca-key.pem       #ib_16384_1.dblwrmysql               server-cert.pem
ca.pem         ib_buffer_pool   mysql.ibd         server-key.pem
client-cert.pemibdata1            performance_schemasys
client-key.pem   #innodb_redo       private_key.pem   undo_001
其他设置

# ls /usr/local/mysql/mysql-8.0.41/support-files
mysqld_multi.servermysql-log-rotatemysql.server
五、启动并登录 MySQL,设置 MySQL 开机自启动

加入到体系服务并启动 mysql

cp /usr/local/mysql/mysql-8.0.41/support-files/mysql.server /etc/init.d/mysql
修改 mysql 自启服务设置

vim /etc/init.d/mysql
启动服务

service mysql start
登录 mysql

/usr/local/mysql/mysql-8.0.41/bin/mysql -u root -p

登录成功后会提示你重置暗码,修改暗码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'uacsapp';
FLUSH PRIVILEGES;      # 刷新
退出:
quit
重启服务:
service mysql restart
再次登陆:
/usr/local/mysql/mysql-8.0.41/bin/mysql -u root -p

输入刚修改的暗码,按回车键。到此,MySQL 已经安装完成。
环境路径设置

# vim /etc/profile
在文件中添加以下内容:
export PATH=$PATH:/usr/local/mysql/mysql-8.0.4/
使设置生效:
# source /etc/profile
设置开机自启动(方法一)

添加服务列表的方式,放置到 /etc/rc.d/init.d 中:
# copy 并重命名
cp /usr/local/mysql/mysql-8.0.41/support-files/mysql.server /etc/rc.d/init.d/mysql
# 复制成功后我们需要给赋予权限
chmod +x /etc/init.d/mysql
# 添加为服务:
chkconfig --add mysql
# 查看服务列表
chkconfig --list
看到 mysql 服务的 3、4、5 状态为开大概为 on 则表现成功。如果是关大概 off 则执行以下下令:
chkconfig --level 345 mysqld on
重启计算机:
reboot
页: [1]
查看完整版本: Linux 下 MySQL 8 搭建教程