linux下安装mysql步骤

2022-12-16 11:48:45 浏览数 (1)

本文档讲解安装版本为mysql-5.7.29,对于5.7.29之后的版本,不适用此说明文档,主要原因在于之后版本的mysql配置文件的目录位置和结构有所改变,使用此说明可能会出现找不到配置文件或者配置后不生效的情况。

安装过程中务必保证文件路径的前后统一,否则可能会导致不可预期的结果,推荐直接使用文中的命令进行操作。

linux系统版本: CentOS 7.7 64位

安装源文件版本:mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

mysql安装位置:/usr/local/mysql/

数据库文件数据位置:/usr/local/mysql/data

一、安装前准备

1、检查是否已经安装过mysql,执行命令

root@localhost /# rpm -qa | grep mysql

从执行结果,可以看出我们已经安装了 mysql-libs-5.1.73-5.el6_6.x86_64 ,执行删除命令

root@localhost /# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

再次执行查询命令,查看是否删除

root@localhost /# rpm -qa | grep mysql

2、查询所有Mysql对应的文件夹

root@localhost /# whereis mysql

mysql: /usr/bin/mysql /usr/include/mysql

root@localhost lib# find / -name mysql

/data/mysql

/data/mysql/mysql

删除相关目录或文件

root@localhost /# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql

验证是否删除完毕

root@localhost /# whereis mysql

mysql:

root@localhost /# find / -name mysql

root@localhost /#

3、检查mysql用户组和用户是否存在,如果没有,则创建

root@localhost /# cat /etc/group | grep mysql

root@localhost /# cat /etc/passwd |grep mysql

root@localhost /# groupadd mysql

root@localhost /# useradd -r -g mysql mysql

root@localhost /#

4、从官网下载是用于Linux的Mysql安装包

下载命令:

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

也可以直接到mysql官网选择其他版本进行下载。

二、安装Mysql

1、在执行 wget 命令的目录下或你的上传目录下找到Mysql安装包: mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

执行解压命令:

代码语言:txt复制
[root@localhost /]#  tar xzvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
代码语言:txt复制
[root@localhost /]# ls
代码语言:txt复制
mysql-5.7.29-linux-glibc2.12-x86_64
代码语言:txt复制
mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到 /usr/local/ 下,并将文件夹名称修改为 mysql

如果 /usr/local/ 下已经存在 mysql ,请将已存在mysql文件修改为其他名称,否则后续步骤可能无法正确进行。

执行命令如下:

代码语言:txt复制
[root@localhost /]# mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/
[root@localhost /]# cd /usr/local/
[root@localhost /]# mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql
 

如果 /usr/local/ 下不存在 mysql 文件夹,直接执行如下命令,也可达到上述效果。

代码语言:txt复制
[root@localhost /]# mv mysql-5.7.29-linux-glibc2.12-x86_64 
 /usr/local/mysql

2、在 /usr/local/mysql 目录下创建data目录

代码语言:txt复制
[root@localhost /]# mkdir /usr/local/mysql/data
 

3、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

代码语言:txt复制
[root@localhost /]# chown -R mysql:mysql /usr/local/mysql
[root@localhost /]# chmod -R 755 /usr/local/mysql

4、编译安装并初始化mysql

代码语言:txt复制
[root@localhost /]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
 

*补充说明**

第4步时,可能会出现错误:找不到datadir和basedir路径。

出现该问题请跳到第6步,修改my.cnf文件的datadir和basedir。

第4步时,可能会出现错误:

出现该问题首先检查该链接库文件有没有安装

root@localhost bin# rpm -qa|grep libaio

root@localhost bin#

运行命令后发现系统中无该链接库文件,那就安装下

root@localhost bin# yum search libaio

root@localhost bin# yum install libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误,是因为libnuma安装的是32位,我们这里需要64位的

执行如下命令后可以解决:

root@localhost bin# yum -y install numactl.x86_64

执行无误之后,再重新执行第4步初始化命令,无误之后再进行第5步操作!

5、运行初始化命令成功后,输出日志如下:

注意:mysql 5.7.29版本执行初始化命令后不会打印日志,查看日志可到/usr/local/mysql/data/mysqld.log

记录日志最末尾位置 root@localhost: 后的字符串,此字符串为mysql管理员临时登录密码。

6、编辑配置文件my.cnf,在mysqld下添加datadir和basedir这两行:

datadir=/usr/local/mysql-5.7.29/data

basedir=/usr/local/mysql-5.7.29

7、启动mysql服务器

root@localhost /# /usr/local/mysql/support-files/mysql.server start

显示如下结果,说明数据库安装成功

如果出现如下提示信息

查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令

8、添加软连接,并重启mysql服务

root@localhost /# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

root@localhost /# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

root@localhost /# /usr/local/mysql/support-files/mysql.server restart

9、登录mysql,重置密码

重置密码的第一步要跳过mysql的密码认证过程,方法如下

vim /etc/my.cnf (注:windows下修改的是my.ini)

在mysqld后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程。

然后重启mysql

root@localhost /# /usr/local/mysql/support-files/mysql.server restart

敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中

root@localhost /# mysql -u root -p

Enter password:

mysql>set password for root@localhost = password('yourpass');

注意:如果在执行该步骤的时候出现 `ERROR 1290 (HY000): The MySQL server

is running with the --skip-grant-tables option so it cannot execute this

statement错误。则执行下flush privileges` 命令,再执行该命令即可。

最后,把my.cnf中添加的“skip-grant-tables”去掉,再次登录mysql时就可使用设置的新密码了。

10、开放远程连接

mysql>use mysql;

msyql>update user set user.Host='%' where user.User='root';

mysql>flush privileges;

11、添加系统路径

vim /etc/profile

添加:

export PATH=/usr/local/mysql/bin:$PATH

source /etc/profile

12、设置开机自动启动

0 人点赞