Loading... # 在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/ `目录下: ```bash 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 用户: ```bash groupadd mysql useradd -r -g mysql -s /bin/false mysql ``` ## 三、创建 MySQL 数据目录并赋予权限 - MySQL 的数据目录用于存放数据库文件,执行以下命令创建 /data/mysql 目录并授予 mysql 用户所有者权限: ```bash mkdir -p /data/mysql chown -R mysql:mysql /data/mysql ``` ## 四、配置 MySQL '这一步MySQL5.7之前的版本不需要' - 复制 MySQL 的配置文件模板到` /etc/my.cnf`: ```bash cp /opt/soft/mysql-8.0.32/support-files/my-default.cnf /etc/my.cnf ``` - 修改`/etc/my.cnf`文件 ```perl [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] # 这里的两个命令需要注释 ``` 解释版: ```apl [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: ```perl 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 目录下: ```perl cp /opt/soft/mysql-8.0.32/support-files/mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql ``` ## 七、启动 MySQL: ### 启动: ```sql service mysql start ``` ### 停用: ```sql 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 的安装目录下 ```apl 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 ``` ### 查看数据: ```apl show databases; # ``` 完事了 ![][1] ### 设置开机启动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 ``` ## 若出现错误 如 ```perl [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 服务应该能够正常启动。如果还有其他问题,请查看日志文件以获取更多信息。 [1]: https://a-hxin.cn/usr/uploads/2023/03/1326830397.png 最后修改:2024 年 04 月 03 日 © 允许规范转载 打赏 赞赏作者 赞 1 咱们谁跟谁,用不着~