在CentOS7.9中安装MySQL5.7
一、下载并安装tar包
1、下载MySQL安装包以及xssh还有VMware17.0
- 到 MySQL 官网下载 MySQL 的二进制安装包(tar.gz 格式)
- 或者下载老师提供的安装包,123网盘:https://www.123pan.com/s/lfKDVv-HthNH.html 提取码:1234
- Xshell & Xftp下载地址:https://www.123pan.com/s/lfKDVv-AthNH.html提取码:1122
- VMware17.0虚拟机:https://www.123pan.com/s/lfKDVv-9thNH.html提取码:1234
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环境变量
vim /etc/profile.d/my_env.sh
#MYSQL_HOME
export MYSQL_HOME=/opt/module/mysql
export PATH=$PATH:$MYSQL_HOME/bin
八、登录 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; #
完事了
设置开机启动Mysql
先将/usr/local/mysql/mysql/support-files/ 文件夹下的mysql.server文件复制到 /etc/rc.d/init.d/ 目录下mysqld
命令: cp /usr/local/mysql/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
赋予可执行权限:chmod +x /etc/init.d/mysqld
添加为服务: chkconfig --add mysqld
查看服务列表: chkconfig --list
看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下:chkconfig --level 345 mysqld on
重启计算机:reboot
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/x_u_xiang/article/details/118575209
若出现错误
如
[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服务器未成功初始化。
具体操作步骤如下:
- 停止 MySQL 服务:
systemctl stop mysql
。 - 删除数据目录中的所有文件:
rm -rf /data/mysql/*
。 - 重新运行初始化命令:
bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql --basedir=/opt/soft/mysql-8.0.32 --datadir=/data/mysql
。 - 启动 MySQL 服务:
service mysql start
。
在初始化完成后,MySQL 服务应该能够正常启动。如果还有其他问题,请查看日志文件以获取更多信息。