在CentOS7.9中安装MySQL5.7

一、下载并安装tar包

1、下载MySQL安装包以及xssh还有VMware17.0

2、解压MySQL安装包

  • 执行以下命令将 MySQL 安装包解压到 /opt/soft/ 目录下:
cd /opt
tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /opt/soft/
  • mysql-5.7.34-linux-glibc2.12-x86_64重命名为mysql-5.7.34

二、创建 MySQL 用户和用户组

  • 为了更好的安全性,需要创建一个专门的用户和用户组来运行 MySQL。执行以下命令创建 mysql 组和 mysql 用户:
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

三、创建 MySQL 数据目录并赋予权限

  • MySQL 的数据目录用于存放数据库文件,执行以下命令创建 /data/mysql 目录并授予 mysql 用户所有者权限:
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql

四、配置 MySQL

'这一步MySQL5.7之前的版本不需要'

  • 复制 MySQL 的配置文件模板到 /etc/my.cnf
cp /opt/soft/mysql-8.0.32/support-files/my-default.cnf /etc/my.cnf
  • 修改/etc/my.cnf文件
[mysqld]
port=3306
user=mysql
basedir=/opt/soft/mysql-8.0.32    # MySQL服务器的安装目录,自行替换
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
character-set-server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

[mysqld_safe]
# 这里的两个命令需要注释

解释版:

[mysqld]  # 标识这是mysqld服务的配置文件段

port=3306  # MySQL服务器使用的端口号

user=mysql  # MySQL服务进程将使用的系统用户

basedir=/opt/soft/mysql-8.0.32  # MySQL服务器的安装目录

datadir=/data/mysql  # MySQL数据文件的存储目录

socket=/tmp/mysql.sock  # MySQL服务器使用的UNIX套接字文件

log-error=/data/mysql/mysql.err  # MySQL服务器的错误日志文件路径

pid-file=/data/mysql/mysql.pid  # MySQL服务器的PID文件路径

character-set-server=utf8mb4  # MySQL服务器的默认字符集

symbolic-links=0  # 指定是否启用符号链接(0表示禁用,1表示启用)

explicit_defaults_for_timestamp=true  # 指定时间戳(timestamp)的默认值,设置为TRUE将更改MySQL的行为

五、初始化 MySQL

执行以下命令初始化 MySQL:

cd /opt/soft/mysql-8.0.32/
bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql --basedir=/opt/soft/mysql-8.0.32 --datadir=/data/mysql

这个命令的作用是在/data/mysql目录下初始化MySQL数据目录,将其配置为使用/opt/soft/mysql-8.0.32作为MySQL安装目录,mysql作为MySQL进程的系统用户,并且使用/etc/my.cnf作为MySQL的配置文件。其中--initialize-insecure参数表示在初始化数据目录时不生成root用户的密码,这意味着root用户将无法通过密码进行身份验证,而需要使用其他身份验证方法来访问MySQL服务器。

  • bin/mysqld:指定mysqld可执行文件的路径
  • --defaults-file=/etc/my.cnf:指定MySQL配置文件的路径
  • --initialize-insecure:初始化MySQL数据目录,不生成随机的root密码
  • --user=mysql:MySQL进程使用的系统用户
  • --basedir=/opt/soft/mysql-8.0.32:MySQL安装目录的路径
  • --datadir=/data/mysql:MySQL数据目录的路径

六、设置启动MySQL配置文件:

将 MySQL 的启动脚本复制到 /etc/init.d 目录下:

cp /opt/soft/mysql-8.0.32/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

七、启动 MySQL:

启动:

service mysql start

停用:

service mysql stop

八、登录 MySQL 重置密码

进入 mysql 的安装目录下

cd /root/soft/mysql/bin            # 进入MySQL安装目录下
./mysql -uroot -p                        # 启动

此处不需要输入密码,可成功进入。然后修改设置登录密码

修改密码为123

use mysql;        # 切换到mysql数据库
ALTER USER 'root'@'localhost' IDENTIFIED BY '123';        # 修改root用户的密码为 123
flush privileges;        # 新权限,让修改立即生效
quit;            # 退出MySQL客户端命令行

注意:在实际使用中,应该使用更复杂和安全的密码,而不是简单的123。在程序的结尾都要加上;分号

将 skip-grant-tables 删掉或注释掉没有就不用管

 vim /etc/my.cnf 

最后重启MySQL服务:

service mysql restart

查看数据:

show databases;        #

完事了

若出现错误

[root@localhost mysql-8.0.32]# cd /opt/soft/mysql-8.0.32/
[root@localhost mysql-8.0.32]# bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql --basedir=/opt/soft/mysql-8.0.32 --datadir=/data/mysql
2023-03-15T21:40:09.600341Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2023-03-15T21:40:09.600351Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2023-03-15T21:40:09.600705Z 0 [System] [MY-013169] [Server] /opt/soft/mysql-8.0.32/bin/mysqld (mysqld 8.0.32) initializing of server in progress as process 2069
2023-03-15T21:40:09.603375Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2023-03-15T21:40:09.603387Z 0 [ERROR] [MY-013236] [Server] The designated data directory /data/mysql/ is unusable. You can remove all files that the server added to it.
2023-03-15T21:40:09.603514Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-03-15T21:40:09.603684Z 0 [System] [MY-010910] [Server] /opt/soft/mysql-8.0.32/bin/mysqld: Shutdown complete (mysqld 8.0.32)  MySQL Community Server - GPL.

使用bin/mysqld命令来初始化MySQL服务器,并指定--defaults-file选项来指定MySQL配置文件的位置为/etc/my.cnf,指定--initialize-insecure选项来使用不安全模式进行初始化,指定--user选项将MySQL的用户设置为mysql,指定--basedir选项将MySQL的基础目录设置为/opt/soft/mysql-8.0.32,并指定--datadir选项将MySQL的数据目录设置为/data/mysql。然而,在执行命令时遇到了错误,错误消息显示:指定了--initialize选项,但数据目录中有文件存在,因此初始化终止。数据目录/data/mysql无法使用,你需要删除所有由服务器添加到该目录中的文件。MySQL服务器未成功初始化。

具体操作步骤如下:

  1. 停止 MySQL 服务:systemctl stop mysql
  2. 删除数据目录中的所有文件:rm -rf /data/mysql/*
  3. 重新运行初始化命令:bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql --basedir=/opt/soft/mysql-8.0.32 --datadir=/data/mysql
  4. 启动 MySQL 服务:service mysql start

在初始化完成后,MySQL 服务应该能够正常启动。如果还有其他问题,请查看日志文件以获取更多信息。

最后修改:2023 年 05 月 02 日
赞赏功能已关闭