[Linux服务器] Linux 下 MySQL 8 搭建教程

795 0
Honkers 2025-8-9 13:18:31 | 显示全部楼层 |阅读模式

一、下载

你可以从 MySQL 官方下载地址 下载所需的 MySQL 安装包。

二、环境准备

1. 查看 MySQL 是否存在

使用以下命令查看系统中是否已经安装了 MySQL:

  1. rpm -qa|grep -i mysql
复制代码

2. 清空 /etc/ 目录下的 my.cnf

执行以下命令删除 my.cnf 文件:

  1. [root@localhost ~]# rm -rf /etc/my.cnf
复制代码

3. 删除 mariadb

使用 yum 命令删除 mariadb:

  1. [root@localhost ~]# yum -y remove mariadb
复制代码

4. 清空带有 mysql 的所有文件

使用 find 命令查找并删除所有包含 mysql 的文件:

  1. [root@localhost ~]# find / -name "*mysql*" -exec rm -rf {} \;
复制代码

5. 检查并安装依赖库

查看是否安装了 MySQL 依赖库 libaio,如果没有安装则进行安装:

  1. [root@localhost ~]# yum list installed |grep libaio
  2. libaio.x86_64 0.3.109-13.el7 @anaconda
复制代码

若未安装,执行以下命令安装:

  1. yum -y install libaio
复制代码

6. 解压 MySQL 压缩包并更名

解压 MySQL 压缩包:

  1. tar xvJf mysql-8.0.41-linux-glibc2.17-x86_64.tar.xz
复制代码

附注:tar 命令参数解释:

  • -x:解开已有的归档文件
  • -v:显示详细的过程
  • -J:使用 xz 压缩或解压归档文件
  • -f:指定归档文件名

重命名解压后的文件夹:

  1. mv mysql-8.0.41-linux-glibc2.17-x86_64 mysql-8.0.41
复制代码

7. 移动项目文件

将解压并重命名后的 MySQL 文件夹移动到 /usr/local/mysql/ 目录下:

  1. [root@localhost ~]# cp -r mysql-8.0.41 /usr/local/mysql/mysql-8.0.411
复制代码

8. 创建 mysql 组和用户

为了满足生产环境服务器对 root 用户的限制,需要创建 mysql 组和用户:

  1. # 创建 mysql 组
  2. groupadd mysql
  3. # 创建 mysql 用户
  4. useradd -g mysql mysql
复制代码

示例:

  1. [root@localhost ~]# useradd -r -s /sbin/nologin mysql
  2. [root@localhost ~]# id mysql
  3. uid=997(mysql) gid=995(mysql) 组=995(mysql)
复制代码

创建一个文件:

  1. [root@localhost ~]# mkdir /usr/local/mysql/mysql-8.0.411/mysql-files
复制代码

修改权限:

  1. [root@localhost ~]# chown mysql:mysql /usr/local/mysql/mysql-8.0.411/mysql-files
  2. [root@localhost ~]# chmod 750 /usr/local/mysql/mysql-8.0.411/mysql-files/
复制代码

给解压的 MySQL 文件夹及创建的 data 文件夹修改用户及用户组权限:

  1. chown -R mysql:mysql /usr/local/soft/mysql/
复制代码

三、设置 MySQL 配置文件 my.cnf

使用 vim 编辑器打开并编辑 /etc/my.cnf 文件:

  1. [root@chen mysql]# vim /etc/my.cnf
复制代码

配置内容如下:

  1. [mysqld]
  2. # 设置 MySQL 服务监听端口,默认 3306
  3. port=3306
  4. # 设置 MySQL 服务器绑定的 IP 地址,可以设置为自己本机 IP
  5. bind-address=0.0.0.0
  6. # 设置 MySQL 数据库用户
  7. user=mysql
  8. # 数据库文件路径
  9. basedir=/usr/local/mysql/mysql-8.0.41
  10. # 数据库数据目录,存储数据库文件的路径
  11. datadir=/usr/local/mysql/mysql-8.0.41/data
  12. # 设置 MySQL 服务器使用的套接字文件路径
  13. socket=/usr/local/mysql/mysql-8.0.41/mysql.sock
  14. # datadir=/var/lib/mysql
  15. # socket=/var/lib/mysql/mysql.sock
  16. # Disabling symbolic-links is recommended to prevent assorted security risks
  17. symbolic-links=0
  18. # Settings user and group are ignored when systemd is used.
  19. # If you need to run mysqld under a different user or group,
  20. # customize your systemd unit file for mariadb according to the
  21. # instructions in http://fedoraproject.org/wiki/Systemd
  22. # 设置每个连接的默认字符集
  23. character_set_server=utf8mb4
  24. explicit_defaults_for_timestamp=true
  25. lower_case_table_names = 1
  26. # 配置 MySQL 的自动扩展参数
  27. innodb_autoextend_increment=64
  28. log-error=/usr/local/mysql/mysql-8.0.41/logs/mysql.log
  29. pid-file=/usr/local/mysql/mysql-8.0.41/mysql.pid
  30. [mysqld_safe]
  31. # 设置指定存放进程 ID 的文件
  32. log-error=/usr/local/mysql/mysql-8.0.4/logs/mysql.log
  33. pid-file=/usr/local/mysql/mysql-8.0.4/mysql.pid
  34. # log-error=/var/log/mariadb/mariadb.log
  35. # pid-file=/var/run/mariadb/mariadb.pid
  36. [client]
  37. socket = /usr/local/mysql/mysql-8.0.4/mysql.sock
  38. #
  39. # include all files from the config directory
  40. #
  41. !includedir /etc/my.cnf.d
