Linux安装 Mysql-5.7

本文详细介绍了如何在CentOS 7系统上安装MySQL 5.7,包括设置用户权限、配置文件调整、初始化数据库、设置远程访问及防火墙配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

服务器:Linux

客户端:Xshell 

系统:CentOS 7

Mysql:mysql-5.7

安装Mysql过程

一:系统约定

Mysql 下载存放目录:/soft

Mysql 目录安装位置:/usr/local/mysql

Mysql 数据库存放位置:/usr/local/mysql/data

Mysql 日志存放位置:/usr/local/mysql/log

二:用户组 用户 权限等约定

检查mysql组和用户是否存在,如无创建

[root@localhost local]# cat /etc/group | grep mysql
[root@localhost local]# cat /etc/passwd | grep mysql

创建mysql用户组
[root@localhost local]# groupadd mysql
创建一个用户名为mysql的用户并加入mysql用户组
[root@localhost local]# useradd -g mysql mysql

设置password 为例如:mysqlpwd
[root@localhost local]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:***
重新输入新的 密码:***
passwd:所有的身份验证令牌已经成功更新。

成功结果

 

三:安装开始

检查mysql是否存在
[root@localhost local]# rpm -qa | grep mysql
 

1、下载tar包到 soft/目录中,这里使用wget从官网下载

[root@localhost /]# cd soft/

[root@localhost /]#  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

2.解压

[root@localhost /]# cd soft/

[root@localhost soft]# tar -vxzf  mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

 3.重命名

[root@localhost /]# mv /soft/mysql-5.7.21-linux-glibc2.12-x86_64  /soft/mysql

4.移动(/soft/mysql 移动到/usr/local/)

[root@localhost soft]#   mv mysql  /usr/local/

5.更改所属的组和用户
[root@localhost local]# chown -R mysql mysql/
[root@localhost local]# chgrp -R mysql mysql/

6.在 /usr/local/mysql文件夹下创建  数据库数据存储目录  data
[root@localhost local]# cd mysql/
[root@localhost mysql]# mkdir data
#修改当前data目录拥有者为mysql用户
[root@localhost mysql]# chown -R mysql:mysql data   

7.在 /usr/local/mysql文件夹下创建  日志存储目录  log

[root@localhost local]# cd mysql/
[root@localhost mysql]# mkdir log
[root@localhost mysql]# chown -R mysql:mysql log

8.在etc下新建配置文件my.cnf,并在该文件内添加以下配置

[root@localhost mysql]# vi /etc/my.cnf

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
#default-storage-engine=INNODB
#lower_case_table_names=1
#max_allowed_packet=16M

# 取消密码验证
#skip-grant-tables  #设置密码后,注释掉
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
explicit_defaults_for_timestamp=true

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 

9.始化数据库

[root@localhost bin]# cd /usr/local/mysql/
[root@localhost mysql]# ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

2019-12-24 19:14:49 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2019-12-24 19:14:56 [WARNING] The bootstrap log isn't empty:
2019-12-24 19:14:56 [WARNING] 2019-12-25T03:14:49.623125Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2019-12-25T03:14:49.624103Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2019-12-25T03:14:49.624115Z 0 [Warning] Changed limits: table_open_cache: 407 (requested 2000)
 

10.