复制代码

四、Mysql 初始化

Linux 中的 MySQL 默认是区分表名大小写的,如果你安装的是 MySQL 8,需要在数据库初始化时设置不区分大小写,否则初始化后在配置文件中设置并重启时会报错。

使用 mysql 的 bin 下面的 mysqld 脚本进行初始化:

  1. /usr/local/mysql/mysql-8.0.41
  2. /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
复制代码

示例:

  1. [root@localhost ~]# /usr/local/mysql/mysql-8.0.4/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.4/mysql-8.0.40
  2. 2024-08-05T02:12:23.829793Z 0 [System] [MY-013169] [Server] /usr/local/mysql/mysql-8.0.4/bin/mysqld (mysqld 8.0.33) initializing of server in progress as process 3849
  3. 2024-08-05T02:12:23.841538Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
  4. 2024-08-05T02:12:24.709625Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
  5. 2024-08-05T02:12:25.810204Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: v,es=69BKU25
复制代码

判断是否初始化成功

  1. [root@localhost ~]# ls /usr/local/mysql/mysql-8.0.4/
复制代码

出现 data 表示初始化成功。

设置 ssl 安全加密连接

  1. [root@localhost ~]# cd /usr/local/mysql/mysql-8.0.41/
  2. [root@localhost mysql]# ls ./bin/*ssl*
  3. ./bin/mysql_ssl_rsa_setup
  4. [root@localhost mysql]# ./bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/mysql-8.0.4/data
  5. [root@localhost mysql]# ls ./data/
  6. auto.cnf #ib_16384_0.dblwr #innodb_temp public_key.pem undo_002
  7. ca-key.pem #ib_16384_1.dblwr mysql server-cert.pem
  8. ca.pem ib_buffer_pool mysql.ibd server-key.pem
  9. client-cert.pem ibdata1 performance_schema sys
  10. client-key.pem #innodb_redo private_key.pem undo_001
复制代码

其他配置

  1. [root@localhost ~]# ls /usr/local/mysql/mysql-8.0.41/support-files
  2. mysqld_multi.server mysql-log-rotate mysql.server
复制代码

五、启动并登录 MySQL,设置 MySQL 开机自启动

加入到系统服务并启动 mysql

  1. cp /usr/local/mysql/mysql-8.0.41/support-files/mysql.server /etc/init.d/mysql
复制代码

修改 mysql 自启服务配置

  1. vim /etc/init.d/mysql
复制代码

启动服务

  1. service mysql start
复制代码

登录 mysql

  1. /usr/local/mysql/mysql-8.0.41/bin/mysql -u root -p
复制代码

登录成功后会提示你重置密码,修改密码:

  1. ALTER USER 'root'@'localhost' IDENTIFIED BY 'uacsapp';
  2. FLUSH PRIVILEGES;      # 刷新
复制代码

退出:

  1. quit
复制代码

重启服务:

  1. service mysql restart
复制代码

再次登陆:

  1. /usr/local/mysql/mysql-8.0.41/bin/mysql -u root -p
复制代码

输入刚修改的密码,按回车键。到此,MySQL 已经安装完成。

环境路径配置

  1. [root@localhost ~]# vim /etc/profile
复制代码

在文件中添加以下内容:

  1. export PATH=$PATH:/usr/local/mysql/mysql-8.0.4/
复制代码

使配置生效:

  1. [root@localhost ~]# source /etc/profile
复制代码

设置开机自启动(方法一)

添加服务列表的方式,放置到 /etc/rc.d/init.d 中:

  1. # copy 并重命名
  2. cp /usr/local/mysql/mysql-8.0.41/support-files/mysql.server /etc/rc.d/init.d/mysql
  3. # 复制成功后我们需要给赋予权限
  4. chmod +x /etc/init.d/mysql
  5. # 添加为服务:
  6. chkconfig --add mysql
  7. # 查看服务列表
  8. chkconfig --list
复制代码

看到 mysql 服务的 3、4、5 状态为开或者为 on 则表示成功。如果是关或者 off 则执行以下命令:

  1. chkconfig --level 345 mysqld on
复制代码

重启计算机:

  1. reboot
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行