[root@localhost mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld
#将脚本文件设置成可执行文件
[root@localhost mysql]# chown 777 /etc/my.cnf
[root@localhost mysql]# chmod a+x /etc/init.d/mysqld

11.启动
[root@localhost mysql]# /etc/init.d/mysqld start    #启动
ERROR! MySQL server PID file could not be found!
Starting MySQL. SUCCESS! 

[root@localhost mysql]# /etc/init.d/mysqld stop     #停止
[root@localhost mysql]# /etc/init.d/mysqld restart  #重启

12.获得初始密码
[root@localhost mysql]# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2019-12-24 19:14:49 
oedf?:g<#T_l

13.使用安全模式登陆,跳过密码验证,设置密码 用户xiaolan 密码  123456

[root@localhost mysql]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysql -u root -p
mysql> use mysql;
//赋予任何主机访问数据的权限 并设置远程访问权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'xiaolan'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
//修改生效 
mysql>flush privileges;
//退出MySQL服务器
mysql>exit;

控制台修改 设置用户和密码 并设置远程访问权限 @‘%’ 表示在任何主机都可以登录
GRANT ALL PRIVILEGES ON *.* TO 'xiaolan'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

 

14.防火墙设置

 添加端口或关闭防火墙

15.设置开机启动

    chkconfig --list 列出所有的系统服务 
    chkconfig --add mysqld增加mysqld 服务 
    chkconfig --del mysqld 删除mysqld 服务

[root@localhost mysql]# chkconfig --level 35 mysqld on  #将httpd加入开机启动
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld #将mysqld加入开机启动
[root@localhost mysql]# chkconfig --list mysqld  #查看系统程序列表
[root@localhost mysql]# service mysqld status  #启动mysqld服务

16.重启机器验证是否启动
[root@localhost ~]#reboot

[root@localhost ~]# ps -ef | mysql

17.连接数据库

<think>嗯,用户这次的需求很明确:想在Linux系统上安装MySQL5.7.37。从引用内容看,用户之前可能遇到过安装错误(引用2提到初始化报错),这次特意指定了精确版本号,说明对版本一致性可能有严格要求,比如某些依赖项目需要特定小版本。注意到用户提供的两个引用都是关于手动安装二进制包(.tar.gz)的方式,引用1涉及pid文件权限配置,引用2提到了初始化参数。这暗示用户可能更倾向二进制安装而非apt/rpm包管理——虽然后者更方便,但二进制包在自定义路径和配置上更灵活。值得注意的风险点是:引用2显示的初始化命令包含自定义路径(--basedir和--datadir),但用户当前提问没提路径需求。考虑在回答中既保持路径的灵活性(用占位符),又提醒默认路径规则。同时要预防引用2的报错,重点强调初始化步骤的权限问题(mysql用户权限)。准备将安装分为下载准备、解压配置、权限设置、初始化、启动管理5个部分。特别注意:1)二进制安装需要手动解决依赖库(如libaio),需要明确列出检查命令2)初始化阶段用--initialize-insecure生成临时密码容易导致安全问题,所以采用更安全的--initialize3)引用1提到的pid文件权限问题,需在systemd服务文件中显式配置PIDFile位置用户是开发者还是运维?从精准版本需求看更像是开发环境部署。虽然回答给出完整步骤,但考虑补充说明“如果只是快速测试可用docker方案”作为备选。</think> 以下是在Linux系统上手动安装MySQL 5.7.37的完整指南(基于二进制包),结合最佳实践和常见问题解决方案: ### 安装步骤 1. **安装依赖库** ```bash sudo apt update sudo apt install libaio1 libnuma1 libtinfo5 ``` 2. **下载二进制包** ```bash wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz ``` 3. **解压安装** ```bash sudo tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ cd /usr/local sudo ln -s mysql-5.7.37-linux-glibc2.12-x86_64 mysql ``` 4. **创建系统用户** ```bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql ``` 5. **配置目录权限**(关键步骤,预防[引用1]权限问题) ```bash cd /usr/local/mysql sudo mkdir mysql-files sudo chown mysql:mysql mysql-files sudo chmod 750 mysql-files ``` 6. **初始化数据库**(解决[引用2]初始化报错) ```bash sudo bin/mysqld --initialize --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data ``` 7. **获取临时密码** ```bash sudo grep 'temporary password' data/*.err ``` 8. **启动服务** ```bash sudo cp support-files/mysql.server /etc/init.d/mysql sudo service mysql start ``` 9. **安全配置** ```bash bin/mysql_secure_installation ``` 按提示操作:重置root密码、移除匿名用户、禁用远程root登录等 ### 常见问题解决 1. **PID文件权限问题**(如[引用1]) ```bash sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld ``` 2. **初始化报错处理**(如[引用2]) - 检查依赖:`ldd bin/mysqld | grep "not found"` - 清理残留:`sudo rm -rf /etc/my.cnf data/` ### 环境配置 ```bash echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` ### 验证安装 ```bash mysqladmin -u root -p version # 应显示:mysqladmin Ver 8.42 Distrib 5.7.37... ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值